This commit is contained in:
str4d 2021-11-30 23:47:45 +00:00
parent 9553330b48
commit 185fa5803d
36 changed files with 522 additions and 285 deletions

View File

@ -700,10 +700,7 @@ impl<F: FieldExt> FieldChip<F> {
<h2 id="implement-chip-traits"><a class="header" href="#implement-chip-traits">Implement chip traits</a></h2>
<pre><code class="language-rust ignore no_run">/// A variable representing a number.
#[derive(Clone)]
struct Number&lt;F: FieldExt&gt; {
cell: Cell,
value: Option&lt;F&gt;,
}
struct Number&lt;F: FieldExt&gt;(AssignedCell&lt;F, F&gt;);
impl&lt;F: FieldExt&gt; NumericInstructions&lt;F&gt; for FieldChip&lt;F&gt; {
type Num = Number&lt;F&gt;;
@ -715,21 +712,19 @@ impl&lt;F: FieldExt&gt; NumericInstructions&lt;F&gt; for FieldChip&lt;F&gt; {
) -&gt; Result&lt;Self::Num, Error&gt; {
let config = self.config();
let mut num = None;
layouter.assign_region(
|| &quot;load private&quot;,
|mut region| {
let cell = region.assign_advice(
|| &quot;private input&quot;,
config.advice[0],
0,
|| value.ok_or(Error::Synthesis),
)?;
num = Some(Number { cell, value });
Ok(())
region
.assign_advice(
|| &quot;private input&quot;,
config.advice[0],
0,
|| value.ok_or(Error::Synthesis),
)
.map(Number)
},
)?;
Ok(num.unwrap())
)
}
fn load_constant(
@ -739,24 +734,14 @@ impl&lt;F: FieldExt&gt; NumericInstructions&lt;F&gt; for FieldChip&lt;F&gt; {
) -&gt; Result&lt;Self::Num, Error&gt; {
let config = self.config();
let mut num = None;
layouter.assign_region(
|| &quot;load constant&quot;,
|mut region| {
let cell = region.assign_advice_from_constant(
|| &quot;constant value&quot;,
config.advice[0],
0,
constant,
)?;
num = Some(Number {
cell,
value: Some(constant),
});
Ok(())
region
.assign_advice_from_constant(|| &quot;constant value&quot;, config.advice[0], 0, constant)
.map(Number)
},
)?;
Ok(num.unwrap())
)
}
fn mul(
@ -767,7 +752,6 @@ impl&lt;F: FieldExt&gt; NumericInstructions&lt;F&gt; for FieldChip&lt;F&gt; {
) -&gt; Result&lt;Self::Num, Error&gt; {
let config = self.config();
let mut out = None;
layouter.assign_region(
|| &quot;mul&quot;,
|mut region: Region&lt;'_, F&gt;| {
@ -780,38 +764,25 @@ impl&lt;F: FieldExt&gt; NumericInstructions&lt;F&gt; for FieldChip&lt;F&gt; {
// but we can only rely on relative offsets inside this region. So we
// assign new cells inside the region and constrain them to have the
// same values as the inputs.
let lhs = region.assign_advice(
|| &quot;lhs&quot;,
config.advice[0],
0,
|| a.value.ok_or(Error::Synthesis),
)?;
let rhs = region.assign_advice(
|| &quot;rhs&quot;,
config.advice[1],
0,
|| b.value.ok_or(Error::Synthesis),
)?;
region.constrain_equal(a.cell, lhs)?;
region.constrain_equal(b.cell, rhs)?;
a.0.copy_advice(|| &quot;lhs&quot;, &amp;mut region, config.advice[0], 0)?;
b.0.copy_advice(|| &quot;rhs&quot;, &amp;mut region, config.advice[1], 0)?;
// Now we can assign the multiplication result into the output position.
let value = a.value.and_then(|a| b.value.map(|b| a * b));
let cell = region.assign_advice(
|| &quot;lhs * rhs&quot;,
config.advice[0],
1,
|| value.ok_or(Error::Synthesis),
)?;
// Now we can assign the multiplication result, which is to be assigned
// into the output position.
let value = a.0.value().and_then(|a| b.0.value().map(|b| *a * *b));
// Finally, we return a variable representing the output,
// to be used in another part of the circuit.
out = Some(Number { cell, value });
Ok(())
// Finally, we do the assignment to the output, returning a
// variable to be used in another part of the circuit.
region
.assign_advice(
|| &quot;lhs * rhs&quot;,
config.advice[0],
1,
|| value.ok_or(Error::Synthesis),
)
.map(Number)
},
)?;
Ok(out.unwrap())
)
}
fn expose_public(
@ -822,7 +793,7 @@ impl&lt;F: FieldExt&gt; NumericInstructions&lt;F&gt; for FieldChip&lt;F&gt; {
) -&gt; Result&lt;(), Error&gt; {
let config = self.config();
layouter.constrain_instance(num.cell, config.instance, row)
layouter.constrain_instance(num.0.cell(), config.instance, row)
}
}
</code></pre>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -14,12 +14,13 @@
});
});
</script>
</head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Module circuit</h2><div class="sidebar-elems"><div class="block items"><ul><li><a href="#modules">Modules</a></li><li><a href="#structs">Structs</a></li><li><a href="#traits">Traits</a></li></ul></div><div id="sidebar-vars" data-name="circuit" data-ty="mod" data-relpath="./"></div><script defer src="./sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Module <a href="../index.html">halo2</a>::<wbr><a class="mod" href="#">circuit</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/circuit.rs.html#1-449" title="goto source code">[src]</a></span></h1><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Traits and structs for implementing circuit components.</p>
</head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Module circuit</h2><div class="sidebar-elems"><div class="block items"><ul><li><a href="#modules">Modules</a></li><li><a href="#structs">Structs</a></li><li><a href="#traits">Traits</a></li></ul></div><div id="sidebar-vars" data-name="circuit" data-ty="mod" data-relpath="./"></div><script defer src="./sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Module <a href="../index.html">halo2</a>::<wbr><a class="mod" href="#">circuit</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/circuit.rs.html#1-541" title="goto source code">[src]</a></span></h1><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Traits and structs for implementing circuit components.</p>
</div></details><h2 id="modules" class="section-header"><a href="#modules">Modules</a></h2>
<div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="floor_planner/index.html" title="halo2::circuit::floor_planner mod">floor_planner</a></div><div class="item-right docblock-short"><p>Implementations of common circuit floor planners.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="layouter/index.html" title="halo2::circuit::layouter mod">layouter</a></div><div class="item-right docblock-short"><p>Implementations of common circuit layouters.</p>
</div></div></div><h2 id="structs" class="section-header"><a href="#structs">Structs</a></h2>
<div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Cell.html" title="halo2::circuit::Cell struct">Cell</a></div><div class="item-right docblock-short"><p>A pointer to a cell within a circuit.</p>
<div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.AssignedCell.html" title="halo2::circuit::AssignedCell struct">AssignedCell</a></div><div class="item-right docblock-short"><p>An assigned cell.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Cell.html" title="halo2::circuit::Cell struct">Cell</a></div><div class="item-right docblock-short"><p>A pointer to a cell within a circuit.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.NamespacedLayouter.html" title="halo2::circuit::NamespacedLayouter struct">NamespacedLayouter</a></div><div class="item-right docblock-short"><p>This is a “namespaced” layouter which borrows a <code>Layouter</code> (pushing a namespace
context) and, when dropped, pops out of the namespace context.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Region.html" title="halo2::circuit::Region struct">Region</a></div><div class="item-right docblock-short"><p>A region of the circuit in which a <a href="trait.Chip.html" title="Chip"><code>Chip</code></a> can assign cells.</p>

View File

@ -60,6 +60,6 @@ configured via <code>ConstraintSystem::enable_constant</code>.</p>
<p>Returns an error if the cell is in a column where equality has not been enabled.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.constrain_equal" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/circuit/layouter.rs.html#104" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.constrain_equal" class="fnname">constrain_equal</a>(&amp;mut self, left: <a class="struct" href="../struct.Cell.html" title="struct halo2::circuit::Cell">Cell</a>, right: <a class="struct" href="../struct.Cell.html" title="struct halo2::circuit::Cell">Cell</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Constraint two cells to have the same value.</p>
<p>Returns an error if either of the cells is not within the given permutation.</p>
</div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3C%26%27r%20mut%20(dyn%20RegionLayouter%3CF%3E%20+%20%27r)%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/circuit.rs.html#111-115" title="goto source code">[src]</a></div><a href="#impl-From%3C%26%27r%20mut%20(dyn%20RegionLayouter%3CF%3E%20+%20%27r)%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F:&nbsp;<a class="trait" href="../../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;&amp;'r mut (dyn <a class="trait" href="trait.RegionLayouter.html" title="trait halo2::circuit::layouter::RegionLayouter">RegionLayouter</a>&lt;F&gt; + 'r)&gt; for <a class="struct" href="../struct.Region.html" title="struct halo2::circuit::Region">Region</a>&lt;'r, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/circuit.rs.html#112-114" title="goto source code">[src]</a></div><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(region: &amp;'r mut dyn <a class="trait" href="trait.RegionLayouter.html" title="trait halo2::circuit::layouter::RegionLayouter">RegionLayouter</a>&lt;F&gt;) -&gt; Self</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3C%26%27r%20mut%20(dyn%20RegionLayouter%3CF%3E%20+%20%27r)%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/circuit.rs.html#169-173" title="goto source code">[src]</a></div><a href="#impl-From%3C%26%27r%20mut%20(dyn%20RegionLayouter%3CF%3E%20+%20%27r)%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F:&nbsp;<a class="trait" href="../../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;&amp;'r mut (dyn <a class="trait" href="trait.RegionLayouter.html" title="trait halo2::circuit::layouter::RegionLayouter">RegionLayouter</a>&lt;F&gt; + 'r)&gt; for <a class="struct" href="../struct.Region.html" title="struct halo2::circuit::Region">Region</a>&lt;'r, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/circuit.rs.html#170-172" title="goto source code">[src]</a></div><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(region: &amp;'r mut dyn <a class="trait" href="trait.RegionLayouter.html" title="trait halo2::circuit::layouter::RegionLayouter">RegionLayouter</a>&lt;F&gt;) -&gt; Self</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><div id="impl-RegionLayouter%3CF%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/circuit/layouter.rs.html#199-287" title="goto source code">[src]</a></div><a href="#impl-RegionLayouter%3CF%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="../../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="trait.RegionLayouter.html" title="trait halo2::circuit::layouter::RegionLayouter">RegionLayouter</a>&lt;F&gt; for <a class="struct" href="struct.RegionShape.html" title="struct halo2::circuit::layouter::RegionShape">RegionShape</a></h3></div></div><script type="text/javascript" src="../../../implementors/halo2/circuit/layouter/trait.RegionLayouter.js" async></script></section><section id="search" class="content hidden"></section><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="halo2" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.59.0-nightly (6db0a0e9a 2021-11-29)" ></div>
</body></html>

View File

@ -20,6 +20,6 @@
<p>This trait is used for implementing table assignments.</p>
</div></details><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="tymethod.assign_cell" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/circuit/layouter.rs.html#116-122" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.assign_cell" class="fnname">assign_cell</a>&lt;'v&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'v mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;annotation: &amp;'v (dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a> + 'v), <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="../../plonk/struct.TableColumn.html" title="struct halo2::plonk::TableColumn">TableColumn</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;to: &amp;'v mut (dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>() -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="../../plonk/enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;, <a class="enum" href="../../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; + 'v)<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Assigns a fixed value to a table cell.</p>
<p>Returns an error if the table cell has already been assigned to.</p>
</div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3C%26%27r%20mut%20(dyn%20TableLayouter%3CF%3E%20+%20%27r)%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/circuit.rs.html#253-257" title="goto source code">[src]</a></div><a href="#impl-From%3C%26%27r%20mut%20(dyn%20TableLayouter%3CF%3E%20+%20%27r)%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F:&nbsp;<a class="trait" href="../../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;&amp;'r mut (dyn <a class="trait" href="trait.TableLayouter.html" title="trait halo2::circuit::layouter::TableLayouter">TableLayouter</a>&lt;F&gt; + 'r)&gt; for <a class="struct" href="../struct.Table.html" title="struct halo2::circuit::Table">Table</a>&lt;'r, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/circuit.rs.html#254-256" title="goto source code">[src]</a></div><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(table: &amp;'r mut dyn <a class="trait" href="trait.TableLayouter.html" title="trait halo2::circuit::layouter::TableLayouter">TableLayouter</a>&lt;F&gt;) -&gt; Self</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3C%26%27r%20mut%20(dyn%20TableLayouter%3CF%3E%20+%20%27r)%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/circuit.rs.html#345-349" title="goto source code">[src]</a></div><a href="#impl-From%3C%26%27r%20mut%20(dyn%20TableLayouter%3CF%3E%20+%20%27r)%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F:&nbsp;<a class="trait" href="../../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;&amp;'r mut (dyn <a class="trait" href="trait.TableLayouter.html" title="trait halo2::circuit::layouter::TableLayouter">TableLayouter</a>&lt;F&gt; + 'r)&gt; for <a class="struct" href="../struct.Table.html" title="struct halo2::circuit::Table">Table</a>&lt;'r, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/circuit.rs.html#346-348" title="goto source code">[src]</a></div><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(table: &amp;'r mut dyn <a class="trait" href="trait.TableLayouter.html" title="trait halo2::circuit::layouter::TableLayouter">TableLayouter</a>&lt;F&gt;) -&gt; Self</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"></div><script type="text/javascript" src="../../../implementors/halo2/circuit/layouter/trait.TableLayouter.js" async></script></section><section id="search" class="content hidden"></section><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="halo2" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.59.0-nightly (6db0a0e9a 2021-11-29)" ></div>
</body></html>

View File

@ -1 +1 @@
initSidebarItems({"mod":[["floor_planner","Implementations of common circuit floor planners."],["layouter","Implementations of common circuit layouters."]],"struct":[["Cell","A pointer to a cell within a circuit."],["NamespacedLayouter","This is a “namespaced” layouter which borrows a `Layouter` (pushing a namespace context) and, when dropped, pops out of the namespace context."],["Region","A region of the circuit in which a [`Chip`] can assign cells."],["RegionIndex","Index of a region in a layouter"],["RegionStart","Starting row of a region in a layouter"],["SimpleFloorPlanner","A simple [`FloorPlanner`] that performs minimal optimizations."],["Table","A lookup table in the circuit."]],"trait":[["Chip","A chip implements a set of instructions that can be used by gadgets."],["Layouter","A layout strategy within a circuit. The layouter is chip-agnostic and applies its strategy to the context and config it is given."]]});
initSidebarItems({"mod":[["floor_planner","Implementations of common circuit floor planners."],["layouter","Implementations of common circuit layouters."]],"struct":[["AssignedCell","An assigned cell."],["Cell","A pointer to a cell within a circuit."],["NamespacedLayouter","This is a “namespaced” layouter which borrows a `Layouter` (pushing a namespace context) and, when dropped, pops out of the namespace context."],["Region","A region of the circuit in which a [`Chip`] can assign cells."],["RegionIndex","Index of a region in a layouter"],["RegionStart","Starting row of a region in a layouter"],["SimpleFloorPlanner","A simple [`FloorPlanner`] that performs minimal optimizations."],["Table","A lookup table in the circuit."]],"trait":[["Chip","A chip implements a set of instructions that can be used by gadgets."],["Layouter","A layout strategy within a circuit. The layouter is chip-agnostic and applies its strategy to the context and config it is given."]]});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -14,7 +14,7 @@
});
});
</script>
</head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct Region</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#implementations">Associated Constants</a></h3><div class="sidebar-links"><a href="#associatedconstant.ALIGN">ALIGN</a></div><h3 class="sidebar-title"><a href="#implementations">Methods</a></h3><div class="sidebar-links"><a href="#method.assign_advice">assign_advice</a><a href="#method.assign_advice_from_constant">assign_advice_from_constant</a><a href="#method.assign_advice_from_instance">assign_advice_from_instance</a><a href="#method.assign_fixed">assign_fixed</a><a href="#method.constrain_constant">constrain_constant</a><a href="#method.constrain_equal">constrain_equal</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Debug">Debug</a><a href="#impl-From%3C%26%27r%20mut%20(dyn%20RegionLayouter%3CF%3E%20+%20%27r)%3E">From&lt;&amp;&#39;r mut (dyn RegionLayouter&lt;F&gt; + &#39;r)&gt;</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">!RefUnwindSafe</a><a href="#impl-Send">!Send</a><a href="#impl-Sync">!Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">!UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">circuit</a></h2><div id="sidebar-vars" data-name="Region" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2</a>::<wbr><a href="index.html">circuit</a>::<wbr><a class="struct" href="#">Region</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/circuit.rs.html#107-109" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust struct"><code>pub struct Region&lt;'r, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; { /* fields omitted */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A region of the circuit in which a <a href="trait.Chip.html" title="Chip"><code>Chip</code></a> can assign cells.</p>
</head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct Region</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#implementations">Associated Constants</a></h3><div class="sidebar-links"><a href="#associatedconstant.ALIGN">ALIGN</a></div><h3 class="sidebar-title"><a href="#implementations">Methods</a></h3><div class="sidebar-links"><a href="#method.assign_advice">assign_advice</a><a href="#method.assign_advice_from_constant">assign_advice_from_constant</a><a href="#method.assign_advice_from_instance">assign_advice_from_instance</a><a href="#method.assign_fixed">assign_fixed</a><a href="#method.constrain_constant">constrain_constant</a><a href="#method.constrain_equal">constrain_equal</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Debug">Debug</a><a href="#impl-From%3C%26%27r%20mut%20(dyn%20RegionLayouter%3CF%3E%20+%20%27r)%3E">From&lt;&amp;&#39;r mut (dyn RegionLayouter&lt;F&gt; + &#39;r)&gt;</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">!RefUnwindSafe</a><a href="#impl-Send">!Send</a><a href="#impl-Sync">!Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">!UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">circuit</a></h2><div id="sidebar-vars" data-name="Region" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2</a>::<wbr><a href="index.html">circuit</a>::<wbr><a class="struct" href="#">Region</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/circuit.rs.html#165-167" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust struct"><code>pub struct Region&lt;'r, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; { /* fields omitted */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A region of the circuit in which a <a href="trait.Chip.html" title="Chip"><code>Chip</code></a> can assign cells.</p>
<p>Inside a region, the chip may freely use relative offsets; the <a href="trait.Layouter.html" title="Layouter"><code>Layouter</code></a> will
treat these assignments as a single “region” within the circuit.</p>
<p>The <a href="trait.Layouter.html" title="Layouter"><code>Layouter</code></a> is allowed to optimise between regions as it sees fit. Chips must use
@ -22,24 +22,24 @@ treat these assignments as a single “region” within the circuit.</p>
<p>TODO: It would be great if we could constrain the columns in these types to be
“logical” columns that are guaranteed to correspond to the chip (and have come from
<code>Chip::Config</code>).</p>
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#117-245" title="goto source code">[src]</a></div><a href="#impl" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="struct" href="struct.Region.html" title="struct halo2::circuit::Region">Region</a>&lt;'r, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.assign_advice" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#136-153" title="goto source code">[src]</a></div><a href="#method.assign_advice" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.assign_advice" class="fnname">assign_advice</a>&lt;'v, V, VR, A, AR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'v mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;annotation: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Advice.html" title="struct halo2::plonk::Advice">Advice</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;to: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.Cell.html" title="struct halo2::circuit::Cell">Cell</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>() -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;VR, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; + 'v,<br>&nbsp;&nbsp;&nbsp;&nbsp;VR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../plonk/enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assign an advice column value (witness).</p>
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#175-337" title="goto source code">[src]</a></div><a href="#impl" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="struct" href="struct.Region.html" title="struct halo2::circuit::Region">Region</a>&lt;'r, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.assign_advice" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#194-222" title="goto source code">[src]</a></div><a href="#method.assign_advice" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.assign_advice" class="fnname">assign_advice</a>&lt;'v, V, VR, A, AR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'v mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;annotation: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Advice.html" title="struct halo2::plonk::Advice">Advice</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;to: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.AssignedCell.html" title="struct halo2::circuit::AssignedCell">AssignedCell</a>&lt;VR, F&gt;, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>() -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;VR, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; + 'v,<br>&nbsp;&nbsp;&nbsp;&nbsp;for&lt;'vr&gt; <a class="enum" href="../plonk/enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'vr </a>VR&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assign an advice column value (witness).</p>
<p>Even though <code>to</code> has <code>FnMut</code> bounds, it is guaranteed to be called at most once.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.assign_advice_from_constant" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#161-179" title="goto source code">[src]</a></div><a href="#method.assign_advice_from_constant" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.assign_advice_from_constant" class="fnname">assign_advice_from_constant</a>&lt;VR, A, AR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;annotation: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Advice.html" title="struct halo2::plonk::Advice">Advice</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;constant: VR<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.Cell.html" title="struct halo2::circuit::Cell">Cell</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;VR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../plonk/enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assigns a constant value to the column <code>advice</code> at <code>offset</code> within this region.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.assign_advice_from_constant" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#230-254" title="goto source code">[src]</a></div><a href="#method.assign_advice_from_constant" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.assign_advice_from_constant" class="fnname">assign_advice_from_constant</a>&lt;VR, A, AR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;annotation: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Advice.html" title="struct halo2::plonk::Advice">Advice</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;constant: VR<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.AssignedCell.html" title="struct halo2::circuit::AssignedCell">AssignedCell</a>&lt;VR, F&gt;, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;for&lt;'vr&gt; <a class="enum" href="../plonk/enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'vr </a>VR&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assigns a constant value to the column <code>advice</code> at <code>offset</code> within this region.</p>
<p>The constant value will be assigned to a cell within one of the fixed columns
configured via <code>ConstraintSystem::enable_constant</code>.</p>
<p>Returns the advice cell.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.assign_advice_from_instance" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#185-204" title="goto source code">[src]</a></div><a href="#method.assign_advice_from_instance" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.assign_advice_from_instance" class="fnname">assign_advice_from_instance</a>&lt;A, AR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;annotation: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;instance: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Instance.html" title="struct halo2::plonk::Instance">Instance</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;advice: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Advice.html" title="struct halo2::plonk::Advice">Advice</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="struct.Cell.html" title="struct halo2::circuit::Cell">Cell</a>, <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;F&gt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assign the value of the instance columns cell at absolute location
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.assign_advice_from_instance" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#260-285" title="goto source code">[src]</a></div><a href="#method.assign_advice_from_instance" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.assign_advice_from_instance" class="fnname">assign_advice_from_instance</a>&lt;A, AR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;annotation: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;instance: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Instance.html" title="struct halo2::plonk::Instance">Instance</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;advice: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Advice.html" title="struct halo2::plonk::Advice">Advice</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.AssignedCell.html" title="struct halo2::circuit::AssignedCell">AssignedCell</a>&lt;F, F&gt;, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assign the value of the instance columns cell at absolute location
<code>row</code> to the column <code>advice</code> at <code>offset</code> within this region.</p>
<p>Returns the advice cell, and its value if known.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.assign_fixed" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#209-226" title="goto source code">[src]</a></div><a href="#method.assign_fixed" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.assign_fixed" class="fnname">assign_fixed</a>&lt;'v, V, VR, A, AR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'v mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;annotation: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Fixed.html" title="struct halo2::plonk::Fixed">Fixed</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;to: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.Cell.html" title="struct halo2::circuit::Cell">Cell</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>() -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;VR, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; + 'v,<br>&nbsp;&nbsp;&nbsp;&nbsp;VR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../plonk/enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assign a fixed value.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.assign_fixed" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#290-318" title="goto source code">[src]</a></div><a href="#method.assign_fixed" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.assign_fixed" class="fnname">assign_fixed</a>&lt;'v, V, VR, A, AR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'v mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;annotation: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Fixed.html" title="struct halo2::plonk::Fixed">Fixed</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;to: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.AssignedCell.html" title="struct halo2::circuit::AssignedCell">AssignedCell</a>&lt;VR, F&gt;, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>() -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;VR, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; + 'v,<br>&nbsp;&nbsp;&nbsp;&nbsp;for&lt;'vr&gt; <a class="enum" href="../plonk/enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'vr </a>VR&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assign a fixed value.</p>
<p>Even though <code>to</code> has <code>FnMut</code> bounds, it is guaranteed to be called at most once.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.constrain_constant" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#231-236" title="goto source code">[src]</a></div><a href="#method.constrain_constant" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.constrain_constant" class="fnname">constrain_constant</a>&lt;VR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;cell: <a class="struct" href="struct.Cell.html" title="struct halo2::circuit::Cell">Cell</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;constant: VR<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;VR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../plonk/enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Constrains a cell to have a constant value.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.constrain_constant" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#323-328" title="goto source code">[src]</a></div><a href="#method.constrain_constant" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.constrain_constant" class="fnname">constrain_constant</a>&lt;VR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;cell: <a class="struct" href="struct.Cell.html" title="struct halo2::circuit::Cell">Cell</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;constant: VR<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;VR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../plonk/enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Constrains a cell to have a constant value.</p>
<p>Returns an error if the cell is in a column where equality has not been enabled.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.constrain_equal" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#242-244" title="goto source code">[src]</a></div><a href="#method.constrain_equal" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.constrain_equal" class="fnname">constrain_equal</a>(&amp;mut self, left: <a class="struct" href="struct.Cell.html" title="struct halo2::circuit::Cell">Cell</a>, right: <a class="struct" href="struct.Cell.html" title="struct halo2::circuit::Cell">Cell</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Constrains two cells to have the same value.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.constrain_equal" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#334-336" title="goto source code">[src]</a></div><a href="#method.constrain_equal" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.constrain_equal" class="fnname">constrain_equal</a>(&amp;mut self, left: <a class="struct" href="struct.Cell.html" title="struct halo2::circuit::Cell">Cell</a>, right: <a class="struct" href="struct.Cell.html" title="struct halo2::circuit::Cell">Cell</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Constrains two cells to have the same value.</p>
<p>Returns an error if either of the cells are in columns where equality
has not been enabled.</p>
</div></details></div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#106" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Region.html" title="struct halo2::circuit::Region">Region</a>&lt;'r, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#106" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3C%26%27r%20mut%20(dyn%20RegionLayouter%3CF%3E%20+%20%27r)%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#111-115" title="goto source code">[src]</a></div><a href="#impl-From%3C%26%27r%20mut%20(dyn%20RegionLayouter%3CF%3E%20+%20%27r)%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;&amp;'r mut (dyn <a class="trait" href="layouter/trait.RegionLayouter.html" title="trait halo2::circuit::layouter::RegionLayouter">RegionLayouter</a>&lt;F&gt; + 'r)&gt; for <a class="struct" href="struct.Region.html" title="struct halo2::circuit::Region">Region</a>&lt;'r, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#112-114" title="goto source code">[src]</a></div><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(region: &amp;'r mut dyn <a class="trait" href="layouter/trait.RegionLayouter.html" title="trait halo2::circuit::layouter::RegionLayouter">RegionLayouter</a>&lt;F&gt;) -&gt; Self</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#164" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Region.html" title="struct halo2::circuit::Region">Region</a>&lt;'r, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#164" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3C%26%27r%20mut%20(dyn%20RegionLayouter%3CF%3E%20+%20%27r)%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#169-173" title="goto source code">[src]</a></div><a href="#impl-From%3C%26%27r%20mut%20(dyn%20RegionLayouter%3CF%3E%20+%20%27r)%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;&amp;'r mut (dyn <a class="trait" href="layouter/trait.RegionLayouter.html" title="trait halo2::circuit::layouter::RegionLayouter">RegionLayouter</a>&lt;F&gt; + 'r)&gt; for <a class="struct" href="struct.Region.html" title="struct halo2::circuit::Region">Region</a>&lt;'r, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#170-172" title="goto source code">[src]</a></div><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(region: &amp;'r mut dyn <a class="trait" href="layouter/trait.RegionLayouter.html" title="trait halo2::circuit::layouter::RegionLayouter">RegionLayouter</a>&lt;F&gt;) -&gt; Self</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><div id="impl-RefUnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-RefUnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Region.html" title="struct halo2::circuit::Region">Region</a>&lt;'r, F&gt;</h3></div><div id="impl-Send" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Send" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Region.html" title="struct halo2::circuit::Region">Region</a>&lt;'r, F&gt;</h3></div><div id="impl-Sync" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Sync" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Region.html" title="struct halo2::circuit::Region">Region</a>&lt;'r, F&gt;</h3></div><div id="impl-Unpin" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Unpin" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Region.html" title="struct halo2::circuit::Region">Region</a>&lt;'r, F&gt;</h3></div><div id="impl-UnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-UnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Region.html" title="struct halo2::circuit::Region">Region</a>&lt;'r, F&gt;</h3></div></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Any" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#132-136" title="goto source code">[src]</a></div><a href="#impl-Any" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.type_id" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#133" title="goto source code">[src]</a></div><a href="#method.type_id" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></div></summary><div class='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Borrow%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#208-213" title="goto source code">[src]</a></div><a href="#impl-Borrow%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210" title="goto source code">[src]</a></div><a href="#method.borrow" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</h4></div></summary><div class='docblock'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-BorrowMut%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#216-220" title="goto source code">[src]</a></div><a href="#impl-BorrowMut%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow_mut" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217" title="goto source code">[src]</a></div><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</h4></div></summary><div class='docblock'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>

View File

@ -14,12 +14,12 @@
});
});
</script>
</head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct Table</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#implementations">Associated Constants</a></h3><div class="sidebar-links"><a href="#associatedconstant.ALIGN">ALIGN</a></div><h3 class="sidebar-title"><a href="#implementations">Methods</a></h3><div class="sidebar-links"><a href="#method.assign_cell">assign_cell</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Debug">Debug</a><a href="#impl-From%3C%26%27r%20mut%20(dyn%20TableLayouter%3CF%3E%20+%20%27r)%3E">From&lt;&amp;&#39;r mut (dyn TableLayouter&lt;F&gt; + &#39;r)&gt;</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">!RefUnwindSafe</a><a href="#impl-Send">!Send</a><a href="#impl-Sync">!Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">!UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">circuit</a></h2><div id="sidebar-vars" data-name="Table" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2</a>::<wbr><a href="index.html">circuit</a>::<wbr><a class="struct" href="#">Table</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/circuit.rs.html#249-251" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust struct"><code>pub struct Table&lt;'r, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; { /* fields omitted */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A lookup table in the circuit.</p>
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#259-283" title="goto source code">[src]</a></div><a href="#impl" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="struct" href="struct.Table.html" title="struct halo2::circuit::Table">Table</a>&lt;'r, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.assign_cell" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#265-282" title="goto source code">[src]</a></div><a href="#method.assign_cell" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.assign_cell" class="fnname">assign_cell</a>&lt;'v, V, VR, A, AR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'v mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;annotation: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="../plonk/struct.TableColumn.html" title="struct halo2::plonk::TableColumn">TableColumn</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;to: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>() -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;VR, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; + 'v,<br>&nbsp;&nbsp;&nbsp;&nbsp;VR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../plonk/enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assigns a fixed value to a table cell.</p>
</head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct Table</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#implementations">Associated Constants</a></h3><div class="sidebar-links"><a href="#associatedconstant.ALIGN">ALIGN</a></div><h3 class="sidebar-title"><a href="#implementations">Methods</a></h3><div class="sidebar-links"><a href="#method.assign_cell">assign_cell</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Debug">Debug</a><a href="#impl-From%3C%26%27r%20mut%20(dyn%20TableLayouter%3CF%3E%20+%20%27r)%3E">From&lt;&amp;&#39;r mut (dyn TableLayouter&lt;F&gt; + &#39;r)&gt;</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">!RefUnwindSafe</a><a href="#impl-Send">!Send</a><a href="#impl-Sync">!Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">!UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">circuit</a></h2><div id="sidebar-vars" data-name="Table" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2</a>::<wbr><a href="index.html">circuit</a>::<wbr><a class="struct" href="#">Table</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/circuit.rs.html#341-343" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust struct"><code>pub struct Table&lt;'r, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; { /* fields omitted */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A lookup table in the circuit.</p>
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#351-375" title="goto source code">[src]</a></div><a href="#impl" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="struct" href="struct.Table.html" title="struct halo2::circuit::Table">Table</a>&lt;'r, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.assign_cell" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#357-374" title="goto source code">[src]</a></div><a href="#method.assign_cell" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.assign_cell" class="fnname">assign_cell</a>&lt;'v, V, VR, A, AR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'v mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;annotation: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="../plonk/struct.TableColumn.html" title="struct halo2::plonk::TableColumn">TableColumn</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;to: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>() -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;VR, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; + 'v,<br>&nbsp;&nbsp;&nbsp;&nbsp;VR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../plonk/enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assigns a fixed value to a table cell.</p>
<p>Returns an error if the table cell has already been assigned to.</p>
<p>Even though <code>to</code> has <code>FnMut</code> bounds, it is guaranteed to be called at most once.</p>
</div></details></div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#248" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Table.html" title="struct halo2::circuit::Table">Table</a>&lt;'r, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#248" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3C%26%27r%20mut%20(dyn%20TableLayouter%3CF%3E%20+%20%27r)%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#253-257" title="goto source code">[src]</a></div><a href="#impl-From%3C%26%27r%20mut%20(dyn%20TableLayouter%3CF%3E%20+%20%27r)%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;&amp;'r mut (dyn <a class="trait" href="layouter/trait.TableLayouter.html" title="trait halo2::circuit::layouter::TableLayouter">TableLayouter</a>&lt;F&gt; + 'r)&gt; for <a class="struct" href="struct.Table.html" title="struct halo2::circuit::Table">Table</a>&lt;'r, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#254-256" title="goto source code">[src]</a></div><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(table: &amp;'r mut dyn <a class="trait" href="layouter/trait.TableLayouter.html" title="trait halo2::circuit::layouter::TableLayouter">TableLayouter</a>&lt;F&gt;) -&gt; Self</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#340" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Table.html" title="struct halo2::circuit::Table">Table</a>&lt;'r, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#340" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3C%26%27r%20mut%20(dyn%20TableLayouter%3CF%3E%20+%20%27r)%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#345-349" title="goto source code">[src]</a></div><a href="#impl-From%3C%26%27r%20mut%20(dyn%20TableLayouter%3CF%3E%20+%20%27r)%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;&amp;'r mut (dyn <a class="trait" href="layouter/trait.TableLayouter.html" title="trait halo2::circuit::layouter::TableLayouter">TableLayouter</a>&lt;F&gt; + 'r)&gt; for <a class="struct" href="struct.Table.html" title="struct halo2::circuit::Table">Table</a>&lt;'r, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#346-348" title="goto source code">[src]</a></div><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(table: &amp;'r mut dyn <a class="trait" href="layouter/trait.TableLayouter.html" title="trait halo2::circuit::layouter::TableLayouter">TableLayouter</a>&lt;F&gt;) -&gt; Self</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><div id="impl-RefUnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-RefUnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Table.html" title="struct halo2::circuit::Table">Table</a>&lt;'r, F&gt;</h3></div><div id="impl-Send" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Send" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Table.html" title="struct halo2::circuit::Table">Table</a>&lt;'r, F&gt;</h3></div><div id="impl-Sync" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Sync" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Table.html" title="struct halo2::circuit::Table">Table</a>&lt;'r, F&gt;</h3></div><div id="impl-Unpin" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Unpin" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Table.html" title="struct halo2::circuit::Table">Table</a>&lt;'r, F&gt;</h3></div><div id="impl-UnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-UnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;'r, F&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Table.html" title="struct halo2::circuit::Table">Table</a>&lt;'r, F&gt;</h3></div></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Any" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#132-136" title="goto source code">[src]</a></div><a href="#impl-Any" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.type_id" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#133" title="goto source code">[src]</a></div><a href="#method.type_id" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></div></summary><div class='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Borrow%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#208-213" title="goto source code">[src]</a></div><a href="#impl-Borrow%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210" title="goto source code">[src]</a></div><a href="#method.borrow" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</h4></div></summary><div class='docblock'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-BorrowMut%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#216-220" title="goto source code">[src]</a></div><a href="#impl-BorrowMut%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow_mut" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217" title="goto source code">[src]</a></div><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</h4></div></summary><div class='docblock'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>

View File

@ -14,7 +14,7 @@
});
});
</script>
</head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Trait Layouter</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#associated-types">Associated Types</a></h3><div class="sidebar-links"><a href="#associatedtype.Root">Root</a></div><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><div class="sidebar-links"><a href="#tymethod.assign_region">assign_region</a><a href="#tymethod.assign_table">assign_table</a><a href="#tymethod.constrain_instance">constrain_instance</a><a href="#tymethod.get_root">get_root</a><a href="#tymethod.pop_namespace">pop_namespace</a><a href="#tymethod.push_namespace">push_namespace</a></div><h3 class="sidebar-title"><a href="#provided-methods">Provided Methods</a></h3><div class="sidebar-links"><a href="#method.namespace">namespace</a></div><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">circuit</a></h2><div id="sidebar-vars" data-name="Layouter" data-ty="trait" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Trait <a href="../index.html">halo2</a>::<wbr><a href="index.html">circuit</a>::<wbr><a class="trait" href="#">Layouter</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/circuit.rs.html#290-364" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust trait"><code>pub trait Layouter&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; {
</head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Trait Layouter</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#associated-types">Associated Types</a></h3><div class="sidebar-links"><a href="#associatedtype.Root">Root</a></div><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><div class="sidebar-links"><a href="#tymethod.assign_region">assign_region</a><a href="#tymethod.assign_table">assign_table</a><a href="#tymethod.constrain_instance">constrain_instance</a><a href="#tymethod.get_root">get_root</a><a href="#tymethod.pop_namespace">pop_namespace</a><a href="#tymethod.push_namespace">push_namespace</a></div><h3 class="sidebar-title"><a href="#provided-methods">Provided Methods</a></h3><div class="sidebar-links"><a href="#method.namespace">namespace</a></div><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">circuit</a></h2><div id="sidebar-vars" data-name="Layouter" data-ty="trait" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Trait <a href="../index.html">halo2</a>::<wbr><a href="index.html">circuit</a>::<wbr><a class="trait" href="#">Layouter</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/circuit.rs.html#382-456" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust trait"><code>pub trait Layouter&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; {
type <a href="#associatedtype.Root" class="type">Root</a>: <a class="trait" href="trait.Layouter.html" title="trait halo2::circuit::Layouter">Layouter</a>&lt;F&gt;;
fn <a href="#tymethod.assign_region" class="fnname">assign_region</a>&lt;A, AR, N, NR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name: N, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assignment: A<br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;AR, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="struct" href="struct.Region.html" title="struct halo2::circuit::Region">Region</a>&lt;'_, F&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;AR, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -&gt; NR,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;</span>;
<div class="item-spacer"></div> fn <a href="#tymethod.assign_table" class="fnname">assign_table</a>&lt;A, N, NR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name: N, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assignment: A<br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="struct" href="struct.Table.html" title="struct halo2::circuit::Table">Table</a>&lt;'_, F&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -&gt; NR,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;</span>;
@ -28,9 +28,9 @@
}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A layout strategy within a circuit. The layouter is chip-agnostic and applies its
strategy to the context and config it is given.</p>
<p>This abstracts over the circuit assignments, handling row indices etc.</p>
</div></details><h2 id="associated-types" class="small-section-header">Associated Types<a href="#associated-types" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="associatedtype.Root" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#293" title="goto source code">[src]</a></div><h4 class="code-header">type <a href="#associatedtype.Root" class="type">Root</a>: <a class="trait" href="trait.Layouter.html" title="trait halo2::circuit::Layouter">Layouter</a>&lt;F&gt;</h4></div></summary><div class="docblock"><p>Represents the type of the “root” of this layouter, so that nested namespaces
</div></details><h2 id="associated-types" class="small-section-header">Associated Types<a href="#associated-types" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="associatedtype.Root" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#385" title="goto source code">[src]</a></div><h4 class="code-header">type <a href="#associatedtype.Root" class="type">Root</a>: <a class="trait" href="trait.Layouter.html" title="trait halo2::circuit::Layouter">Layouter</a>&lt;F&gt;</h4></div></summary><div class="docblock"><p>Represents the type of the “root” of this layouter, so that nested namespaces
can minimize indirection.</p>
</div></details></div><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="tymethod.assign_region" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#307-311" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.assign_region" class="fnname">assign_region</a>&lt;A, AR, N, NR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: N, <br>&nbsp;&nbsp;&nbsp;&nbsp;assignment: A<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;AR, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="struct" href="struct.Region.html" title="struct halo2::circuit::Region">Region</a>&lt;'_, F&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;AR, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -&gt; NR,<br>&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assign a region of gates to an absolute row number.</p>
</div></details></div><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="tymethod.assign_region" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#399-403" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.assign_region" class="fnname">assign_region</a>&lt;A, AR, N, NR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: N, <br>&nbsp;&nbsp;&nbsp;&nbsp;assignment: A<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;AR, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="struct" href="struct.Region.html" title="struct halo2::circuit::Region">Region</a>&lt;'_, F&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;AR, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -&gt; NR,<br>&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assign a region of gates to an absolute row number.</p>
<p>Inside the closure, the chip may freely use relative offsets; the <code>Layouter</code> will
treat these assignments as a single “region” within the circuit. Outside this
closure, the <code>Layouter</code> is allowed to optimise as it sees fit.</p>
@ -39,20 +39,20 @@ closure, the <code>Layouter</code> is allowed to optimise as it sees fit.</p>
<span class="kw">let</span> <span class="ident">config</span> <span class="op">=</span> <span class="ident">chip</span>.<span class="ident">config</span>();
<span class="ident">region</span>.<span class="ident">assign_advice</span>(<span class="ident">config</span>.<span class="ident">a</span>, <span class="ident">offset</span>, <span class="op">|</span><span class="op">|</span> { <span class="prelude-val">Some</span>(<span class="ident">value</span>)});
});</code></pre></div>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.assign_table" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#321-325" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.assign_table" class="fnname">assign_table</a>&lt;A, N, NR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: N, <br>&nbsp;&nbsp;&nbsp;&nbsp;assignment: A<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="struct" href="struct.Table.html" title="struct halo2::circuit::Table">Table</a>&lt;'_, F&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -&gt; NR,<br>&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assign a table region to an absolute row number.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.assign_table" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#413-417" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.assign_table" class="fnname">assign_table</a>&lt;A, N, NR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: N, <br>&nbsp;&nbsp;&nbsp;&nbsp;assignment: A<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="struct" href="struct.Table.html" title="struct halo2::circuit::Table">Table</a>&lt;'_, F&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -&gt; NR,<br>&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assign a table region to an absolute row number.</p>
<div class='information'><div class='tooltip ignore'></div></div><div class="example-wrap"><pre class="rust rust-example-rendered ignore"><code><span class="kw">fn</span> <span class="ident">assign_table</span>(<span class="kw-2">&amp;mut</span> <span class="self">self</span>, <span class="op">|</span><span class="op">|</span> <span class="string">&quot;table name&quot;</span>, <span class="op">|</span><span class="ident">table</span><span class="op">|</span> {
<span class="kw">let</span> <span class="ident">config</span> <span class="op">=</span> <span class="ident">chip</span>.<span class="ident">config</span>();
<span class="ident">table</span>.<span class="ident">assign_fixed</span>(<span class="ident">config</span>.<span class="ident">a</span>, <span class="ident">offset</span>, <span class="op">|</span><span class="op">|</span> { <span class="prelude-val">Some</span>(<span class="ident">value</span>)});
});</code></pre></div>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.constrain_instance" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#329-334" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.constrain_instance" class="fnname">constrain_instance</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;cell: <a class="struct" href="struct.Cell.html" title="struct halo2::circuit::Cell">Cell</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Instance.html" title="struct halo2::plonk::Instance">Instance</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Constrains a <a href="struct.Cell.html" title="Cell"><code>Cell</code></a> to equal an instance columns row value at an
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.constrain_instance" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#421-426" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.constrain_instance" class="fnname">constrain_instance</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;cell: <a class="struct" href="struct.Cell.html" title="struct halo2::circuit::Cell">Cell</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Instance.html" title="struct halo2::plonk::Instance">Instance</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Constrains a <a href="struct.Cell.html" title="Cell"><code>Cell</code></a> to equal an instance columns row value at an
absolute position.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.get_root" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#339" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.get_root" class="fnname">get_root</a>(&amp;mut self) -&gt; &amp;mut Self::<a class="type" href="trait.Layouter.html#associatedtype.Root" title="type halo2::circuit::Layouter::Root">Root</a></h4></div></summary><div class="docblock"><p>Gets the “root” of this assignment, bypassing the namespacing.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.get_root" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#431" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.get_root" class="fnname">get_root</a>(&amp;mut self) -&gt; &amp;mut Self::<a class="type" href="trait.Layouter.html#associatedtype.Root" title="type halo2::circuit::Layouter::Root">Root</a></h4></div></summary><div class="docblock"><p>Gets the “root” of this assignment, bypassing the namespacing.</p>
<p>Not intended for downstream consumption; use <a href="trait.Layouter.html#method.namespace" title="Layouter::namespace"><code>Layouter::namespace</code></a> instead.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.push_namespace" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#344-347" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.push_namespace" class="fnname">push_namespace</a>&lt;NR, N&gt;(&amp;mut self, name_fn: N) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; NR,&nbsp;</span></h4></div></summary><div class="docblock"><p>Creates a new (sub)namespace and enters into it.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.push_namespace" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#436-439" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.push_namespace" class="fnname">push_namespace</a>&lt;NR, N&gt;(&amp;mut self, name_fn: N) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; NR,&nbsp;</span></h4></div></summary><div class="docblock"><p>Creates a new (sub)namespace and enters into it.</p>
<p>Not intended for downstream consumption; use <a href="trait.Layouter.html#method.namespace" title="Layouter::namespace"><code>Layouter::namespace</code></a> instead.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.pop_namespace" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#352" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.pop_namespace" class="fnname">pop_namespace</a>(&amp;mut self, gadget_name: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;)</h4></div></summary><div class="docblock"><p>Exits out of the existing namespace.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.pop_namespace" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#444" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.pop_namespace" class="fnname">pop_namespace</a>(&amp;mut self, gadget_name: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;)</h4></div></summary><div class="docblock"><p>Exits out of the existing namespace.</p>
<p>Not intended for downstream consumption; use <a href="trait.Layouter.html#method.namespace" title="Layouter::namespace"><code>Layouter::namespace</code></a> instead.</p>
</div></details></div><h2 id="provided-methods" class="small-section-header">Provided methods<a href="#provided-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="method.namespace" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#355-363" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#method.namespace" class="fnname">namespace</a>&lt;NR, N&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name_fn: N<br>) -&gt; <a class="struct" href="struct.NamespacedLayouter.html" title="struct halo2::circuit::NamespacedLayouter">NamespacedLayouter</a>&lt;'_, F, Self::<a class="type" href="trait.Layouter.html#associatedtype.Root" title="type halo2::circuit::Layouter::Root">Root</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; NR,&nbsp;</span></h4></div></summary><div class="docblock"><p>Enters into a namespace.</p>
</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><details class="rustdoc-toggle implementors-toggle"><summary><div id="impl-Layouter%3CF%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#371-416" title="goto source code">[src]</a></div><a href="#impl-Layouter%3CF%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>, L:&nbsp;<a class="trait" href="trait.Layouter.html" title="trait halo2::circuit::Layouter">Layouter</a>&lt;F&gt; + 'a&gt; <a class="trait" href="trait.Layouter.html" title="trait halo2::circuit::Layouter">Layouter</a>&lt;F&gt; for <a class="struct" href="struct.NamespacedLayouter.html" title="struct halo2::circuit::NamespacedLayouter">NamespacedLayouter</a>&lt;'a, F, L&gt;</h3></div></summary><div class="impl-items"><div id="associatedtype.Root-1" class="type trait-impl has-srclink"><a href="#associatedtype.Root-1" class="anchor"></a><h4 class="code-header">type <a href="#associatedtype.Root" class="type">Root</a> = L::<a class="type" href="trait.Layouter.html#associatedtype.Root" title="type halo2::circuit::Layouter::Root">Root</a></h4></div></div></details><details class="rustdoc-toggle implementors-toggle"><summary><div id="impl-Layouter%3CF%3E-1" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit/floor_planner/v1.rs.html#163-221" title="goto source code">[src]</a></div><a href="#impl-Layouter%3CF%3E-1" class="anchor"></a><h3 class="code-header in-band">impl&lt;'p, 'a, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>, CS:&nbsp;<a class="trait" href="../plonk/trait.Assignment.html" title="trait halo2::plonk::Assignment">Assignment</a>&lt;F&gt; + 'a&gt; <a class="trait" href="trait.Layouter.html" title="trait halo2::circuit::Layouter">Layouter</a>&lt;F&gt; for <a class="struct" href="floor_planner/struct.V1Pass.html" title="struct halo2::circuit::floor_planner::V1Pass">V1Pass</a>&lt;'p, 'a, F, CS&gt;</h3></div></summary><div class="impl-items"><div id="associatedtype.Root-2" class="type trait-impl has-srclink"><a href="#associatedtype.Root-2" class="anchor"></a><h4 class="code-header">type <a href="#associatedtype.Root" class="type">Root</a> = Self</h4></div></div></details></div><script type="text/javascript" src="../../implementors/halo2/circuit/trait.Layouter.js" async></script></section><section id="search" class="content hidden"></section><div id="rustdoc-vars" data-root-path="../../" data-current-crate="halo2" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.59.0-nightly (6db0a0e9a 2021-11-29)" ></div>
</div></details></div><h2 id="provided-methods" class="small-section-header">Provided methods<a href="#provided-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="method.namespace" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#447-455" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#method.namespace" class="fnname">namespace</a>&lt;NR, N&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name_fn: N<br>) -&gt; <a class="struct" href="struct.NamespacedLayouter.html" title="struct halo2::circuit::NamespacedLayouter">NamespacedLayouter</a>&lt;'_, F, Self::<a class="type" href="trait.Layouter.html#associatedtype.Root" title="type halo2::circuit::Layouter::Root">Root</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; NR,&nbsp;</span></h4></div></summary><div class="docblock"><p>Enters into a namespace.</p>
</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><details class="rustdoc-toggle implementors-toggle"><summary><div id="impl-Layouter%3CF%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit.rs.html#463-508" title="goto source code">[src]</a></div><a href="#impl-Layouter%3CF%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>, L:&nbsp;<a class="trait" href="trait.Layouter.html" title="trait halo2::circuit::Layouter">Layouter</a>&lt;F&gt; + 'a&gt; <a class="trait" href="trait.Layouter.html" title="trait halo2::circuit::Layouter">Layouter</a>&lt;F&gt; for <a class="struct" href="struct.NamespacedLayouter.html" title="struct halo2::circuit::NamespacedLayouter">NamespacedLayouter</a>&lt;'a, F, L&gt;</h3></div></summary><div class="impl-items"><div id="associatedtype.Root-1" class="type trait-impl has-srclink"><a href="#associatedtype.Root-1" class="anchor"></a><h4 class="code-header">type <a href="#associatedtype.Root" class="type">Root</a> = L::<a class="type" href="trait.Layouter.html#associatedtype.Root" title="type halo2::circuit::Layouter::Root">Root</a></h4></div></div></details><details class="rustdoc-toggle implementors-toggle"><summary><div id="impl-Layouter%3CF%3E-1" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/circuit/floor_planner/v1.rs.html#163-221" title="goto source code">[src]</a></div><a href="#impl-Layouter%3CF%3E-1" class="anchor"></a><h3 class="code-header in-band">impl&lt;'p, 'a, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>, CS:&nbsp;<a class="trait" href="../plonk/trait.Assignment.html" title="trait halo2::plonk::Assignment">Assignment</a>&lt;F&gt; + 'a&gt; <a class="trait" href="trait.Layouter.html" title="trait halo2::circuit::Layouter">Layouter</a>&lt;F&gt; for <a class="struct" href="floor_planner/struct.V1Pass.html" title="struct halo2::circuit::floor_planner::V1Pass">V1Pass</a>&lt;'p, 'a, F, CS&gt;</h3></div></summary><div class="impl-items"><div id="associatedtype.Root-2" class="type trait-impl has-srclink"><a href="#associatedtype.Root-2" class="anchor"></a><h4 class="code-header">type <a href="#associatedtype.Root" class="type">Root</a> = Self</h4></div></div></details></div><script type="text/javascript" src="../../implementors/halo2/circuit/trait.Layouter.js" async></script></section><section id="search" class="content hidden"></section><div id="rustdoc-vars" data-root-path="../../" data-current-crate="halo2" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.59.0-nightly (6db0a0e9a 2021-11-29)" ></div>
</body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -14,11 +14,11 @@
});
});
</script>
</head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct Constraint</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#implementations">Associated Constants</a></h3><div class="sidebar-links"><a href="#associatedconstant.ALIGN">ALIGN</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Debug">Debug</a><a href="#impl-From%3C(%26%27static%20str%2C%20Expression%3CF%3E)%3E">From&lt;(&amp;&#39;static str, Expression&lt;F&gt;)&gt;</a><a href="#impl-From%3CExpression%3CF%3E%3E">From&lt;Expression&lt;F&gt;&gt;</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a></h2><div id="sidebar-vars" data-name="Constraint" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="struct" href="#">Constraint</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#890-893" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust struct"><code>pub struct Constraint&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; { /* fields omitted */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An individual polynomial constraint.</p>
</head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct Constraint</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#implementations">Associated Constants</a></h3><div class="sidebar-links"><a href="#associatedconstant.ALIGN">ALIGN</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Debug">Debug</a><a href="#impl-From%3C(%26%27static%20str%2C%20Expression%3CF%3E)%3E">From&lt;(&amp;&#39;static str, Expression&lt;F&gt;)&gt;</a><a href="#impl-From%3CExpression%3CF%3E%3E">From&lt;Expression&lt;F&gt;&gt;</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a></h2><div id="sidebar-vars" data-name="Constraint" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="struct" href="#">Constraint</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#896-899" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust struct"><code>pub struct Constraint&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; { /* fields omitted */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An individual polynomial constraint.</p>
<p>These are returned by the closures passed to <code>ConstraintSystem::create_gate</code>.</p>
</div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#889" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Constraint.html" title="struct halo2::plonk::Constraint">Constraint</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#889" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3C(%26%27static%20str%2C%20Expression%3CF%3E)%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#901-905" title="goto source code">[src]</a></div><a href="#impl-From%3C(%26%27static%20str%2C%20Expression%3CF%3E)%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a>&amp;'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt; for <a class="struct" href="struct.Constraint.html" title="struct halo2::plonk::Constraint">Constraint</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from-1" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#902-904" title="goto source code">[src]</a></div><a href="#method.from-1" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>((name, poly): <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a>&amp;'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>) -&gt; Self</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3CExpression%3CF%3E%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#895-899" title="goto source code">[src]</a></div><a href="#impl-From%3CExpression%3CF%3E%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;&gt; for <a class="struct" href="struct.Constraint.html" title="struct halo2::plonk::Constraint">Constraint</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#896-898" title="goto source code">[src]</a></div><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(poly: <a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;) -&gt; Self</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#895" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Constraint.html" title="struct halo2::plonk::Constraint">Constraint</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#895" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3C(%26%27static%20str%2C%20Expression%3CF%3E)%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#907-911" title="goto source code">[src]</a></div><a href="#impl-From%3C(%26%27static%20str%2C%20Expression%3CF%3E)%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a>&amp;'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt; for <a class="struct" href="struct.Constraint.html" title="struct halo2::plonk::Constraint">Constraint</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from-1" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#908-910" title="goto source code">[src]</a></div><a href="#method.from-1" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>((name, poly): <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a>&amp;'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>) -&gt; Self</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3CExpression%3CF%3E%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#901-905" title="goto source code">[src]</a></div><a href="#impl-From%3CExpression%3CF%3E%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;&gt; for <a class="struct" href="struct.Constraint.html" title="struct halo2::plonk::Constraint">Constraint</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#902-904" title="goto source code">[src]</a></div><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(poly: <a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;) -&gt; Self</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><div id="impl-RefUnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-RefUnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Constraint.html" title="struct halo2::plonk::Constraint">Constraint</a>&lt;F&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,&nbsp;</span></h3></div><div id="impl-Send" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Send" class="anchor"></a><h3 class="code-header in-band">impl&lt;F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Constraint.html" title="struct halo2::plonk::Constraint">Constraint</a>&lt;F&gt;</h3></div><div id="impl-Sync" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Sync" class="anchor"></a><h3 class="code-header in-band">impl&lt;F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Constraint.html" title="struct halo2::plonk::Constraint">Constraint</a>&lt;F&gt;</h3></div><div id="impl-Unpin" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Unpin" class="anchor"></a><h3 class="code-header in-band">impl&lt;F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Constraint.html" title="struct halo2::plonk::Constraint">Constraint</a>&lt;F&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,&nbsp;</span></h3></div><div id="impl-UnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-UnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Constraint.html" title="struct halo2::plonk::Constraint">Constraint</a>&lt;F&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,&nbsp;</span></h3></div></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Any" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#132-136" title="goto source code">[src]</a></div><a href="#impl-Any" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.type_id" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#133" title="goto source code">[src]</a></div><a href="#method.type_id" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></div></summary><div class='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Borrow%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#208-213" title="goto source code">[src]</a></div><a href="#impl-Borrow%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210" title="goto source code">[src]</a></div><a href="#method.borrow" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</h4></div></summary><div class='docblock'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-BorrowMut%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#216-220" title="goto source code">[src]</a></div><a href="#impl-BorrowMut%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow_mut" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217" title="goto source code">[src]</a></div><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</h4></div></summary><div class='docblock'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>

View File

@ -14,45 +14,45 @@
});
});
</script>
</head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct ConstraintSystem</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#implementations">Associated Constants</a></h3><div class="sidebar-links"><a href="#associatedconstant.ALIGN">ALIGN</a></div><h3 class="sidebar-title"><a href="#implementations">Methods</a></h3><div class="sidebar-links"><a href="#method.advice_column">advice_column</a><a href="#method.blinding_factors">blinding_factors</a><a href="#method.complex_selector">complex_selector</a><a href="#method.create_gate">create_gate</a><a href="#method.degree">degree</a><a href="#method.enable_constant">enable_constant</a><a href="#method.enable_equality">enable_equality</a><a href="#method.fixed_column">fixed_column</a><a href="#method.instance_column">instance_column</a><a href="#method.lookup">lookup</a><a href="#method.lookup_table_column">lookup_table_column</a><a href="#method.minimum_rows">minimum_rows</a><a href="#method.pinned">pinned</a><a href="#method.selector">selector</a><a href="#method.set_minimum_degree">set_minimum_degree</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Clone">Clone</a><a href="#impl-Debug">Debug</a><a href="#impl-Default">Default</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-ToOwned">ToOwned</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a></h2><div id="sidebar-vars" data-name="ConstraintSystem" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="struct" href="#">ConstraintSystem</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#949-976" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust struct"><code>pub struct ConstraintSystem&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; { /* fields omitted */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>This is a description of the circuit environment, such as the gate, column and
</head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct ConstraintSystem</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#implementations">Associated Constants</a></h3><div class="sidebar-links"><a href="#associatedconstant.ALIGN">ALIGN</a></div><h3 class="sidebar-title"><a href="#implementations">Methods</a></h3><div class="sidebar-links"><a href="#method.advice_column">advice_column</a><a href="#method.blinding_factors">blinding_factors</a><a href="#method.complex_selector">complex_selector</a><a href="#method.create_gate">create_gate</a><a href="#method.degree">degree</a><a href="#method.enable_constant">enable_constant</a><a href="#method.enable_equality">enable_equality</a><a href="#method.fixed_column">fixed_column</a><a href="#method.instance_column">instance_column</a><a href="#method.lookup">lookup</a><a href="#method.lookup_table_column">lookup_table_column</a><a href="#method.minimum_rows">minimum_rows</a><a href="#method.pinned">pinned</a><a href="#method.selector">selector</a><a href="#method.set_minimum_degree">set_minimum_degree</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Clone">Clone</a><a href="#impl-Debug">Debug</a><a href="#impl-Default">Default</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-ToOwned">ToOwned</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a></h2><div id="sidebar-vars" data-name="ConstraintSystem" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="struct" href="#">ConstraintSystem</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#955-982" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust struct"><code>pub struct ConstraintSystem&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; { /* fields omitted */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>This is a description of the circuit environment, such as the gate, column and
permutation arrangements.</p>
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1027-1494" title="goto source code">[src]</a></div><a href="#impl" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pinned" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1031-1047" title="goto source code">[src]</a></div><a href="#method.pinned" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.pinned" class="fnname">pinned</a>(&amp;self) -&gt; <a class="struct" href="struct.PinnedConstraintSystem.html" title="struct halo2::plonk::PinnedConstraintSystem">PinnedConstraintSystem</a>&lt;'_, F&gt;</h4></div></summary><div class="docblock"><p>Obtain a pinned version of this constraint system; a structure with the
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1033-1500" title="goto source code">[src]</a></div><a href="#impl" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pinned" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1037-1053" title="goto source code">[src]</a></div><a href="#method.pinned" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.pinned" class="fnname">pinned</a>(&amp;self) -&gt; <a class="struct" href="struct.PinnedConstraintSystem.html" title="struct halo2::plonk::PinnedConstraintSystem">PinnedConstraintSystem</a>&lt;'_, F&gt;</h4></div></summary><div class="docblock"><p>Obtain a pinned version of this constraint system; a structure with the
minimal parameters needed to determine the rest of the constraint
system.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.enable_constant" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1054-1059" title="goto source code">[src]</a></div><a href="#method.enable_constant" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.enable_constant" class="fnname">enable_constant</a>(&amp;mut self, column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2::plonk::Fixed">Fixed</a>&gt;)</h4></div></summary><div class="docblock"><p>Enables this fixed column to be used for global constant assignments.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.enable_constant" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1060-1065" title="goto source code">[src]</a></div><a href="#method.enable_constant" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.enable_constant" class="fnname">enable_constant</a>(&amp;mut self, column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2::plonk::Fixed">Fixed</a>&gt;)</h4></div></summary><div class="docblock"><p>Enables this fixed column to be used for global constant assignments.</p>
<h5 id="side-effects" class="section-header"><a href="#side-effects">Side-effects</a></h5>
<p>The column will be equality-enabled.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.enable_equality" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1062-1065" title="goto source code">[src]</a></div><a href="#method.enable_equality" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.enable_equality" class="fnname">enable_equality</a>(&amp;mut self, column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="enum" href="enum.Any.html" title="enum halo2::plonk::Any">Any</a>&gt;)</h4></div></summary><div class="docblock"><p>Enable the ability to enforce equality over cells in this column</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.lookup" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1071-1094" title="goto source code">[src]</a></div><a href="#method.lookup" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.lookup" class="fnname">lookup</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;table_map: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;mut <a class="struct" href="struct.VirtualCells.html" title="struct halo2::plonk::VirtualCells">VirtualCells</a>&lt;'_, F&gt;) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;, <a class="struct" href="struct.TableColumn.html" title="struct halo2::plonk::TableColumn">TableColumn</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;<br>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></div></summary><div class="docblock"><p>Add a lookup argument for some input expressions and table columns.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.enable_equality" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1068-1071" title="goto source code">[src]</a></div><a href="#method.enable_equality" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.enable_equality" class="fnname">enable_equality</a>(&amp;mut self, column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="enum" href="enum.Any.html" title="enum halo2::plonk::Any">Any</a>&gt;)</h4></div></summary><div class="docblock"><p>Enable the ability to enforce equality over cells in this column</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.lookup" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1077-1100" title="goto source code">[src]</a></div><a href="#method.lookup" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.lookup" class="fnname">lookup</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;table_map: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;mut <a class="struct" href="struct.VirtualCells.html" title="struct halo2::plonk::VirtualCells">VirtualCells</a>&lt;'_, F&gt;) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;, <a class="struct" href="struct.TableColumn.html" title="struct halo2::plonk::TableColumn">TableColumn</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;<br>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></div></summary><div class="docblock"><p>Add a lookup argument for some input expressions and table columns.</p>
<p><code>table_map</code> returns a map between input expressions and the table columns
they need to match.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.set_minimum_degree" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1199-1201" title="goto source code">[src]</a></div><a href="#method.set_minimum_degree" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.set_minimum_degree" class="fnname">set_minimum_degree</a>(&amp;mut self, degree: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h4></div></summary><div class="docblock"><p>Sets the minimum degree required by the circuit, which can be set to a
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.set_minimum_degree" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1205-1207" title="goto source code">[src]</a></div><a href="#method.set_minimum_degree" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.set_minimum_degree" class="fnname">set_minimum_degree</a>(&amp;mut self, degree: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h4></div></summary><div class="docblock"><p>Sets the minimum degree required by the circuit, which can be set to a
larger amount than actually needed. This can be used, for example, to
force the permutation argument to involve more columns in the same set.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.create_gate" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1209-1237" title="goto source code">[src]</a></div><a href="#method.create_gate" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.create_gate" class="fnname">create_gate</a>&lt;C:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="struct.Constraint.html" title="struct halo2::plonk::Constraint">Constraint</a>&lt;F&gt;&gt;, Iter:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = C&gt;&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;constraints: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;mut <a class="struct" href="struct.VirtualCells.html" title="struct halo2::plonk::VirtualCells">VirtualCells</a>&lt;'_, F&gt;) -&gt; Iter<br>)</h4></div></summary><div class="docblock"><p>Creates a new gate.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.create_gate" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1215-1243" title="goto source code">[src]</a></div><a href="#method.create_gate" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.create_gate" class="fnname">create_gate</a>&lt;C:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="struct.Constraint.html" title="struct halo2::plonk::Constraint">Constraint</a>&lt;F&gt;&gt;, Iter:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = C&gt;&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;constraints: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;mut <a class="struct" href="struct.VirtualCells.html" title="struct halo2::plonk::VirtualCells">VirtualCells</a>&lt;'_, F&gt;) -&gt; Iter<br>)</h4></div></summary><div class="docblock"><p>Creates a new gate.</p>
<h5 id="panics" class="section-header"><a href="#panics">Panics</a></h5>
<p>A gate is required to contain polynomial constraints. This method will panic if
<code>constraints</code> returns an empty iterator.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.selector" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1370-1374" title="goto source code">[src]</a></div><a href="#method.selector" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.selector" class="fnname">selector</a>(&amp;mut self) -&gt; <a class="struct" href="struct.Selector.html" title="struct halo2::plonk::Selector">Selector</a></h4></div></summary><div class="docblock"><p>Allocate a new (simple) selector. Simple selectors cannot be added to
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.selector" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1376-1380" title="goto source code">[src]</a></div><a href="#method.selector" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.selector" class="fnname">selector</a>(&amp;mut self) -&gt; <a class="struct" href="struct.Selector.html" title="struct halo2::plonk::Selector">Selector</a></h4></div></summary><div class="docblock"><p>Allocate a new (simple) selector. Simple selectors cannot be added to
expressions nor multiplied by other expressions containing simple
selectors. Also, simple selectors may not appear in lookup argument
inputs.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.complex_selector" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1378-1382" title="goto source code">[src]</a></div><a href="#method.complex_selector" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.complex_selector" class="fnname">complex_selector</a>(&amp;mut self) -&gt; <a class="struct" href="struct.Selector.html" title="struct halo2::plonk::Selector">Selector</a></h4></div></summary><div class="docblock"><p>Allocate a new complex selector that can appear anywhere
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.complex_selector" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1384-1388" title="goto source code">[src]</a></div><a href="#method.complex_selector" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.complex_selector" class="fnname">complex_selector</a>(&amp;mut self) -&gt; <a class="struct" href="struct.Selector.html" title="struct halo2::plonk::Selector">Selector</a></h4></div></summary><div class="docblock"><p>Allocate a new complex selector that can appear anywhere
within expressions.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.lookup_table_column" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1385-1389" title="goto source code">[src]</a></div><a href="#method.lookup_table_column" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.lookup_table_column" class="fnname">lookup_table_column</a>(&amp;mut self) -&gt; <a class="struct" href="struct.TableColumn.html" title="struct halo2::plonk::TableColumn">TableColumn</a></h4></div></summary><div class="docblock"><p>Allocates a new fixed column that can be used in a lookup table.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fixed_column" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1392-1399" title="goto source code">[src]</a></div><a href="#method.fixed_column" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.fixed_column" class="fnname">fixed_column</a>(&amp;mut self) -&gt; <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2::plonk::Fixed">Fixed</a>&gt;</h4></div></summary><div class="docblock"><p>Allocate a new fixed column</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.advice_column" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1402-1410" title="goto source code">[src]</a></div><a href="#method.advice_column" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.advice_column" class="fnname">advice_column</a>(&amp;mut self) -&gt; <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Advice.html" title="struct halo2::plonk::Advice">Advice</a>&gt;</h4></div></summary><div class="docblock"><p>Allocate a new advice column</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.instance_column" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1413-1420" title="goto source code">[src]</a></div><a href="#method.instance_column" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.instance_column" class="fnname">instance_column</a>(&amp;mut self) -&gt; <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Instance.html" title="struct halo2::plonk::Instance">Instance</a>&gt;</h4></div></summary><div class="docblock"><p>Allocate a new instance column</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.degree" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1424-1452" title="goto source code">[src]</a></div><a href="#method.degree" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.degree" class="fnname">degree</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></div></summary><div class="docblock"><p>Compute the degree of the constraint system (the maximum degree of all
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.lookup_table_column" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1391-1395" title="goto source code">[src]</a></div><a href="#method.lookup_table_column" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.lookup_table_column" class="fnname">lookup_table_column</a>(&amp;mut self) -&gt; <a class="struct" href="struct.TableColumn.html" title="struct halo2::plonk::TableColumn">TableColumn</a></h4></div></summary><div class="docblock"><p>Allocates a new fixed column that can be used in a lookup table.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fixed_column" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1398-1405" title="goto source code">[src]</a></div><a href="#method.fixed_column" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.fixed_column" class="fnname">fixed_column</a>(&amp;mut self) -&gt; <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2::plonk::Fixed">Fixed</a>&gt;</h4></div></summary><div class="docblock"><p>Allocate a new fixed column</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.advice_column" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1408-1416" title="goto source code">[src]</a></div><a href="#method.advice_column" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.advice_column" class="fnname">advice_column</a>(&amp;mut self) -&gt; <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Advice.html" title="struct halo2::plonk::Advice">Advice</a>&gt;</h4></div></summary><div class="docblock"><p>Allocate a new advice column</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.instance_column" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1419-1426" title="goto source code">[src]</a></div><a href="#method.instance_column" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.instance_column" class="fnname">instance_column</a>(&amp;mut self) -&gt; <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Instance.html" title="struct halo2::plonk::Instance">Instance</a>&gt;</h4></div></summary><div class="docblock"><p>Allocate a new instance column</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.degree" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1430-1458" title="goto source code">[src]</a></div><a href="#method.degree" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.degree" class="fnname">degree</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></div></summary><div class="docblock"><p>Compute the degree of the constraint system (the maximum degree of all
constraints).</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.blinding_factors" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1456-1481" title="goto source code">[src]</a></div><a href="#method.blinding_factors" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.blinding_factors" class="fnname">blinding_factors</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></div></summary><div class="docblock"><p>Compute the number of blinding factors necessary to perfectly blind
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.blinding_factors" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1462-1487" title="goto source code">[src]</a></div><a href="#method.blinding_factors" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.blinding_factors" class="fnname">blinding_factors</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></div></summary><div class="docblock"><p>Compute the number of blinding factors necessary to perfectly blind
each of the provers witness polynomials.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.minimum_rows" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1485-1493" title="goto source code">[src]</a></div><a href="#method.minimum_rows" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.minimum_rows" class="fnname">minimum_rows</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></div></summary><div class="docblock"><p>Returns the minimum necessary rows that need to exist in order to
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.minimum_rows" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1491-1499" title="goto source code">[src]</a></div><a href="#method.minimum_rows" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.minimum_rows" class="fnname">minimum_rows</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></div></summary><div class="docblock"><p>Returns the minimum necessary rows that need to exist in order to
account for e.g. blinding factors.</p>
</div></details></div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Clone" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#948" title="goto source code">[src]</a></div><a href="#impl-Clone" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.clone" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#948" title="goto source code">[src]</a></div><a href="#method.clone" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fnname">clone</a>(&amp;self) -&gt; <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;</h4></div></summary><div class='docblock'><p>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></p>
</div></details></div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Clone" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#954" title="goto source code">[src]</a></div><a href="#impl-Clone" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.clone" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#954" title="goto source code">[src]</a></div><a href="#method.clone" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fnname">clone</a>(&amp;self) -&gt; <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;</h4></div></summary><div class='docblock'><p>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.clone_from" class="method trait-impl has-srclink"><div class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#130" title="goto source code">[src]</a></div><a href="#method.clone_from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fnname">clone_from</a>(&amp;mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Self)</h4></div></summary><div class='docblock'><p>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#948" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#948" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Default" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1006-1025" title="goto source code">[src]</a></div><a href="#impl-Default" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.default" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1007-1024" title="goto source code">[src]</a></div><a href="#method.default" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fnname">default</a>() -&gt; <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;</h4></div></summary><div class='docblock'><p>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#954" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#954" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Default" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1012-1031" title="goto source code">[src]</a></div><a href="#impl-Default" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.default" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1013-1030" title="goto source code">[src]</a></div><a href="#method.default" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fnname">default</a>() -&gt; <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;</h4></div></summary><div class='docblock'><p>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></p>
</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><div id="impl-RefUnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-RefUnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,&nbsp;</span></h3></div><div id="impl-Send" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Send" class="anchor"></a><h3 class="code-header in-band">impl&lt;F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;</h3></div><div id="impl-Sync" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Sync" class="anchor"></a><h3 class="code-header in-band">impl&lt;F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;</h3></div><div id="impl-Unpin" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Unpin" class="anchor"></a><h3 class="code-header in-band">impl&lt;F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,&nbsp;</span></h3></div><div id="impl-UnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-UnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,&nbsp;</span></h3></div></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Any" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#132-136" title="goto source code">[src]</a></div><a href="#impl-Any" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.type_id" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#133" title="goto source code">[src]</a></div><a href="#method.type_id" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></div></summary><div class='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Borrow%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#208-213" title="goto source code">[src]</a></div><a href="#impl-Borrow%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210" title="goto source code">[src]</a></div><a href="#method.borrow" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</h4></div></summary><div class='docblock'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-BorrowMut%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#216-220" title="goto source code">[src]</a></div><a href="#impl-BorrowMut%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow_mut" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217" title="goto source code">[src]</a></div><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</h4></div></summary><div class='docblock'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>

View File

@ -14,8 +14,8 @@
});
});
</script>
</head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct PinnedConstraintSystem</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#implementations">Associated Constants</a></h3><div class="sidebar-links"><a href="#associatedconstant.ALIGN">ALIGN</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Debug">Debug</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a></h2><div id="sidebar-vars" data-name="PinnedConstraintSystem" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="struct" href="#">PinnedConstraintSystem</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#980-994" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust struct"><code>pub struct PinnedConstraintSystem&lt;'a, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; { /* fields omitted */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Represents the minimal parameters that determine a <code>ConstraintSystem</code>.</p>
</div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#979" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.PinnedConstraintSystem.html" title="struct halo2::plonk::PinnedConstraintSystem">PinnedConstraintSystem</a>&lt;'a, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#979" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct PinnedConstraintSystem</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#implementations">Associated Constants</a></h3><div class="sidebar-links"><a href="#associatedconstant.ALIGN">ALIGN</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Debug">Debug</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a></h2><div id="sidebar-vars" data-name="PinnedConstraintSystem" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="struct" href="#">PinnedConstraintSystem</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#986-1000" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust struct"><code>pub struct PinnedConstraintSystem&lt;'a, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; { /* fields omitted */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Represents the minimal parameters that determine a <code>ConstraintSystem</code>.</p>
</div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#985" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.PinnedConstraintSystem.html" title="struct halo2::plonk::PinnedConstraintSystem">PinnedConstraintSystem</a>&lt;'a, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#985" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><div id="impl-RefUnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-RefUnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.PinnedConstraintSystem.html" title="struct halo2::plonk::PinnedConstraintSystem">PinnedConstraintSystem</a>&lt;'a, F&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,&nbsp;</span></h3></div><div id="impl-Send" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Send" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.PinnedConstraintSystem.html" title="struct halo2::plonk::PinnedConstraintSystem">PinnedConstraintSystem</a>&lt;'a, F&gt;</h3></div><div id="impl-Sync" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Sync" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.PinnedConstraintSystem.html" title="struct halo2::plonk::PinnedConstraintSystem">PinnedConstraintSystem</a>&lt;'a, F&gt;</h3></div><div id="impl-Unpin" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Unpin" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.PinnedConstraintSystem.html" title="struct halo2::plonk::PinnedConstraintSystem">PinnedConstraintSystem</a>&lt;'a, F&gt;</h3></div><div id="impl-UnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-UnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.PinnedConstraintSystem.html" title="struct halo2::plonk::PinnedConstraintSystem">PinnedConstraintSystem</a>&lt;'a, F&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,&nbsp;</span></h3></div></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Any" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#132-136" title="goto source code">[src]</a></div><a href="#impl-Any" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.type_id" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#133" title="goto source code">[src]</a></div><a href="#method.type_id" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></div></summary><div class='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Borrow%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#208-213" title="goto source code">[src]</a></div><a href="#impl-Borrow%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210" title="goto source code">[src]</a></div><a href="#method.borrow" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</h4></div></summary><div class='docblock'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-BorrowMut%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#216-220" title="goto source code">[src]</a></div><a href="#impl-BorrowMut%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow_mut" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217" title="goto source code">[src]</a></div><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</h4></div></summary><div class='docblock'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>

View File

@ -14,14 +14,14 @@
});
});
</script>
</head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct VirtualCells</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#implementations">Associated Constants</a></h3><div class="sidebar-links"><a href="#associatedconstant.ALIGN">ALIGN</a></div><h3 class="sidebar-title"><a href="#implementations">Methods</a></h3><div class="sidebar-links"><a href="#method.query_advice">query_advice</a><a href="#method.query_any">query_any</a><a href="#method.query_fixed">query_fixed</a><a href="#method.query_instance">query_instance</a><a href="#method.query_selector">query_selector</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Debug">Debug</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">!UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a></h2><div id="sidebar-vars" data-name="VirtualCells" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="struct" href="#">VirtualCells</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1499-1503" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust struct"><code>pub struct VirtualCells&lt;'a, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; { /* fields omitted */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Exposes the “virtual cells” that can be queried while creating a custom gate or lookup
</head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct VirtualCells</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#implementations">Associated Constants</a></h3><div class="sidebar-links"><a href="#associatedconstant.ALIGN">ALIGN</a></div><h3 class="sidebar-title"><a href="#implementations">Methods</a></h3><div class="sidebar-links"><a href="#method.query_advice">query_advice</a><a href="#method.query_any">query_any</a><a href="#method.query_fixed">query_fixed</a><a href="#method.query_instance">query_instance</a><a href="#method.query_selector">query_selector</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Debug">Debug</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">!UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a></h2><div id="sidebar-vars" data-name="VirtualCells" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="struct" href="#">VirtualCells</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1505-1509" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust struct"><code>pub struct VirtualCells&lt;'a, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; { /* fields omitted */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Exposes the “virtual cells” that can be queried while creating a custom gate or lookup
table.</p>
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1505-1558" title="goto source code">[src]</a></div><a href="#impl" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="struct" href="struct.VirtualCells.html" title="struct halo2::plonk::VirtualCells">VirtualCells</a>&lt;'a, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.query_selector" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1515-1518" title="goto source code">[src]</a></div><a href="#method.query_selector" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.query_selector" class="fnname">query_selector</a>(&amp;mut self, selector: <a class="struct" href="struct.Selector.html" title="struct halo2::plonk::Selector">Selector</a>) -&gt; <a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;</h4></div></summary><div class="docblock"><p>Query a selector at the current position.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.query_fixed" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1521-1528" title="goto source code">[src]</a></div><a href="#method.query_fixed" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.query_fixed" class="fnname">query_fixed</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2::plonk::Fixed">Fixed</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;at: <a class="struct" href="../poly/struct.Rotation.html" title="struct halo2::poly::Rotation">Rotation</a><br>) -&gt; <a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;</h4></div></summary><div class="docblock"><p>Query a fixed column at a relative position</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.query_advice" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1531-1538" title="goto source code">[src]</a></div><a href="#method.query_advice" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.query_advice" class="fnname">query_advice</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Advice.html" title="struct halo2::plonk::Advice">Advice</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;at: <a class="struct" href="../poly/struct.Rotation.html" title="struct halo2::poly::Rotation">Rotation</a><br>) -&gt; <a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;</h4></div></summary><div class="docblock"><p>Query an advice column at a relative position</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.query_instance" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1541-1548" title="goto source code">[src]</a></div><a href="#method.query_instance" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.query_instance" class="fnname">query_instance</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Instance.html" title="struct halo2::plonk::Instance">Instance</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;at: <a class="struct" href="../poly/struct.Rotation.html" title="struct halo2::poly::Rotation">Rotation</a><br>) -&gt; <a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;</h4></div></summary><div class="docblock"><p>Query an instance column at a relative position</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.query_any" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1551-1557" title="goto source code">[src]</a></div><a href="#method.query_any" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.query_any" class="fnname">query_any</a>(&amp;mut self, column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="enum" href="enum.Any.html" title="enum halo2::plonk::Any">Any</a>&gt;, at: <a class="struct" href="../poly/struct.Rotation.html" title="struct halo2::poly::Rotation">Rotation</a>) -&gt; <a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;</h4></div></summary><div class="docblock"><p>Query an Any column at a relative position</p>
</div></details></div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1498" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.VirtualCells.html" title="struct halo2::plonk::VirtualCells">VirtualCells</a>&lt;'a, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1498" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1511-1564" title="goto source code">[src]</a></div><a href="#impl" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="struct" href="struct.VirtualCells.html" title="struct halo2::plonk::VirtualCells">VirtualCells</a>&lt;'a, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.query_selector" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1521-1524" title="goto source code">[src]</a></div><a href="#method.query_selector" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.query_selector" class="fnname">query_selector</a>(&amp;mut self, selector: <a class="struct" href="struct.Selector.html" title="struct halo2::plonk::Selector">Selector</a>) -&gt; <a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;</h4></div></summary><div class="docblock"><p>Query a selector at the current position.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.query_fixed" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1527-1534" title="goto source code">[src]</a></div><a href="#method.query_fixed" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.query_fixed" class="fnname">query_fixed</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2::plonk::Fixed">Fixed</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;at: <a class="struct" href="../poly/struct.Rotation.html" title="struct halo2::poly::Rotation">Rotation</a><br>) -&gt; <a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;</h4></div></summary><div class="docblock"><p>Query a fixed column at a relative position</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.query_advice" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1537-1544" title="goto source code">[src]</a></div><a href="#method.query_advice" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.query_advice" class="fnname">query_advice</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Advice.html" title="struct halo2::plonk::Advice">Advice</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;at: <a class="struct" href="../poly/struct.Rotation.html" title="struct halo2::poly::Rotation">Rotation</a><br>) -&gt; <a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;</h4></div></summary><div class="docblock"><p>Query an advice column at a relative position</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.query_instance" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1547-1554" title="goto source code">[src]</a></div><a href="#method.query_instance" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.query_instance" class="fnname">query_instance</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Instance.html" title="struct halo2::plonk::Instance">Instance</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;at: <a class="struct" href="../poly/struct.Rotation.html" title="struct halo2::poly::Rotation">Rotation</a><br>) -&gt; <a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;</h4></div></summary><div class="docblock"><p>Query an instance column at a relative position</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.query_any" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1557-1563" title="goto source code">[src]</a></div><a href="#method.query_any" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.query_any" class="fnname">query_any</a>(&amp;mut self, column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="enum" href="enum.Any.html" title="enum halo2::plonk::Any">Any</a>&gt;, at: <a class="struct" href="../poly/struct.Rotation.html" title="struct halo2::poly::Rotation">Rotation</a>) -&gt; <a class="enum" href="enum.Expression.html" title="enum halo2::plonk::Expression">Expression</a>&lt;F&gt;</h4></div></summary><div class="docblock"><p>Query an Any column at a relative position</p>
</div></details></div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1504" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.VirtualCells.html" title="struct halo2::plonk::VirtualCells">VirtualCells</a>&lt;'a, F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#1504" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><div id="impl-RefUnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-RefUnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.VirtualCells.html" title="struct halo2::plonk::VirtualCells">VirtualCells</a>&lt;'a, F&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,&nbsp;</span></h3></div><div id="impl-Send" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Send" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.VirtualCells.html" title="struct halo2::plonk::VirtualCells">VirtualCells</a>&lt;'a, F&gt;</h3></div><div id="impl-Sync" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Sync" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.VirtualCells.html" title="struct halo2::plonk::VirtualCells">VirtualCells</a>&lt;'a, F&gt;</h3></div><div id="impl-Unpin" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Unpin" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.VirtualCells.html" title="struct halo2::plonk::VirtualCells">VirtualCells</a>&lt;'a, F&gt;</h3></div><div id="impl-UnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-UnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a, F&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.VirtualCells.html" title="struct halo2::plonk::VirtualCells">VirtualCells</a>&lt;'a, F&gt;</h3></div></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Any" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#132-136" title="goto source code">[src]</a></div><a href="#impl-Any" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.type_id" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#133" title="goto source code">[src]</a></div><a href="#method.type_id" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></div></summary><div class='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Borrow%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#208-213" title="goto source code">[src]</a></div><a href="#impl-Borrow%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210" title="goto source code">[src]</a></div><a href="#method.borrow" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</h4></div></summary><div class='docblock'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-BorrowMut%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#216-220" title="goto source code">[src]</a></div><a href="#impl-BorrowMut%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow_mut" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217" title="goto source code">[src]</a></div><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</h4></div></summary><div class='docblock'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>

View File

@ -14,7 +14,7 @@
});
});
</script>
</head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Trait Assignment</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><div class="sidebar-links"><a href="#tymethod.assign_advice">assign_advice</a><a href="#tymethod.assign_fixed">assign_fixed</a><a href="#tymethod.copy">copy</a><a href="#tymethod.enable_selector">enable_selector</a><a href="#tymethod.enter_region">enter_region</a><a href="#tymethod.exit_region">exit_region</a><a href="#tymethod.fill_from_row">fill_from_row</a><a href="#tymethod.pop_namespace">pop_namespace</a><a href="#tymethod.push_namespace">push_namespace</a><a href="#tymethod.query_instance">query_instance</a></div><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a></h2><div id="sidebar-vars" data-name="Assignment" data-ty="trait" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Trait <a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="trait" href="#">Assignment</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#451-550" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust trait"><code>pub trait Assignment&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; {
</head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Trait Assignment</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><div class="sidebar-links"><a href="#tymethod.assign_advice">assign_advice</a><a href="#tymethod.assign_fixed">assign_fixed</a><a href="#tymethod.copy">copy</a><a href="#tymethod.enable_selector">enable_selector</a><a href="#tymethod.enter_region">enter_region</a><a href="#tymethod.exit_region">exit_region</a><a href="#tymethod.fill_from_row">fill_from_row</a><a href="#tymethod.pop_namespace">pop_namespace</a><a href="#tymethod.push_namespace">push_namespace</a><a href="#tymethod.query_instance">query_instance</a></div><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a></h2><div id="sidebar-vars" data-name="Assignment" data-ty="trait" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Trait <a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="trait" href="#">Assignment</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#457-556" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust trait"><code>pub trait Assignment&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; {
fn <a href="#tymethod.enter_region" class="fnname">enter_region</a>&lt;NR, N&gt;(&amp;mut self, name_fn: N)<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; NR</span>;
<div class="item-spacer"></div> fn <a href="#tymethod.exit_region" class="fnname">exit_region</a>(&amp;mut self);
<div class="item-spacer"></div> fn <a href="#tymethod.enable_selector" class="fnname">enable_selector</a>&lt;A, AR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;annotation: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selector: &amp;<a class="struct" href="struct.Selector.html" title="struct halo2::plonk::Selector">Selector</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;</span>;
@ -27,22 +27,22 @@
<div class="item-spacer"></div> fn <a href="#tymethod.pop_namespace" class="fnname">pop_namespace</a>(&amp;mut self, gadget_name: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;);
}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>This trait allows a <a href="trait.Circuit.html" title="Circuit"><code>Circuit</code></a> to direct some backend to assign a witness
for a constraint system.</p>
</div></details><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="tymethod.enter_region" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#459-462" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.enter_region" class="fnname">enter_region</a>&lt;NR, N&gt;(&amp;mut self, name_fn: N) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; NR,&nbsp;</span></h4></div></summary><div class="docblock"><p>Creates a new region and enters into it.</p>
</div></details><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="tymethod.enter_region" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#465-468" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.enter_region" class="fnname">enter_region</a>&lt;NR, N&gt;(&amp;mut self, name_fn: N) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; NR,&nbsp;</span></h4></div></summary><div class="docblock"><p>Creates a new region and enters into it.</p>
<p>Panics if we are currently in a region (if <code>exit_region</code> was not called).</p>
<p>Not intended for downstream consumption; use <a href="../circuit/trait.Layouter.html#method.assign_region"><code>Layouter::assign_region</code></a> instead.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.exit_region" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#471" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.exit_region" class="fnname">exit_region</a>(&amp;mut self)</h4></div></summary><div class="docblock"><p>Exits the current region.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.exit_region" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#477" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.exit_region" class="fnname">exit_region</a>(&amp;mut self)</h4></div></summary><div class="docblock"><p>Exits the current region.</p>
<p>Panics if we are not currently in a region (if <code>enter_region</code> was not called).</p>
<p>Not intended for downstream consumption; use <a href="../circuit/trait.Layouter.html#method.assign_region"><code>Layouter::assign_region</code></a> instead.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.enable_selector" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#474-482" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.enable_selector" class="fnname">enable_selector</a>&lt;A, AR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;annotation: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;selector: &amp;<a class="struct" href="struct.Selector.html" title="struct halo2::plonk::Selector">Selector</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Enables a selector at the given row.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.query_instance" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#487" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.query_instance" class="fnname">query_instance</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Instance.html" title="struct halo2::plonk::Instance">Instance</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;F&gt;, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Queries the cell of an instance column at a particular absolute row.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.enable_selector" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#480-488" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.enable_selector" class="fnname">enable_selector</a>&lt;A, AR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;annotation: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;selector: &amp;<a class="struct" href="struct.Selector.html" title="struct halo2::plonk::Selector">Selector</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Enables a selector at the given row.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.query_instance" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#493" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.query_instance" class="fnname">query_instance</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Instance.html" title="struct halo2::plonk::Instance">Instance</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;F&gt;, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Queries the cell of an instance column at a particular absolute row.</p>
<p>Returns the cells value, if known.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.assign_advice" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#490-501" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.assign_advice" class="fnname">assign_advice</a>&lt;V, VR, A, AR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;annotation: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Advice.html" title="struct halo2::plonk::Advice">Advice</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;to: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;VR, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;VR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assign an advice column value (witness)</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.assign_fixed" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#504-515" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.assign_fixed" class="fnname">assign_fixed</a>&lt;V, VR, A, AR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;annotation: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2::plonk::Fixed">Fixed</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;to: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;VR, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;VR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assign a fixed value</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.copy" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#518-524" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.copy" class="fnname">copy</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;left_column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="enum" href="enum.Any.html" title="enum halo2::plonk::Any">Any</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;left_row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;right_column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="enum" href="enum.Any.html" title="enum halo2::plonk::Any">Any</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;right_row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Assign two cells to have the same value</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.fill_from_row" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#527-532" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.fill_from_row" class="fnname">fill_from_row</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2::plonk::Fixed">Fixed</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;to: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;&gt;<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Fills a fixed <code>column</code> starting from the given <code>row</code> with value <code>to</code>.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.push_namespace" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#539-542" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.push_namespace" class="fnname">push_namespace</a>&lt;NR, N&gt;(&amp;mut self, name_fn: N) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; NR,&nbsp;</span></h4></div></summary><div class="docblock"><p>Creates a new (sub)namespace and enters into it.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.assign_advice" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#496-507" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.assign_advice" class="fnname">assign_advice</a>&lt;V, VR, A, AR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;annotation: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Advice.html" title="struct halo2::plonk::Advice">Advice</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;to: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;VR, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;VR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assign an advice column value (witness)</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.assign_fixed" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#510-521" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.assign_fixed" class="fnname">assign_fixed</a>&lt;V, VR, A, AR&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;annotation: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2::plonk::Fixed">Fixed</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;to: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;VR, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;VR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class="docblock"><p>Assign a fixed value</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.copy" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#524-530" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.copy" class="fnname">copy</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;left_column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="enum" href="enum.Any.html" title="enum halo2::plonk::Any">Any</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;left_row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;right_column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="enum" href="enum.Any.html" title="enum halo2::plonk::Any">Any</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;right_row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Assign two cells to have the same value</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.fill_from_row" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#533-538" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.fill_from_row" class="fnname">fill_from_row</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2::plonk::Fixed">Fixed</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;to: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;&gt;<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Fills a fixed <code>column</code> starting from the given <code>row</code> with value <code>to</code>.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.push_namespace" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#545-548" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.push_namespace" class="fnname">push_namespace</a>&lt;NR, N&gt;(&amp;mut self, name_fn: N) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; NR,&nbsp;</span></h4></div></summary><div class="docblock"><p>Creates a new (sub)namespace and enters into it.</p>
<p>Not intended for downstream consumption; use <a href="../circuit/trait.Layouter.html#method.namespace"><code>Layouter::namespace</code></a> instead.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.pop_namespace" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#549" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.pop_namespace" class="fnname">pop_namespace</a>(&amp;mut self, gadget_name: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;)</h4></div></summary><div class="docblock"><p>Exits out of the existing namespace.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.pop_namespace" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#555" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.pop_namespace" class="fnname">pop_namespace</a>(&amp;mut self, gadget_name: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;)</h4></div></summary><div class="docblock"><p>Exits out of the existing namespace.</p>
<p>Not intended for downstream consumption; use <a href="../circuit/trait.Layouter.html#method.namespace"><code>Layouter::namespace</code></a> instead.</p>
</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><div id="impl-Assignment%3CF%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#379-535" title="goto source code">[src]</a></div><a href="#impl-Assignment%3CF%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a> + <a class="trait" href="../arithmetic/trait.Group.html" title="trait halo2::arithmetic::Group">Group</a>&gt; <a class="trait" href="trait.Assignment.html" title="trait halo2::plonk::Assignment">Assignment</a>&lt;F&gt; for <a class="struct" href="../dev/struct.MockProver.html" title="struct halo2::dev::MockProver">MockProver</a>&lt;F&gt;</h3></div></div><script type="text/javascript" src="../../implementors/halo2/plonk/trait.Assignment.js" async></script></section><section id="search" class="content hidden"></section><div id="rustdoc-vars" data-root-path="../../" data-current-crate="halo2" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.59.0-nightly (6db0a0e9a 2021-11-29)" ></div>
</body></html>

View File

@ -14,7 +14,7 @@
});
});
</script>
</head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Trait Circuit</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#associated-types">Associated Types</a></h3><div class="sidebar-links"><a href="#associatedtype.Config">Config</a><a href="#associatedtype.FloorPlanner">FloorPlanner</a></div><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><div class="sidebar-links"><a href="#tymethod.configure">configure</a><a href="#tymethod.synthesize">synthesize</a><a href="#tymethod.without_witnesses">without_witnesses</a></div><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a></h2><div id="sidebar-vars" data-name="Circuit" data-ty="trait" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Trait <a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="trait" href="#">Circuit</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#578-597" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust trait"><code>pub trait Circuit&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; {
</head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Trait Circuit</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#associated-types">Associated Types</a></h3><div class="sidebar-links"><a href="#associatedtype.Config">Config</a><a href="#associatedtype.FloorPlanner">FloorPlanner</a></div><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><div class="sidebar-links"><a href="#tymethod.configure">configure</a><a href="#tymethod.synthesize">synthesize</a><a href="#tymethod.without_witnesses">without_witnesses</a></div><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a></h2><div id="sidebar-vars" data-name="Circuit" data-ty="trait" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Trait <a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="trait" href="#">Circuit</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#584-603" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust trait"><code>pub trait Circuit&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; {
type <a href="#associatedtype.Config" class="type">Config</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>;
type <a href="#associatedtype.FloorPlanner" class="type">FloorPlanner</a>: <a class="trait" href="trait.FloorPlanner.html" title="trait halo2::plonk::FloorPlanner">FloorPlanner</a>;
fn <a href="#tymethod.without_witnesses" class="fnname">without_witnesses</a>(&amp;self) -&gt; Self;
@ -23,14 +23,14 @@
}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>This is a trait that circuits provide implementations for so that the
backend prover can ask the circuit to synthesize using some given
<a href="struct.ConstraintSystem.html" title="ConstraintSystem"><code>ConstraintSystem</code></a> implementation.</p>
</div></details><h2 id="associated-types" class="small-section-header">Associated Types<a href="#associated-types" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="associatedtype.Config" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#580" title="goto source code">[src]</a></div><h4 class="code-header">type <a href="#associatedtype.Config" class="type">Config</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a></h4></div></summary><div class="docblock"><p>This is a configuration object that stores things like columns.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="associatedtype.FloorPlanner" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#583" title="goto source code">[src]</a></div><h4 class="code-header">type <a href="#associatedtype.FloorPlanner" class="type">FloorPlanner</a>: <a class="trait" href="trait.FloorPlanner.html" title="trait halo2::plonk::FloorPlanner">FloorPlanner</a></h4></div></summary><div class="docblock"><p>The floor planner used for this circuit. This is an associated type of the
</div></details><h2 id="associated-types" class="small-section-header">Associated Types<a href="#associated-types" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="associatedtype.Config" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#586" title="goto source code">[src]</a></div><h4 class="code-header">type <a href="#associatedtype.Config" class="type">Config</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a></h4></div></summary><div class="docblock"><p>This is a configuration object that stores things like columns.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="associatedtype.FloorPlanner" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#589" title="goto source code">[src]</a></div><h4 class="code-header">type <a href="#associatedtype.FloorPlanner" class="type">FloorPlanner</a>: <a class="trait" href="trait.FloorPlanner.html" title="trait halo2::plonk::FloorPlanner">FloorPlanner</a></h4></div></summary><div class="docblock"><p>The floor planner used for this circuit. This is an associated type of the
<code>Circuit</code> trait because its behaviour is circuit-critical.</p>
</div></details></div><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="tymethod.without_witnesses" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#587" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.without_witnesses" class="fnname">without_witnesses</a>(&amp;self) -&gt; Self</h4></div></summary><div class="docblock"><p>Returns a copy of this circuit with no witness values (i.e. all witnesses set to
</div></details></div><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="tymethod.without_witnesses" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#593" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.without_witnesses" class="fnname">without_witnesses</a>(&amp;self) -&gt; Self</h4></div></summary><div class="docblock"><p>Returns a copy of this circuit with no witness values (i.e. all witnesses set to
<code>None</code>). For most circuits, this will be equal to <code>Self::default()</code>.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.configure" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#591" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.configure" class="fnname">configure</a>(meta: &amp;mut <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;) -&gt; Self::<a class="type" href="trait.Circuit.html#associatedtype.Config" title="type halo2::plonk::Circuit::Config">Config</a></h4></div></summary><div class="docblock"><p>The circuit is given an opportunity to describe the exact gate
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.configure" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#597" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.configure" class="fnname">configure</a>(meta: &amp;mut <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;) -&gt; Self::<a class="type" href="trait.Circuit.html#associatedtype.Config" title="type halo2::plonk::Circuit::Config">Config</a></h4></div></summary><div class="docblock"><p>The circuit is given an opportunity to describe the exact gate
arrangement, column arrangement, etc.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.synthesize" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#596" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.synthesize" class="fnname">synthesize</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;config: Self::<a class="type" href="trait.Circuit.html#associatedtype.Config" title="type halo2::plonk::Circuit::Config">Config</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;layouter: impl <a class="trait" href="../circuit/trait.Layouter.html" title="trait halo2::circuit::Layouter">Layouter</a>&lt;F&gt;<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Given the provided <code>cs</code>, synthesize the circuit. The concrete type of
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.synthesize" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#602" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.synthesize" class="fnname">synthesize</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;config: Self::<a class="type" href="trait.Circuit.html#associatedtype.Config" title="type halo2::plonk::Circuit::Config">Config</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;layouter: impl <a class="trait" href="../circuit/trait.Layouter.html" title="trait halo2::circuit::Layouter">Layouter</a>&lt;F&gt;<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Given the provided <code>cs</code>, synthesize the circuit. The concrete type of
the caller will be different depending on the context, and they may or
may not expect to have a witness present.</p>
</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"></div><script type="text/javascript" src="../../implementors/halo2/plonk/trait.Circuit.js" async></script></section><section id="search" class="content hidden"></section><div id="rustdoc-vars" data-root-path="../../" data-current-crate="halo2" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.59.0-nightly (6db0a0e9a 2021-11-29)" ></div>

View File

@ -14,12 +14,12 @@
});
});
</script>
</head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Trait FloorPlanner</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><div class="sidebar-links"><a href="#tymethod.synthesize">synthesize</a></div><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a></h2><div id="sidebar-vars" data-name="FloorPlanner" data-ty="trait" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Trait <a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="trait" href="#">FloorPlanner</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#556-573" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust trait"><code>pub trait FloorPlanner {
</head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Trait FloorPlanner</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><div class="sidebar-links"><a href="#tymethod.synthesize">synthesize</a></div><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a></h2><div id="sidebar-vars" data-name="FloorPlanner" data-ty="trait" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Trait <a href="../index.html">halo2</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="trait" href="#">FloorPlanner</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#562-579" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust trait"><code>pub trait FloorPlanner {
fn <a href="#tymethod.synthesize" class="fnname">synthesize</a>&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>, CS:&nbsp;<a class="trait" href="trait.Assignment.html" title="trait halo2::plonk::Assignment">Assignment</a>&lt;F&gt;, C:&nbsp;<a class="trait" href="trait.Circuit.html" title="trait halo2::plonk::Circuit">Circuit</a>&lt;F&gt;&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cs: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>CS, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;circuit: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>C, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;config: C::<a class="type" href="trait.Circuit.html#associatedtype.Config" title="type halo2::plonk::Circuit::Config">Config</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;constants: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2::plonk::Fixed">Fixed</a>&gt;&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;;
}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A floor planning strategy for a circuit.</p>
<p>The floor planner is chip-agnostic and applies its strategy to the circuit it is used
within.</p>
</div></details><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="tymethod.synthesize" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#567-572" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.synthesize" class="fnname">synthesize</a>&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>, CS:&nbsp;<a class="trait" href="trait.Assignment.html" title="trait halo2::plonk::Assignment">Assignment</a>&lt;F&gt;, C:&nbsp;<a class="trait" href="trait.Circuit.html" title="trait halo2::plonk::Circuit">Circuit</a>&lt;F&gt;&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;cs: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>CS, <br>&nbsp;&nbsp;&nbsp;&nbsp;circuit: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>C, <br>&nbsp;&nbsp;&nbsp;&nbsp;config: C::<a class="type" href="trait.Circuit.html#associatedtype.Config" title="type halo2::plonk::Circuit::Config">Config</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;constants: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2::plonk::Fixed">Fixed</a>&gt;&gt;<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Given the provided <code>cs</code>, synthesize the given circuit.</p>
</div></details><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="tymethod.synthesize" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#573-578" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.synthesize" class="fnname">synthesize</a>&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>, CS:&nbsp;<a class="trait" href="trait.Assignment.html" title="trait halo2::plonk::Assignment">Assignment</a>&lt;F&gt;, C:&nbsp;<a class="trait" href="trait.Circuit.html" title="trait halo2::plonk::Circuit">Circuit</a>&lt;F&gt;&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;cs: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>CS, <br>&nbsp;&nbsp;&nbsp;&nbsp;circuit: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>C, <br>&nbsp;&nbsp;&nbsp;&nbsp;config: C::<a class="type" href="trait.Circuit.html#associatedtype.Config" title="type halo2::plonk::Circuit::Config">Config</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;constants: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2::plonk::Fixed">Fixed</a>&gt;&gt;<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Given the provided <code>cs</code>, synthesize the given circuit.</p>
<p><code>constants</code> is the list of fixed columns that the layouter may use to assign
global constant values. These columns will all have been equality-enabled.</p>
<p>Internally, a floor planner will perform the following operations:</p>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -463,9 +463,101 @@
<span id="447">447</span>
<span id="448">448</span>
<span id="449">449</span>
<span id="450">450</span>
<span id="451">451</span>
<span id="452">452</span>
<span id="453">453</span>
<span id="454">454</span>
<span id="455">455</span>
<span id="456">456</span>
<span id="457">457</span>
<span id="458">458</span>
<span id="459">459</span>
<span id="460">460</span>
<span id="461">461</span>
<span id="462">462</span>
<span id="463">463</span>
<span id="464">464</span>
<span id="465">465</span>
<span id="466">466</span>
<span id="467">467</span>
<span id="468">468</span>
<span id="469">469</span>
<span id="470">470</span>
<span id="471">471</span>
<span id="472">472</span>
<span id="473">473</span>
<span id="474">474</span>
<span id="475">475</span>
<span id="476">476</span>
<span id="477">477</span>
<span id="478">478</span>
<span id="479">479</span>
<span id="480">480</span>
<span id="481">481</span>
<span id="482">482</span>
<span id="483">483</span>
<span id="484">484</span>
<span id="485">485</span>
<span id="486">486</span>
<span id="487">487</span>
<span id="488">488</span>
<span id="489">489</span>
<span id="490">490</span>
<span id="491">491</span>
<span id="492">492</span>
<span id="493">493</span>
<span id="494">494</span>
<span id="495">495</span>
<span id="496">496</span>
<span id="497">497</span>
<span id="498">498</span>
<span id="499">499</span>
<span id="500">500</span>
<span id="501">501</span>
<span id="502">502</span>
<span id="503">503</span>
<span id="504">504</span>
<span id="505">505</span>
<span id="506">506</span>
<span id="507">507</span>
<span id="508">508</span>
<span id="509">509</span>
<span id="510">510</span>
<span id="511">511</span>
<span id="512">512</span>
<span id="513">513</span>
<span id="514">514</span>
<span id="515">515</span>
<span id="516">516</span>
<span id="517">517</span>
<span id="518">518</span>
<span id="519">519</span>
<span id="520">520</span>
<span id="521">521</span>
<span id="522">522</span>
<span id="523">523</span>
<span id="524">524</span>
<span id="525">525</span>
<span id="526">526</span>
<span id="527">527</span>
<span id="528">528</span>
<span id="529">529</span>
<span id="530">530</span>
<span id="531">531</span>
<span id="532">532</span>
<span id="533">533</span>
<span id="534">534</span>
<span id="535">535</span>
<span id="536">536</span>
<span id="537">537</span>
<span id="538">538</span>
<span id="539">539</span>
<span id="540">540</span>
<span id="541">541</span>
</pre><pre class="rust"><code><span class="doccomment">//! Traits and structs for implementing circuit components.</span>
<span class="kw">use</span> <span class="ident">std</span>::{<span class="ident">fmt</span>, <span class="ident">marker::PhantomData</span>};
<span class="kw">use</span> <span class="ident">std</span>::{<span class="ident">convert::TryInto</span>, <span class="ident">fmt</span>, <span class="ident">marker::PhantomData</span>};
<span class="kw">use</span> <span class="ident">ff::Field</span>;
@ -557,6 +649,64 @@
<span class="ident">column</span>: <span class="ident">Column</span><span class="op">&lt;</span><span class="ident">Any</span><span class="op">&gt;</span>,
}
<span class="doccomment">/// An assigned cell.</span>
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Debug</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">AssignedCell</span><span class="op">&lt;</span><span class="ident">V</span>, <span class="ident">F</span>: <span class="ident">Field</span><span class="op">&gt;</span> {
<span class="ident">value</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">V</span><span class="op">&gt;</span>,
<span class="ident">cell</span>: <span class="ident">Cell</span>,
<span class="ident">_marker</span>: <span class="ident">PhantomData</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>,
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">V</span>, <span class="ident">F</span>: <span class="ident">Field</span><span class="op">&gt;</span> <span class="ident">AssignedCell</span><span class="op">&lt;</span><span class="ident">V</span>, <span class="ident">F</span><span class="op">&gt;</span> {
<span class="doccomment">/// Returns the value of the [`AssignedCell`].</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">value</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="ident">V</span><span class="op">&gt;</span> {
<span class="self">self</span>.<span class="ident">value</span>.<span class="ident">as_ref</span>()
}
<span class="doccomment">/// Returns the cell.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">cell</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="ident">Cell</span> {
<span class="self">self</span>.<span class="ident">cell</span>
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">V</span>, <span class="ident">F</span>: <span class="ident">Field</span><span class="op">&gt;</span> <span class="ident">AssignedCell</span><span class="op">&lt;</span><span class="ident">V</span>, <span class="ident">F</span><span class="op">&gt;</span>
<span class="kw">where</span>
<span class="kw">for</span><span class="op">&lt;</span><span class="lifetime">&#39;v</span><span class="op">&gt;</span> <span class="ident">Assigned</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>: <span class="ident">From</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;v</span> <span class="ident">V</span><span class="op">&gt;</span>,
{
<span class="doccomment">/// Returns the field element value of the [`AssignedCell`].</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">value_field</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Assigned</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span><span class="op">&gt;</span> {
<span class="self">self</span>.<span class="ident">value</span>().<span class="ident">map</span>(<span class="op">|</span><span class="ident">v</span><span class="op">|</span> <span class="ident">v</span>.<span class="ident">into</span>())
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">V</span>: <span class="ident">Clone</span>, <span class="ident">F</span>: <span class="ident">Field</span><span class="op">&gt;</span> <span class="ident">AssignedCell</span><span class="op">&lt;</span><span class="ident">V</span>, <span class="ident">F</span><span class="op">&gt;</span>
<span class="kw">where</span>
<span class="kw">for</span><span class="op">&lt;</span><span class="lifetime">&#39;v</span><span class="op">&gt;</span> <span class="ident">Assigned</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>: <span class="ident">From</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;v</span> <span class="ident">V</span><span class="op">&gt;</span>,
{
<span class="doccomment">/// Copies the value to a given advice cell and constrains them to be equal.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// Returns an error if either this cell or the given cell are in columns</span>
<span class="doccomment">/// where equality has not been enabled.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">copy_advice</span><span class="op">&lt;</span><span class="ident">A</span>, <span class="ident">AR</span><span class="op">&gt;</span>(
<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">annotation</span>: <span class="ident">A</span>,
<span class="ident">region</span>: <span class="kw-2">&amp;mut</span> <span class="ident">Region</span><span class="op">&lt;</span><span class="lifetime">&#39;_</span>, <span class="ident">F</span><span class="op">&gt;</span>,
<span class="ident">column</span>: <span class="ident">Column</span><span class="op">&lt;</span><span class="ident">Advice</span><span class="op">&gt;</span>,
<span class="ident">offset</span>: <span class="ident">usize</span>,
) -&gt; <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="self">Self</span>, <span class="ident">Error</span><span class="op">&gt;</span>
<span class="kw">where</span>
<span class="ident">A</span>: <span class="ident">Fn</span>() -&gt; <span class="ident">AR</span>,
<span class="ident">AR</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>,
{
<span class="kw">let</span> <span class="ident">assigned_cell</span> <span class="op">=</span> <span class="ident">region</span>.<span class="ident">assign_advice</span>(<span class="ident">annotation</span>, <span class="ident">column</span>, <span class="ident">offset</span>, <span class="op">|</span><span class="op">|</span> {
<span class="self">self</span>.<span class="ident">value</span>.<span class="ident">clone</span>().<span class="ident">ok_or</span>(<span class="ident">Error::Synthesis</span>)
})<span class="question-mark">?</span>;
<span class="ident">region</span>.<span class="ident">constrain_equal</span>(<span class="ident">assigned_cell</span>.<span class="ident">cell</span>(), <span class="self">self</span>.<span class="ident">cell</span>())<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(<span class="ident">assigned_cell</span>)
}
}
<span class="doccomment">/// A region of the circuit in which a [`Chip`] can assign cells.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// Inside a region, the chip may freely use relative offsets; the [`Layouter`] will</span>
@ -604,17 +754,28 @@
<span class="ident">column</span>: <span class="ident">Column</span><span class="op">&lt;</span><span class="ident">Advice</span><span class="op">&gt;</span>,
<span class="ident">offset</span>: <span class="ident">usize</span>,
<span class="kw-2">mut</span> <span class="ident">to</span>: <span class="ident">V</span>,
) -&gt; <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Cell</span>, <span class="ident">Error</span><span class="op">&gt;</span>
) -&gt; <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">AssignedCell</span><span class="op">&lt;</span><span class="ident">VR</span>, <span class="ident">F</span><span class="op">&gt;</span>, <span class="ident">Error</span><span class="op">&gt;</span>
<span class="kw">where</span>
<span class="ident">V</span>: <span class="ident">FnMut</span>() -&gt; <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">VR</span>, <span class="ident">Error</span><span class="op">&gt;</span> <span class="op">+</span> <span class="lifetime">&#39;v</span>,
<span class="ident">VR</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="ident">Assigned</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span><span class="op">&gt;</span>,
<span class="kw">for</span><span class="op">&lt;</span><span class="lifetime">&#39;vr</span><span class="op">&gt;</span> <span class="ident">Assigned</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>: <span class="ident">From</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;vr</span> <span class="ident">VR</span><span class="op">&gt;</span>,
<span class="ident">A</span>: <span class="ident">Fn</span>() -&gt; <span class="ident">AR</span>,
<span class="ident">AR</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>,
{
<span class="self">self</span>.<span class="ident">region</span>
.<span class="ident">assign_advice</span>(<span class="kw-2">&amp;</span><span class="op">|</span><span class="op">|</span> <span class="ident">annotation</span>().<span class="ident">into</span>(), <span class="ident">column</span>, <span class="ident">offset</span>, <span class="kw-2">&amp;mut</span> <span class="op">|</span><span class="op">|</span> {
<span class="ident">to</span>().<span class="ident">map</span>(<span class="op">|</span><span class="ident">v</span><span class="op">|</span> <span class="ident">v</span>.<span class="ident">into</span>())
})
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">value</span> <span class="op">=</span> <span class="prelude-val">None</span>;
<span class="kw">let</span> <span class="ident">cell</span> <span class="op">=</span>
<span class="self">self</span>.<span class="ident">region</span>
.<span class="ident">assign_advice</span>(<span class="kw-2">&amp;</span><span class="op">|</span><span class="op">|</span> <span class="ident">annotation</span>().<span class="ident">into</span>(), <span class="ident">column</span>, <span class="ident">offset</span>, <span class="kw-2">&amp;mut</span> <span class="op">|</span><span class="op">|</span> {
<span class="kw">let</span> <span class="ident">v</span> <span class="op">=</span> <span class="ident">to</span>()<span class="question-mark">?</span>;
<span class="kw">let</span> <span class="ident">value_f</span> <span class="op">=</span> (<span class="kw-2">&amp;</span><span class="ident">v</span>).<span class="ident">into</span>();
<span class="ident">value</span> <span class="op">=</span> <span class="prelude-val">Some</span>(<span class="ident">v</span>);
<span class="prelude-val">Ok</span>(<span class="ident">value_f</span>)
})<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(<span class="ident">AssignedCell</span> {
<span class="ident">value</span>,
<span class="ident">cell</span>,
<span class="ident">_marker</span>: <span class="ident">PhantomData</span>,
})
}
<span class="doccomment">/// Assigns a constant value to the column `advice` at `offset` within this region.</span>
@ -629,18 +790,24 @@
<span class="ident">column</span>: <span class="ident">Column</span><span class="op">&lt;</span><span class="ident">Advice</span><span class="op">&gt;</span>,
<span class="ident">offset</span>: <span class="ident">usize</span>,
<span class="ident">constant</span>: <span class="ident">VR</span>,
) -&gt; <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Cell</span>, <span class="ident">Error</span><span class="op">&gt;</span>
) -&gt; <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">AssignedCell</span><span class="op">&lt;</span><span class="ident">VR</span>, <span class="ident">F</span><span class="op">&gt;</span>, <span class="ident">Error</span><span class="op">&gt;</span>
<span class="kw">where</span>
<span class="ident">VR</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="ident">Assigned</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span><span class="op">&gt;</span>,
<span class="kw">for</span><span class="op">&lt;</span><span class="lifetime">&#39;vr</span><span class="op">&gt;</span> <span class="ident">Assigned</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>: <span class="ident">From</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;vr</span> <span class="ident">VR</span><span class="op">&gt;</span>,
<span class="ident">A</span>: <span class="ident">Fn</span>() -&gt; <span class="ident">AR</span>,
<span class="ident">AR</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>,
{
<span class="self">self</span>.<span class="ident">region</span>.<span class="ident">assign_advice_from_constant</span>(
<span class="kw">let</span> <span class="ident">cell</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">region</span>.<span class="ident">assign_advice_from_constant</span>(
<span class="kw-2">&amp;</span><span class="op">|</span><span class="op">|</span> <span class="ident">annotation</span>().<span class="ident">into</span>(),
<span class="ident">column</span>,
<span class="ident">offset</span>,
<span class="ident">constant</span>.<span class="ident">into</span>(),
)
(<span class="kw-2">&amp;</span><span class="ident">constant</span>).<span class="ident">into</span>(),
)<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(<span class="ident">AssignedCell</span> {
<span class="ident">value</span>: <span class="prelude-val">Some</span>(<span class="ident">constant</span>),
<span class="ident">cell</span>,
<span class="ident">_marker</span>: <span class="ident">PhantomData</span>,
})
}
<span class="doccomment">/// Assign the value of the instance column&#39;s cell at absolute location</span>
@ -654,18 +821,24 @@
<span class="ident">row</span>: <span class="ident">usize</span>,
<span class="ident">advice</span>: <span class="ident">Column</span><span class="op">&lt;</span><span class="ident">Advice</span><span class="op">&gt;</span>,
<span class="ident">offset</span>: <span class="ident">usize</span>,
) -&gt; <span class="prelude-ty">Result</span><span class="op">&lt;</span>(<span class="ident">Cell</span>, <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>), <span class="ident">Error</span><span class="op">&gt;</span>
) -&gt; <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">AssignedCell</span><span class="op">&lt;</span><span class="ident">F</span>, <span class="ident">F</span><span class="op">&gt;</span>, <span class="ident">Error</span><span class="op">&gt;</span>
<span class="kw">where</span>
<span class="ident">A</span>: <span class="ident">Fn</span>() -&gt; <span class="ident">AR</span>,
<span class="ident">AR</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>,
{
<span class="self">self</span>.<span class="ident">region</span>.<span class="ident">assign_advice_from_instance</span>(
<span class="kw">let</span> (<span class="ident">cell</span>, <span class="ident">value</span>) <span class="op">=</span> <span class="self">self</span>.<span class="ident">region</span>.<span class="ident">assign_advice_from_instance</span>(
<span class="kw-2">&amp;</span><span class="op">|</span><span class="op">|</span> <span class="ident">annotation</span>().<span class="ident">into</span>(),
<span class="ident">instance</span>,
<span class="ident">row</span>,
<span class="ident">advice</span>,
<span class="ident">offset</span>,
)
)<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(<span class="ident">AssignedCell</span> {
<span class="ident">value</span>,
<span class="ident">cell</span>,
<span class="ident">_marker</span>: <span class="ident">PhantomData</span>,
})
}
<span class="doccomment">/// Assign a fixed value.</span>
@ -677,17 +850,28 @@
<span class="ident">column</span>: <span class="ident">Column</span><span class="op">&lt;</span><span class="ident">Fixed</span><span class="op">&gt;</span>,
<span class="ident">offset</span>: <span class="ident">usize</span>,
<span class="kw-2">mut</span> <span class="ident">to</span>: <span class="ident">V</span>,
) -&gt; <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Cell</span>, <span class="ident">Error</span><span class="op">&gt;</span>
) -&gt; <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">AssignedCell</span><span class="op">&lt;</span><span class="ident">VR</span>, <span class="ident">F</span><span class="op">&gt;</span>, <span class="ident">Error</span><span class="op">&gt;</span>
<span class="kw">where</span>
<span class="ident">V</span>: <span class="ident">FnMut</span>() -&gt; <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">VR</span>, <span class="ident">Error</span><span class="op">&gt;</span> <span class="op">+</span> <span class="lifetime">&#39;v</span>,
<span class="ident">VR</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="ident">Assigned</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span><span class="op">&gt;</span>,
<span class="kw">for</span><span class="op">&lt;</span><span class="lifetime">&#39;vr</span><span class="op">&gt;</span> <span class="ident">Assigned</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>: <span class="ident">From</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;vr</span> <span class="ident">VR</span><span class="op">&gt;</span>,
<span class="ident">A</span>: <span class="ident">Fn</span>() -&gt; <span class="ident">AR</span>,
<span class="ident">AR</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>,
{
<span class="self">self</span>.<span class="ident">region</span>
.<span class="ident">assign_fixed</span>(<span class="kw-2">&amp;</span><span class="op">|</span><span class="op">|</span> <span class="ident">annotation</span>().<span class="ident">into</span>(), <span class="ident">column</span>, <span class="ident">offset</span>, <span class="kw-2">&amp;mut</span> <span class="op">|</span><span class="op">|</span> {
<span class="ident">to</span>().<span class="ident">map</span>(<span class="op">|</span><span class="ident">v</span><span class="op">|</span> <span class="ident">v</span>.<span class="ident">into</span>())
})
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">value</span> <span class="op">=</span> <span class="prelude-val">None</span>;
<span class="kw">let</span> <span class="ident">cell</span> <span class="op">=</span>
<span class="self">self</span>.<span class="ident">region</span>
.<span class="ident">assign_fixed</span>(<span class="kw-2">&amp;</span><span class="op">|</span><span class="op">|</span> <span class="ident">annotation</span>().<span class="ident">into</span>(), <span class="ident">column</span>, <span class="ident">offset</span>, <span class="kw-2">&amp;mut</span> <span class="op">|</span><span class="op">|</span> {
<span class="kw">let</span> <span class="ident">v</span> <span class="op">=</span> <span class="ident">to</span>()<span class="question-mark">?</span>;
<span class="kw">let</span> <span class="ident">value_f</span> <span class="op">=</span> (<span class="kw-2">&amp;</span><span class="ident">v</span>).<span class="ident">into</span>();
<span class="ident">value</span> <span class="op">=</span> <span class="prelude-val">Some</span>(<span class="ident">v</span>);
<span class="prelude-val">Ok</span>(<span class="ident">value_f</span>)
})<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(<span class="ident">AssignedCell</span> {
<span class="ident">value</span>,
<span class="ident">cell</span>,
<span class="ident">_marker</span>: <span class="ident">PhantomData</span>,
})
}
<span class="doccomment">/// Constrains a cell to have a constant value.</span>

View File

@ -1572,6 +1572,12 @@
<span id="1556">1556</span>
<span id="1557">1557</span>
<span id="1558">1558</span>
<span id="1559">1559</span>
<span id="1560">1560</span>
<span id="1561">1561</span>
<span id="1562">1562</span>
<span id="1563">1563</span>
<span id="1564">1564</span>
</pre><pre class="rust"><code><span class="kw">use</span> <span class="ident">core::cmp::max</span>;
<span class="kw">use</span> <span class="ident">core::ops</span>::{<span class="ident">Add</span>, <span class="ident">Mul</span>};
<span class="kw">use</span> <span class="ident">ff::Field</span>;
@ -1879,6 +1885,12 @@
<span class="ident">Rational</span>(<span class="ident">F</span>, <span class="ident">F</span>),
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">F</span>: <span class="ident">Field</span><span class="op">&gt;</span> <span class="ident">From</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="ident">F</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Assigned</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">numerator</span>: <span class="kw-2">&amp;</span><span class="ident">F</span>) -&gt; <span class="self">Self</span> {
<span class="ident">Assigned::Trivial</span>(<span class="kw-2">*</span><span class="ident">numerator</span>)
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">F</span>: <span class="ident">Field</span><span class="op">&gt;</span> <span class="ident">From</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Assigned</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">numerator</span>: <span class="ident">F</span>) -&gt; <span class="self">Self</span> {
<span class="ident">Assigned::Trivial</span>(<span class="ident">numerator</span>)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -297,10 +297,7 @@ impl&lt;F: FieldExt&gt; FieldChip&lt;F&gt; {
<h2 id="implement-chip-traits"><a class="header" href="#implement-chip-traits">Implement chip traits</a></h2>
<pre><code class="language-rust ignore no_run">/// A variable representing a number.
#[derive(Clone)]
struct Number&lt;F: FieldExt&gt; {
cell: Cell,
value: Option&lt;F&gt;,
}
struct Number&lt;F: FieldExt&gt;(AssignedCell&lt;F, F&gt;);
impl&lt;F: FieldExt&gt; NumericInstructions&lt;F&gt; for FieldChip&lt;F&gt; {
type Num = Number&lt;F&gt;;
@ -312,21 +309,19 @@ impl&lt;F: FieldExt&gt; NumericInstructions&lt;F&gt; for FieldChip&lt;F&gt; {
) -&gt; Result&lt;Self::Num, Error&gt; {
let config = self.config();
let mut num = None;
layouter.assign_region(
|| &quot;load private&quot;,
|mut region| {
let cell = region.assign_advice(
|| &quot;private input&quot;,
config.advice[0],
0,
|| value.ok_or(Error::Synthesis),
)?;
num = Some(Number { cell, value });
Ok(())
region
.assign_advice(
|| &quot;private input&quot;,
config.advice[0],
0,
|| value.ok_or(Error::Synthesis),
)
.map(Number)
},
)?;
Ok(num.unwrap())
)
}
fn load_constant(
@ -336,24 +331,14 @@ impl&lt;F: FieldExt&gt; NumericInstructions&lt;F&gt; for FieldChip&lt;F&gt; {
) -&gt; Result&lt;Self::Num, Error&gt; {
let config = self.config();
let mut num = None;
layouter.assign_region(
|| &quot;load constant&quot;,
|mut region| {
let cell = region.assign_advice_from_constant(
|| &quot;constant value&quot;,
config.advice[0],
0,
constant,
)?;
num = Some(Number {
cell,
value: Some(constant),
});
Ok(())
region
.assign_advice_from_constant(|| &quot;constant value&quot;, config.advice[0], 0, constant)
.map(Number)
},
)?;
Ok(num.unwrap())
)
}
fn mul(
@ -364,7 +349,6 @@ impl&lt;F: FieldExt&gt; NumericInstructions&lt;F&gt; for FieldChip&lt;F&gt; {
) -&gt; Result&lt;Self::Num, Error&gt; {
let config = self.config();
let mut out = None;
layouter.assign_region(
|| &quot;mul&quot;,
|mut region: Region&lt;'_, F&gt;| {
@ -377,38 +361,25 @@ impl&lt;F: FieldExt&gt; NumericInstructions&lt;F&gt; for FieldChip&lt;F&gt; {
// but we can only rely on relative offsets inside this region. So we
// assign new cells inside the region and constrain them to have the
// same values as the inputs.
let lhs = region.assign_advice(
|| &quot;lhs&quot;,
config.advice[0],
0,
|| a.value.ok_or(Error::Synthesis),
)?;
let rhs = region.assign_advice(
|| &quot;rhs&quot;,
config.advice[1],
0,
|| b.value.ok_or(Error::Synthesis),
)?;
region.constrain_equal(a.cell, lhs)?;
region.constrain_equal(b.cell, rhs)?;
a.0.copy_advice(|| &quot;lhs&quot;, &amp;mut region, config.advice[0], 0)?;
b.0.copy_advice(|| &quot;rhs&quot;, &amp;mut region, config.advice[1], 0)?;
// Now we can assign the multiplication result into the output position.
let value = a.value.and_then(|a| b.value.map(|b| a * b));
let cell = region.assign_advice(
|| &quot;lhs * rhs&quot;,
config.advice[0],
1,
|| value.ok_or(Error::Synthesis),
)?;
// Now we can assign the multiplication result, which is to be assigned
// into the output position.
let value = a.0.value().and_then(|a| b.0.value().map(|b| *a * *b));
// Finally, we return a variable representing the output,
// to be used in another part of the circuit.
out = Some(Number { cell, value });
Ok(())
// Finally, we do the assignment to the output, returning a
// variable to be used in another part of the circuit.
region
.assign_advice(
|| &quot;lhs * rhs&quot;,
config.advice[0],
1,
|| value.ok_or(Error::Synthesis),
)
.map(Number)
},
)?;
Ok(out.unwrap())
)
}
fn expose_public(
@ -419,7 +390,7 @@ impl&lt;F: FieldExt&gt; NumericInstructions&lt;F&gt; for FieldChip&lt;F&gt; {
) -&gt; Result&lt;(), Error&gt; {
let config = self.config();
layouter.constrain_instance(num.cell, config.instance, row)
layouter.constrain_instance(num.0.cell(), config.instance, row)
}
}
</code></pre>