This commit is contained in:
ebfull 2022-09-13 14:08:14 +00:00
parent f063437a0b
commit 36ed11d3ad
14 changed files with 219 additions and 78 deletions

File diff suppressed because one or more lines are too long

View File

@ -13,7 +13,7 @@
});
});
</script>
</head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><div class="sidebar-elems"><h2 class="location"><a href="index.html">In halo2_proofs::plonk</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../halo2_proofs/index.html"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Function <a href="../index.html">halo2_proofs</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="fn" href="#">create_proof</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></h1><span class="out-of-band"><a class="srclink" href="../../src/halo2_proofs/plonk/prover.rs.html#35-722">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="docblock item-decl"><pre class="rust fn"><code>pub fn create_proof&lt;C:&nbsp;<a class="trait" href="../arithmetic/trait.CurveAffine.html" title="trait halo2_proofs::arithmetic::CurveAffine">CurveAffine</a>, E:&nbsp;<a class="trait" href="../transcript/trait.EncodedChallenge.html" title="trait halo2_proofs::transcript::EncodedChallenge">EncodedChallenge</a>&lt;C&gt;, R:&nbsp;<a class="trait" href="https://rust-random.github.io/rand/rand_core/trait.RngCore.html" title="trait rand_core::RngCore">RngCore</a>, T:&nbsp;<a class="trait" href="../transcript/trait.TranscriptWrite.html" title="trait halo2_proofs::transcript::TranscriptWrite">TranscriptWrite</a>&lt;C, E&gt;, ConcreteCircuit:&nbsp;<a class="trait" href="trait.Circuit.html" title="trait halo2_proofs::plonk::Circuit">Circuit</a>&lt;C::Scalar&gt;&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;params: &amp;<a class="struct" href="../poly/commitment/struct.Params.html" title="struct halo2_proofs::poly::commitment::Params">Params</a>&lt;C&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;pk: &amp;<a class="struct" href="struct.ProvingKey.html" title="struct halo2_proofs::plonk::ProvingKey">ProvingKey</a>&lt;C&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;circuits: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[ConcreteCircuit]</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;instances: &amp;[&amp;[&amp;[C::Scalar]]],<br>&nbsp;&nbsp;&nbsp;&nbsp;rng: R,<br>&nbsp;&nbsp;&nbsp;&nbsp;transcript: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T<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_proofs::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>This creates a proof for the provided <code>circuit</code> when given the public
</head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><div class="sidebar-elems"><h2 class="location"><a href="index.html">In halo2_proofs::plonk</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../halo2_proofs/index.html"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Function <a href="../index.html">halo2_proofs</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="fn" href="#">create_proof</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></h1><span class="out-of-band"><a class="srclink" href="../../src/halo2_proofs/plonk/prover.rs.html#35-726">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="docblock item-decl"><pre class="rust fn"><code>pub fn create_proof&lt;C:&nbsp;<a class="trait" href="../arithmetic/trait.CurveAffine.html" title="trait halo2_proofs::arithmetic::CurveAffine">CurveAffine</a>, E:&nbsp;<a class="trait" href="../transcript/trait.EncodedChallenge.html" title="trait halo2_proofs::transcript::EncodedChallenge">EncodedChallenge</a>&lt;C&gt;, R:&nbsp;<a class="trait" href="https://rust-random.github.io/rand/rand_core/trait.RngCore.html" title="trait rand_core::RngCore">RngCore</a>, T:&nbsp;<a class="trait" href="../transcript/trait.TranscriptWrite.html" title="trait halo2_proofs::transcript::TranscriptWrite">TranscriptWrite</a>&lt;C, E&gt;, ConcreteCircuit:&nbsp;<a class="trait" href="trait.Circuit.html" title="trait halo2_proofs::plonk::Circuit">Circuit</a>&lt;C::Scalar&gt;&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;params: &amp;<a class="struct" href="../poly/commitment/struct.Params.html" title="struct halo2_proofs::poly::commitment::Params">Params</a>&lt;C&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;pk: &amp;<a class="struct" href="struct.ProvingKey.html" title="struct halo2_proofs::plonk::ProvingKey">ProvingKey</a>&lt;C&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;circuits: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[ConcreteCircuit]</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;instances: &amp;[&amp;[&amp;[C::Scalar]]],<br>&nbsp;&nbsp;&nbsp;&nbsp;rng: R,<br>&nbsp;&nbsp;&nbsp;&nbsp;transcript: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T<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_proofs::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>This creates a proof for the provided <code>circuit</code> when given the public
parameters <code>params</code> and the proving key <a href="struct.ProvingKey.html" title="ProvingKey"><code>ProvingKey</code></a> that was
generated previously for the same circuit. The provided <code>instances</code>
are zero-padded internally.</p>

View File

@ -13,11 +13,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="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">Constraint</a></h2><div class="sidebar-elems"><section><div class="block"><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><ul><li><a href="#impl-Debug-for-Constraint%3CF%3E">Debug</a></li><li><a href="#impl-From%3C(%26%27static%20str%2C%20Expression%3CF%3E)%3E-for-Constraint%3CF%3E">From&lt;(&amp;&#39;static str, Expression&lt;F&gt;)&gt;</a></li><li><a href="#impl-From%3CExpression%3CF%3E%3E-for-Constraint%3CF%3E">From&lt;Expression&lt;F&gt;&gt;</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul><li><a href="#impl-RefUnwindSafe-for-Constraint%3CF%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Constraint%3CF%3E">Send</a></li><li><a href="#impl-Sync-for-Constraint%3CF%3E">Sync</a></li><li><a href="#impl-Unpin-for-Constraint%3CF%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Constraint%3CF%3E">UnwindSafe</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><ul><li><a href="#impl-Any-for-Constraint%3CF%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Constraint%3CF%3E">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Constraint%3CF%3E">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-Conv-for-Constraint%3CF%3E">Conv</a></li><li><a href="#impl-FmtForward-for-Constraint%3CF%3E">FmtForward</a></li><li><a href="#impl-From%3CT%3E-for-Constraint%3CF%3E">From&lt;T&gt;</a></li><li><a href="#impl-Instrument-for-Constraint%3CF%3E">Instrument</a></li><li><a href="#impl-Into%3CU%3E-for-Constraint%3CF%3E">Into&lt;U&gt;</a></li><li><a href="#impl-Pipe-for-Constraint%3CF%3E">Pipe</a></li><li><a href="#impl-Pointable-for-Constraint%3CF%3E">Pointable</a></li><li><a href="#impl-Tap-for-Constraint%3CF%3E">Tap</a></li><li><a href="#impl-TryConv-for-Constraint%3CF%3E">TryConv</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Constraint%3CF%3E">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-Constraint%3CF%3E">TryInto&lt;U&gt;</a></li><li><a href="#impl-VZip%3CV%3E-for-Constraint%3CF%3E">VZip&lt;V&gt;</a></li><li><a href="#impl-WithSubscriber-for-Constraint%3CF%3E">WithSubscriber</a></li></ul></div></section><h2 class="location"><a href="index.html">In halo2_proofs::plonk</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../halo2_proofs/index.html"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2_proofs</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></h1><span class="out-of-band"><a class="srclink" href="../../src/halo2_proofs/plonk/circuit.rs.html#788-791">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><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_proofs::arithmetic::Field">Field</a>&gt; { /* private fields */ }</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="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">Constraint</a></h2><div class="sidebar-elems"><section><div class="block"><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><ul><li><a href="#impl-Debug-for-Constraint%3CF%3E">Debug</a></li><li><a href="#impl-From%3C(%26%27static%20str%2C%20Expression%3CF%3E)%3E-for-Constraint%3CF%3E">From&lt;(&amp;&#39;static str, Expression&lt;F&gt;)&gt;</a></li><li><a href="#impl-From%3CExpression%3CF%3E%3E-for-Constraint%3CF%3E">From&lt;Expression&lt;F&gt;&gt;</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul><li><a href="#impl-RefUnwindSafe-for-Constraint%3CF%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Constraint%3CF%3E">Send</a></li><li><a href="#impl-Sync-for-Constraint%3CF%3E">Sync</a></li><li><a href="#impl-Unpin-for-Constraint%3CF%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Constraint%3CF%3E">UnwindSafe</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><ul><li><a href="#impl-Any-for-Constraint%3CF%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Constraint%3CF%3E">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Constraint%3CF%3E">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-Conv-for-Constraint%3CF%3E">Conv</a></li><li><a href="#impl-FmtForward-for-Constraint%3CF%3E">FmtForward</a></li><li><a href="#impl-From%3CT%3E-for-Constraint%3CF%3E">From&lt;T&gt;</a></li><li><a href="#impl-Instrument-for-Constraint%3CF%3E">Instrument</a></li><li><a href="#impl-Into%3CU%3E-for-Constraint%3CF%3E">Into&lt;U&gt;</a></li><li><a href="#impl-Pipe-for-Constraint%3CF%3E">Pipe</a></li><li><a href="#impl-Pointable-for-Constraint%3CF%3E">Pointable</a></li><li><a href="#impl-Tap-for-Constraint%3CF%3E">Tap</a></li><li><a href="#impl-TryConv-for-Constraint%3CF%3E">TryConv</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Constraint%3CF%3E">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-Constraint%3CF%3E">TryInto&lt;U&gt;</a></li><li><a href="#impl-VZip%3CV%3E-for-Constraint%3CF%3E">VZip&lt;V&gt;</a></li><li><a href="#impl-WithSubscriber-for-Constraint%3CF%3E">WithSubscriber</a></li></ul></div></section><h2 class="location"><a href="index.html">In halo2_proofs::plonk</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../halo2_proofs/index.html"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2_proofs</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></h1><span class="out-of-band"><a class="srclink" href="../../src/halo2_proofs/plonk/circuit.rs.html#793-796">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><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_proofs::arithmetic::Field">Field</a>&gt; { /* private fields */ }</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><section id="impl-Debug-for-Constraint%3CF%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#787">source</a><a href="#impl-Debug-for-Constraint%3CF%3E" 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_proofs::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_proofs::plonk::Constraint">Constraint</a>&lt;F&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#787">source</a><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></section></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><section id="impl-From%3C(%26%27static%20str%2C%20Expression%3CF%3E)%3E-for-Constraint%3CF%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#799-803">source</a><a href="#impl-From%3C(%26%27static%20str%2C%20Expression%3CF%3E)%3E-for-Constraint%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_proofs::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;'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_proofs::plonk::Expression">Expression</a>&lt;F&gt;)&gt; for <a class="struct" href="struct.Constraint.html" title="struct halo2_proofs::plonk::Constraint">Constraint</a>&lt;F&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#800-802">source</a><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): (&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_proofs::plonk::Expression">Expression</a>&lt;F&gt;)) -&gt; Self</h4></section></summary><div class='docblock'><p>Converts to this type from the input type.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExpression%3CF%3E%3E-for-Constraint%3CF%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#793-797">source</a><a href="#impl-From%3CExpression%3CF%3E%3E-for-Constraint%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_proofs::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_proofs::plonk::Expression">Expression</a>&lt;F&gt;&gt; for <a class="struct" href="struct.Constraint.html" title="struct halo2_proofs::plonk::Constraint">Constraint</a>&lt;F&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#794-796">source</a><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_proofs::plonk::Expression">Expression</a>&lt;F&gt;) -&gt; Self</h4></section></summary><div class='docblock'><p>Converts to this type from the input type.</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><section id="impl-Debug-for-Constraint%3CF%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#792">source</a><a href="#impl-Debug-for-Constraint%3CF%3E" 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_proofs::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_proofs::plonk::Constraint">Constraint</a>&lt;F&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#792">source</a><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></section></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><section id="impl-From%3C(%26%27static%20str%2C%20Expression%3CF%3E)%3E-for-Constraint%3CF%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#804-808">source</a><a href="#impl-From%3C(%26%27static%20str%2C%20Expression%3CF%3E)%3E-for-Constraint%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_proofs::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;'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_proofs::plonk::Expression">Expression</a>&lt;F&gt;)&gt; for <a class="struct" href="struct.Constraint.html" title="struct halo2_proofs::plonk::Constraint">Constraint</a>&lt;F&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#805-807">source</a><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): (&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_proofs::plonk::Expression">Expression</a>&lt;F&gt;)) -&gt; Self</h4></section></summary><div class='docblock'><p>Converts to this type from the input type.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExpression%3CF%3E%3E-for-Constraint%3CF%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#798-802">source</a><a href="#impl-From%3CExpression%3CF%3E%3E-for-Constraint%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_proofs::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_proofs::plonk::Expression">Expression</a>&lt;F&gt;&gt; for <a class="struct" href="struct.Constraint.html" title="struct halo2_proofs::plonk::Constraint">Constraint</a>&lt;F&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#799-801">source</a><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_proofs::plonk::Expression">Expression</a>&lt;F&gt;) -&gt; Self</h4></section></summary><div class='docblock'><p>Converts to this type from the input type.</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"><section id="impl-RefUnwindSafe-for-Constraint%3CF%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Constraint%3CF%3E" 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_proofs::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>,</span></h3></section><section id="impl-Send-for-Constraint%3CF%3E" class="impl has-srclink"><a href="#impl-Send-for-Constraint%3CF%3E" 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_proofs::plonk::Constraint">Constraint</a>&lt;F&gt;</h3></section><section id="impl-Sync-for-Constraint%3CF%3E" class="impl has-srclink"><a href="#impl-Sync-for-Constraint%3CF%3E" 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_proofs::plonk::Constraint">Constraint</a>&lt;F&gt;</h3></section><section id="impl-Unpin-for-Constraint%3CF%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Constraint%3CF%3E" 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_proofs::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>,</span></h3></section><section id="impl-UnwindSafe-for-Constraint%3CF%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Constraint%3CF%3E" 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_proofs::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>,</span></h3></section></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"><summary><section id="impl-Any-for-Constraint%3CF%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Constraint%3CF%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/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>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor"></a><h4 class="code-header">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></section></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"><summary><section id="impl-Borrow%3CT%3E-for-Constraint%3CF%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#209">source</a><a href="#impl-Borrow%3CT%3E-for-Constraint%3CF%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>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a></span><a href="#method.borrow" class="anchor"></a><h4 class="code-header">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></section></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"><summary><section id="impl-BorrowMut%3CT%3E-for-Constraint%3CF%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#218">source</a><a href="#impl-BorrowMut%3CT%3E-for-Constraint%3CF%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>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#219">source</a></span><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">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></section></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>

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

@ -13,13 +13,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="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">TableColumn</a></h2><div class="sidebar-elems"><section><div class="block"><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><ul><li><a href="#impl-Clone-for-TableColumn">Clone</a></li><li><a href="#impl-Copy-for-TableColumn">Copy</a></li><li><a href="#impl-Debug-for-TableColumn">Debug</a></li><li><a href="#impl-Eq-for-TableColumn">Eq</a></li><li><a href="#impl-Hash-for-TableColumn">Hash</a></li><li><a href="#impl-PartialEq%3CTableColumn%3E-for-TableColumn">PartialEq&lt;TableColumn&gt;</a></li><li><a href="#impl-StructuralEq-for-TableColumn">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-TableColumn">StructuralPartialEq</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul><li><a href="#impl-RefUnwindSafe-for-TableColumn">RefUnwindSafe</a></li><li><a href="#impl-Send-for-TableColumn">Send</a></li><li><a href="#impl-Sync-for-TableColumn">Sync</a></li><li><a href="#impl-Unpin-for-TableColumn">Unpin</a></li><li><a href="#impl-UnwindSafe-for-TableColumn">UnwindSafe</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><ul><li><a href="#impl-Any-for-TableColumn">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-TableColumn">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-TableColumn">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-Conv-for-TableColumn">Conv</a></li><li><a href="#impl-FmtForward-for-TableColumn">FmtForward</a></li><li><a href="#impl-From%3CT%3E-for-TableColumn">From&lt;T&gt;</a></li><li><a href="#impl-Instrument-for-TableColumn">Instrument</a></li><li><a href="#impl-Into%3CU%3E-for-TableColumn">Into&lt;U&gt;</a></li><li><a href="#impl-Pipe-for-TableColumn">Pipe</a></li><li><a href="#impl-Pointable-for-TableColumn">Pointable</a></li><li><a href="#impl-Tap-for-TableColumn">Tap</a></li><li><a href="#impl-ToOwned-for-TableColumn">ToOwned</a></li><li><a href="#impl-TryConv-for-TableColumn">TryConv</a></li><li><a href="#impl-TryFrom%3CU%3E-for-TableColumn">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-TableColumn">TryInto&lt;U&gt;</a></li><li><a href="#impl-VZip%3CV%3E-for-TableColumn">VZip&lt;V&gt;</a></li><li><a href="#impl-WithSubscriber-for-TableColumn">WithSubscriber</a></li></ul></div></section><h2 class="location"><a href="index.html">In halo2_proofs::plonk</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../halo2_proofs/index.html"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2_proofs</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="struct" href="#">TableColumn</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></h1><span class="out-of-band"><a class="srclink" href="../../src/halo2_proofs/plonk/circuit.rs.html#316-325">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="docblock item-decl"><pre class="rust struct"><code>pub struct TableColumn { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A fixed column of a lookup table.</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="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">TableColumn</a></h2><div class="sidebar-elems"><section><div class="block"><h3 class="sidebar-title"><a href="#implementations">Methods</a></h3><ul><li><a href="#method.enable_equality">enable_equality</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><ul><li><a href="#impl-Clone-for-TableColumn">Clone</a></li><li><a href="#impl-Copy-for-TableColumn">Copy</a></li><li><a href="#impl-Debug-for-TableColumn">Debug</a></li><li><a href="#impl-Eq-for-TableColumn">Eq</a></li><li><a href="#impl-Hash-for-TableColumn">Hash</a></li><li><a href="#impl-PartialEq%3CTableColumn%3E-for-TableColumn">PartialEq&lt;TableColumn&gt;</a></li><li><a href="#impl-StructuralEq-for-TableColumn">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-TableColumn">StructuralPartialEq</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul><li><a href="#impl-RefUnwindSafe-for-TableColumn">RefUnwindSafe</a></li><li><a href="#impl-Send-for-TableColumn">Send</a></li><li><a href="#impl-Sync-for-TableColumn">Sync</a></li><li><a href="#impl-Unpin-for-TableColumn">Unpin</a></li><li><a href="#impl-UnwindSafe-for-TableColumn">UnwindSafe</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><ul><li><a href="#impl-Any-for-TableColumn">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-TableColumn">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-TableColumn">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-Conv-for-TableColumn">Conv</a></li><li><a href="#impl-FmtForward-for-TableColumn">FmtForward</a></li><li><a href="#impl-From%3CT%3E-for-TableColumn">From&lt;T&gt;</a></li><li><a href="#impl-Instrument-for-TableColumn">Instrument</a></li><li><a href="#impl-Into%3CU%3E-for-TableColumn">Into&lt;U&gt;</a></li><li><a href="#impl-Pipe-for-TableColumn">Pipe</a></li><li><a href="#impl-Pointable-for-TableColumn">Pointable</a></li><li><a href="#impl-Tap-for-TableColumn">Tap</a></li><li><a href="#impl-ToOwned-for-TableColumn">ToOwned</a></li><li><a href="#impl-TryConv-for-TableColumn">TryConv</a></li><li><a href="#impl-TryFrom%3CU%3E-for-TableColumn">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-TableColumn">TryInto&lt;U&gt;</a></li><li><a href="#impl-VZip%3CV%3E-for-TableColumn">VZip&lt;V&gt;</a></li><li><a href="#impl-WithSubscriber-for-TableColumn">WithSubscriber</a></li></ul></div></section><h2 class="location"><a href="index.html">In halo2_proofs::plonk</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../halo2_proofs/index.html"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2_proofs</a>::<wbr><a href="index.html">plonk</a>::<wbr><a class="struct" href="#">TableColumn</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></h1><span class="out-of-band"><a class="srclink" href="../../src/halo2_proofs/plonk/circuit.rs.html#316-325">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="docblock item-decl"><pre class="rust struct"><code>pub struct TableColumn { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A fixed column of a lookup table.</p>
<p>A lookup table can be loaded into this column via <a href="../circuit/trait.Layouter.html#tymethod.assign_table"><code>Layouter::assign_table</code></a>. Columns
can currently only contain a single table, but they may be used in multiple lookup
arguments via <a href="struct.ConstraintSystem.html#method.lookup" title="ConstraintSystem::lookup"><code>ConstraintSystem::lookup</code></a>.</p>
<p>Lookup table columns are always “encumbered” by the lookup arguments they are used in;
they cannot simultaneously be used as general fixed columns.</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><section id="impl-Clone-for-TableColumn" class="impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#315">source</a><a href="#impl-Clone-for-TableColumn" class="anchor"></a><h3 class="code-header in-band">impl <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.TableColumn.html" title="struct halo2_proofs::plonk::TableColumn">TableColumn</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#315">source</a><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.TableColumn.html" title="struct halo2_proofs::plonk::TableColumn">TableColumn</a></h4></section></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><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TableColumn" class="impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#327-336">source</a><a href="#impl-TableColumn" class="anchor"></a><h3 class="code-header in-band">impl <a class="struct" href="struct.TableColumn.html" title="struct halo2_proofs::plonk::TableColumn">TableColumn</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.enable_equality" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#333-335">source</a><h4 class="code-header">pub fn <a href="#method.enable_equality" class="fnname">enable_equality</a>&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2_proofs::arithmetic::Field">Field</a>&gt;(&amp;self, meta: &amp;mut <a class="struct" href="struct.ConstraintSystem.html" title="struct halo2_proofs::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;)</h4></section></summary><div class="docblock"><p>Enable equality on this TableColumn.</p>
</div></details></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><section id="impl-Clone-for-TableColumn" class="impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#315">source</a><a href="#impl-Clone-for-TableColumn" class="anchor"></a><h3 class="code-header in-band">impl <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.TableColumn.html" title="struct halo2_proofs::plonk::TableColumn">TableColumn</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#315">source</a><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.TableColumn.html" title="struct halo2_proofs::plonk::TableColumn">TableColumn</a></h4></section></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><section id="method.clone_from" class="method trait-impl has-srclink"><span 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#132-134">source</a></span><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></section></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><section id="impl-Debug-for-TableColumn" class="impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#315">source</a><a href="#impl-Debug-for-TableColumn" class="anchor"></a><h3 class="code-header in-band">impl <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.TableColumn.html" title="struct halo2_proofs::plonk::TableColumn">TableColumn</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#315">source</a><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></section></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><section id="impl-Hash-for-TableColumn" class="impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#315">source</a><a href="#impl-Hash-for-TableColumn" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="struct" href="struct.TableColumn.html" title="struct halo2_proofs::plonk::TableColumn">TableColumn</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#315">source</a><a href="#method.hash" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fnname">hash</a>&lt;__H:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>&gt;(&amp;self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>__H)</h4></section></summary><div class='docblock'><p>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></p>

File diff suppressed because one or more lines are too long

View File

@ -13,7 +13,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="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">Assignment</a></h2><div class="sidebar-elems"><section><div class="block"><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><ul><li><a href="#tymethod.assign_advice">assign_advice</a></li><li><a href="#tymethod.assign_fixed">assign_fixed</a></li><li><a href="#tymethod.copy">copy</a></li><li><a href="#tymethod.enable_selector">enable_selector</a></li><li><a href="#tymethod.enter_region">enter_region</a></li><li><a href="#tymethod.exit_region">exit_region</a></li><li><a href="#tymethod.fill_from_row">fill_from_row</a></li><li><a href="#tymethod.pop_namespace">pop_namespace</a></li><li><a href="#tymethod.push_namespace">push_namespace</a></li><li><a href="#tymethod.query_instance">query_instance</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div></section><h2 class="location"><a href="index.html">In halo2_proofs::plonk</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../halo2_proofs/index.html"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Trait <a href="../index.html">halo2_proofs</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></h1><span class="out-of-band"><a class="srclink" href="../../src/halo2_proofs/plonk/circuit.rs.html#335-434">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><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_proofs::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="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">Assignment</a></h2><div class="sidebar-elems"><section><div class="block"><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><ul><li><a href="#tymethod.assign_advice">assign_advice</a></li><li><a href="#tymethod.assign_fixed">assign_fixed</a></li><li><a href="#tymethod.copy">copy</a></li><li><a href="#tymethod.enable_selector">enable_selector</a></li><li><a href="#tymethod.enter_region">enter_region</a></li><li><a href="#tymethod.exit_region">exit_region</a></li><li><a href="#tymethod.fill_from_row">fill_from_row</a></li><li><a href="#tymethod.pop_namespace">pop_namespace</a></li><li><a href="#tymethod.push_namespace">push_namespace</a></li><li><a href="#tymethod.query_instance">query_instance</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div></section><h2 class="location"><a href="index.html">In halo2_proofs::plonk</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../halo2_proofs/index.html"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Trait <a href="../index.html">halo2_proofs</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></h1><span class="out-of-band"><a class="srclink" href="../../src/halo2_proofs/plonk/circuit.rs.html#340-439">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><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_proofs::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>;
<span class="item-spacer"></span> fn <a href="#tymethod.exit_region" class="fnname">exit_region</a>(&amp;mut self);
<span class="item-spacer"></span> 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_proofs::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_proofs::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>;
@ -26,21 +26,21 @@
<span class="item-spacer"></span> 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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#343-346">source</a><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,</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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#348-351">source</a><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,</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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#355">source</a><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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#360">source</a><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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#358-366">source</a><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_proofs::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_proofs::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;,</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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#371">source</a><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_proofs::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Instance.html" title="struct halo2_proofs::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="struct" href="../circuit/struct.Value.html" title="struct halo2_proofs::circuit::Value">Value</a>&lt;F&gt;, <a class="enum" href="enum.Error.html" title="enum halo2_proofs::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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#363-371">source</a><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_proofs::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_proofs::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;,</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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#376">source</a><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_proofs::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Instance.html" title="struct halo2_proofs::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="struct" href="../circuit/struct.Value.html" title="struct halo2_proofs::circuit::Value">Value</a>&lt;F&gt;, <a class="enum" href="enum.Error.html" title="enum halo2_proofs::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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#374-385">source</a><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_proofs::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Advice.html" title="struct halo2_proofs::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_proofs::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="struct" href="../circuit/struct.Value.html" title="struct halo2_proofs::circuit::Value">Value</a>&lt;VR&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_proofs::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;,</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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#388-399">source</a><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_proofs::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2_proofs::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_proofs::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="struct" href="../circuit/struct.Value.html" title="struct halo2_proofs::circuit::Value">Value</a>&lt;VR&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_proofs::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;,</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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#402-408">source</a><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_proofs::plonk::Column">Column</a>&lt;<a class="enum" href="enum.Any.html" title="enum halo2_proofs::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_proofs::plonk::Column">Column</a>&lt;<a class="enum" href="enum.Any.html" title="enum halo2_proofs::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_proofs::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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#411-416">source</a><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_proofs::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2_proofs::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="struct" href="../circuit/struct.Value.html" title="struct halo2_proofs::circuit::Value">Value</a>&lt;<a class="enum" href="enum.Assigned.html" title="enum halo2_proofs::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_proofs::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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#423-426">source</a><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,</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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#379-390">source</a><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_proofs::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Advice.html" title="struct halo2_proofs::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_proofs::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="struct" href="../circuit/struct.Value.html" title="struct halo2_proofs::circuit::Value">Value</a>&lt;VR&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_proofs::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;,</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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#393-404">source</a><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_proofs::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2_proofs::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_proofs::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="struct" href="../circuit/struct.Value.html" title="struct halo2_proofs::circuit::Value">Value</a>&lt;VR&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_proofs::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;,</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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#407-413">source</a><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_proofs::plonk::Column">Column</a>&lt;<a class="enum" href="enum.Any.html" title="enum halo2_proofs::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_proofs::plonk::Column">Column</a>&lt;<a class="enum" href="enum.Any.html" title="enum halo2_proofs::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_proofs::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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#416-421">source</a><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_proofs::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2_proofs::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="struct" href="../circuit/struct.Value.html" title="struct halo2_proofs::circuit::Value">Value</a>&lt;<a class="enum" href="enum.Assigned.html" title="enum halo2_proofs::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_proofs::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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#428-431">source</a><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,</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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#433">source</a><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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#438">source</a><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"><section id="impl-Assignment%3CF%3E-for-MockProver%3CF%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/dev.rs.html#296-463">source</a><a href="#impl-Assignment%3CF%3E-for-MockProver%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_proofs::arithmetic::Field">Field</a> + <a class="trait" href="../arithmetic/trait.Group.html" title="trait halo2_proofs::arithmetic::Group">Group</a>&gt; <a class="trait" href="trait.Assignment.html" title="trait halo2_proofs::plonk::Assignment">Assignment</a>&lt;F&gt; for <a class="struct" href="../dev/struct.MockProver.html" title="struct halo2_proofs::dev::MockProver">MockProver</a>&lt;F&gt;</h3></section></div><script src="../../implementors/halo2_proofs/plonk/circuit/trait.Assignment.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="halo2_proofs" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.65.0-nightly (fa6ee9375 2022-09-12)" ></div></body></html>

View File

@ -13,7 +13,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="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">Circuit</a></h2><div class="sidebar-elems"><section><div class="block"><h3 class="sidebar-title"><a href="#required-associated-types">Required Associated Types</a></h3><ul><li><a href="#associatedtype.Config">Config</a></li><li><a href="#associatedtype.FloorPlanner">FloorPlanner</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><ul><li><a href="#tymethod.configure">configure</a></li><li><a href="#tymethod.synthesize">synthesize</a></li><li><a href="#tymethod.without_witnesses">without_witnesses</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div></section><h2 class="location"><a href="index.html">In halo2_proofs::plonk</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../halo2_proofs/index.html"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Trait <a href="../index.html">halo2_proofs</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></h1><span class="out-of-band"><a class="srclink" href="../../src/halo2_proofs/plonk/circuit.rs.html#462-481">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><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_proofs::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="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">Circuit</a></h2><div class="sidebar-elems"><section><div class="block"><h3 class="sidebar-title"><a href="#required-associated-types">Required Associated Types</a></h3><ul><li><a href="#associatedtype.Config">Config</a></li><li><a href="#associatedtype.FloorPlanner">FloorPlanner</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><ul><li><a href="#tymethod.configure">configure</a></li><li><a href="#tymethod.synthesize">synthesize</a></li><li><a href="#tymethod.without_witnesses">without_witnesses</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div></section><h2 class="location"><a href="index.html">In halo2_proofs::plonk</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../halo2_proofs/index.html"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Trait <a href="../index.html">halo2_proofs</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></h1><span class="out-of-band"><a class="srclink" href="../../src/halo2_proofs/plonk/circuit.rs.html#467-486">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><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_proofs::arithmetic::Field">Field</a>&gt; {
type <a href="#associatedtype.Config" class="associatedtype">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="associatedtype">FloorPlanner</a>: <a class="trait" href="trait.FloorPlanner.html" title="trait halo2_proofs::plonk::FloorPlanner">FloorPlanner</a>;
@ -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="required-associated-types" class="small-section-header">Required Associated Types<a href="#required-associated-types" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="associatedtype.Config" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#464">source</a><h4 class="code-header">type <a href="#associatedtype.Config" class="associatedtype">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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#467">source</a><h4 class="code-header">type <a href="#associatedtype.FloorPlanner" class="associatedtype">FloorPlanner</a>: <a class="trait" href="trait.FloorPlanner.html" title="trait halo2_proofs::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="required-associated-types" class="small-section-header">Required Associated Types<a href="#required-associated-types" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="associatedtype.Config" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#469">source</a><h4 class="code-header">type <a href="#associatedtype.Config" class="associatedtype">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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#472">source</a><h4 class="code-header">type <a href="#associatedtype.FloorPlanner" class="associatedtype">FloorPlanner</a>: <a class="trait" href="trait.FloorPlanner.html" title="trait halo2_proofs::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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#471">source</a><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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#476">source</a><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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#475">source</a><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_proofs::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;) -&gt; Self::<a class="associatedtype" href="trait.Circuit.html#associatedtype.Config" title="type halo2_proofs::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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#480">source</a><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_proofs::plonk::ConstraintSystem">ConstraintSystem</a>&lt;F&gt;) -&gt; Self::<a class="associatedtype" href="trait.Circuit.html#associatedtype.Config" title="type halo2_proofs::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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#480">source</a><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="associatedtype" href="trait.Circuit.html#associatedtype.Config" title="type halo2_proofs::plonk::Circuit::Config">Config</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;layouter: impl <a class="trait" href="../circuit/trait.Layouter.html" title="trait halo2_proofs::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_proofs::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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#485">source</a><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="associatedtype" href="trait.Circuit.html#associatedtype.Config" title="type halo2_proofs::plonk::Circuit::Config">Config</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;layouter: impl <a class="trait" href="../circuit/trait.Layouter.html" title="trait halo2_proofs::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_proofs::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 src="../../implementors/halo2_proofs/plonk/circuit/trait.Circuit.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="halo2_proofs" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.65.0-nightly (fa6ee9375 2022-09-12)" ></div></body></html>

View File

@ -13,12 +13,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="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">FloorPlanner</a></h2><div class="sidebar-elems"><section><div class="block"><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><ul><li><a href="#tymethod.synthesize">synthesize</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div></section><h2 class="location"><a href="index.html">In halo2_proofs::plonk</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../halo2_proofs/index.html"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Trait <a href="../index.html">halo2_proofs</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></h1><span class="out-of-band"><a class="srclink" href="../../src/halo2_proofs/plonk/circuit.rs.html#440-457">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><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="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">FloorPlanner</a></h2><div class="sidebar-elems"><section><div class="block"><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><ul><li><a href="#tymethod.synthesize">synthesize</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div></section><h2 class="location"><a href="index.html">In halo2_proofs::plonk</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../halo2_proofs/index.html"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Trait <a href="../index.html">halo2_proofs</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></h1><span class="out-of-band"><a class="srclink" href="../../src/halo2_proofs/plonk/circuit.rs.html#445-462">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><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_proofs::arithmetic::Field">Field</a>, CS:&nbsp;<a class="trait" href="trait.Assignment.html" title="trait halo2_proofs::plonk::Assignment">Assignment</a>&lt;F&gt;, C:&nbsp;<a class="trait" href="trait.Circuit.html" title="trait halo2_proofs::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="associatedtype" href="trait.Circuit.html#associatedtype.Config" title="type halo2_proofs::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_proofs::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2_proofs::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_proofs::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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#451-456">source</a><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_proofs::arithmetic::Field">Field</a>, CS:&nbsp;<a class="trait" href="trait.Assignment.html" title="trait halo2_proofs::plonk::Assignment">Assignment</a>&lt;F&gt;, C:&nbsp;<a class="trait" href="trait.Circuit.html" title="trait halo2_proofs::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="associatedtype" href="trait.Circuit.html#associatedtype.Config" title="type halo2_proofs::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_proofs::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2_proofs::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_proofs::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"><a class="srclink rightside" href="../../src/halo2_proofs/plonk/circuit.rs.html#456-461">source</a><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_proofs::arithmetic::Field">Field</a>, CS:&nbsp;<a class="trait" href="trait.Assignment.html" title="trait halo2_proofs::plonk::Assignment">Assignment</a>&lt;F&gt;, C:&nbsp;<a class="trait" href="trait.Circuit.html" title="trait halo2_proofs::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="associatedtype" href="trait.Circuit.html#associatedtype.Config" title="type halo2_proofs::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_proofs::plonk::Column">Column</a>&lt;<a class="struct" href="struct.Fixed.html" title="struct halo2_proofs::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_proofs::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

View File

@ -1545,6 +1545,11 @@
<span id="1530">1530</span>
<span id="1531">1531</span>
<span id="1532">1532</span>
<span id="1533">1533</span>
<span id="1534">1534</span>
<span id="1535">1535</span>
<span id="1536">1536</span>
<span id="1537">1537</span>
</pre><pre class="rust"><code><span class="kw">use </span>core::cmp::max;
<span class="kw">use </span>core::ops::{Add, Mul};
<span class="kw">use </span>ff::Field;
@ -1875,6 +1880,11 @@
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>inner(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; Column&lt;Fixed&gt; {
<span class="self">self</span>.inner
}
<span class="doccomment">/// Enable equality on this TableColumn.
</span><span class="kw">pub fn </span>enable_equality&lt;F: Field&gt;(<span class="kw-2">&amp;</span><span class="self">self</span>, meta: <span class="kw-2">&amp;mut </span>ConstraintSystem&lt;F&gt;) {
meta.enable_equality(<span class="self">self</span>.inner)
}
}
<span class="doccomment">/// This trait allows a [`Circuit`] to direct some backend to assign a witness

View File

@ -735,6 +735,71 @@
<span id="720">720</span>
<span id="721">721</span>
<span id="722">722</span>
<span id="723">723</span>
<span id="724">724</span>
<span id="725">725</span>
<span id="726">726</span>
<span id="727">727</span>
<span id="728">728</span>
<span id="729">729</span>
<span id="730">730</span>
<span id="731">731</span>
<span id="732">732</span>
<span id="733">733</span>
<span id="734">734</span>
<span id="735">735</span>
<span id="736">736</span>
<span id="737">737</span>
<span id="738">738</span>
<span id="739">739</span>
<span id="740">740</span>
<span id="741">741</span>
<span id="742">742</span>
<span id="743">743</span>
<span id="744">744</span>
<span id="745">745</span>
<span id="746">746</span>
<span id="747">747</span>
<span id="748">748</span>
<span id="749">749</span>
<span id="750">750</span>
<span id="751">751</span>
<span id="752">752</span>
<span id="753">753</span>
<span id="754">754</span>
<span id="755">755</span>
<span id="756">756</span>
<span id="757">757</span>
<span id="758">758</span>
<span id="759">759</span>
<span id="760">760</span>
<span id="761">761</span>
<span id="762">762</span>
<span id="763">763</span>
<span id="764">764</span>
<span id="765">765</span>
<span id="766">766</span>
<span id="767">767</span>
<span id="768">768</span>
<span id="769">769</span>
<span id="770">770</span>
<span id="771">771</span>
<span id="772">772</span>
<span id="773">773</span>
<span id="774">774</span>
<span id="775">775</span>
<span id="776">776</span>
<span id="777">777</span>
<span id="778">778</span>
<span id="779">779</span>
<span id="780">780</span>
<span id="781">781</span>
<span id="782">782</span>
<span id="783">783</span>
<span id="784">784</span>
<span id="785">785</span>
<span id="786">786</span>
<span id="787">787</span>
</pre><pre class="rust"><code><span class="kw">use </span>ff::Field;
<span class="kw">use </span>group::Curve;
<span class="kw">use </span>rand_core::RngCore;
@ -783,6 +848,10 @@
<span class="kw-2">mut </span>rng: R,
transcript: <span class="kw-2">&amp;mut </span>T,
) -&gt; <span class="prelude-ty">Result</span>&lt;(), Error&gt; {
<span class="kw">if </span>circuits.len() != instances.len() {
<span class="kw">return </span><span class="prelude-val">Err</span>(Error::InvalidInstances);
}
<span class="kw">for </span>instance <span class="kw">in </span>instances.iter() {
<span class="kw">if </span>instance.len() != pk.vk.cs.num_instance_columns {
<span class="kw">return </span><span class="prelude-val">Err</span>(Error::InvalidInstances);
@ -1457,5 +1526,66 @@
multiopen::create_proof(params, rng, transcript, instances).map_err(|<span class="kw">_</span>| Error::Opening)
}
<span class="attribute">#[test]
</span><span class="kw">fn </span>test_create_proof() {
<span class="kw">use crate</span>::{
circuit::SimpleFloorPlanner,
plonk::{keygen_pk, keygen_vk},
transcript::{Blake2bWrite, Challenge255},
};
<span class="kw">use </span>pasta_curves::EqAffine;
<span class="kw">use </span>rand_core::OsRng;
<span class="attribute">#[derive(Clone, Copy)]
</span><span class="kw">struct </span>MyCircuit;
<span class="kw">impl</span>&lt;F: Field&gt; Circuit&lt;F&gt; <span class="kw">for </span>MyCircuit {
<span class="kw">type </span>Config = ();
<span class="kw">type </span>FloorPlanner = SimpleFloorPlanner;
<span class="kw">fn </span>without_witnesses(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="self">Self </span>{
<span class="kw-2">*</span><span class="self">self
</span>}
<span class="kw">fn </span>configure(_meta: <span class="kw-2">&amp;mut </span>ConstraintSystem&lt;F&gt;) -&gt; <span class="self">Self</span>::Config {}
<span class="kw">fn </span>synthesize(
<span class="kw-2">&amp;</span><span class="self">self</span>,
_config: <span class="self">Self</span>::Config,
_layouter: <span class="kw">impl </span><span class="kw">crate</span>::circuit::Layouter&lt;F&gt;,
) -&gt; <span class="prelude-ty">Result</span>&lt;(), Error&gt; {
<span class="prelude-val">Ok</span>(())
}
}
<span class="kw">let </span>params: Params&lt;EqAffine&gt; = Params::new(<span class="number">3</span>);
<span class="kw">let </span>vk = keygen_vk(<span class="kw-2">&amp;</span>params, <span class="kw-2">&amp;</span>MyCircuit).expect(<span class="string">&quot;keygen_vk should not fail&quot;</span>);
<span class="kw">let </span>pk = keygen_pk(<span class="kw-2">&amp;</span>params, vk, <span class="kw-2">&amp;</span>MyCircuit).expect(<span class="string">&quot;keygen_pk should not fail&quot;</span>);
<span class="kw">let </span><span class="kw-2">mut </span>transcript = Blake2bWrite::&lt;<span class="kw">_</span>, <span class="kw">_</span>, Challenge255&lt;<span class="kw">_</span>&gt;&gt;::init(<span class="macro">vec!</span>[]);
<span class="comment">// Create proof with wrong number of instances
</span><span class="kw">let </span>proof = create_proof(
<span class="kw-2">&amp;</span>params,
<span class="kw-2">&amp;</span>pk,
<span class="kw-2">&amp;</span>[MyCircuit, MyCircuit],
<span class="kw-2">&amp;</span>[],
OsRng,
<span class="kw-2">&amp;mut </span>transcript,
);
<span class="macro">assert!</span>(<span class="macro">matches!</span>(proof.unwrap_err(), Error::InvalidInstances));
<span class="comment">// Create proof with correct number of instances
</span>create_proof(
<span class="kw-2">&amp;</span>params,
<span class="kw-2">&amp;</span>pk,
<span class="kw-2">&amp;</span>[MyCircuit, MyCircuit],
<span class="kw-2">&amp;</span>[<span class="kw-2">&amp;</span>[], <span class="kw-2">&amp;</span>[]],
OsRng,
<span class="kw-2">&amp;mut </span>transcript,
)
.expect(<span class="string">&quot;proof generation should not fail&quot;</span>);
}
</code></pre></div>
</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="halo2_proofs" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.65.0-nightly (fa6ee9375 2022-09-12)" ></div></body></html>