This commit is contained in:
str4d 2021-07-27 16:25:17 +00:00
parent 94aedb1a42
commit f7b022c8e9
27 changed files with 913 additions and 62 deletions

File diff suppressed because one or more lines are too long

View File

@ -13,9 +13,10 @@
});
});
</script>
<style type="text/css">#crate-search{background-image:url("../../../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../../rust-logo.png' alt='logo'></div></a><h2 class="location">Module cost</h2><div class="sidebar-elems"><div class="block items"><ul><li><a href="#structs">Structs</a></li></ul></div><div id="sidebar-vars" data-name="cost" data-ty="mod" data-relpath="./"></div><script defer src="./sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input"name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Module <a href="../../index.html">halo2</a>::<wbr><a href="../index.html">dev</a>::<wbr><a class="mod" href="#">cost</a><button id="copy-path" onclick="copy_path(this)" title="copy path"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item import" title="Copy item import to clipboard"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../../src/halo2/dev/cost.rs.html#1-309" title="goto source code">[src]</a></span></h1><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Developer tools for investigating the cost of a circuit.</p>
<style type="text/css">#crate-search{background-image:url("../../../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../../rust-logo.png' alt='logo'></div></a><h2 class="location">Module cost</h2><div class="sidebar-elems"><div class="block items"><ul><li><a href="#structs">Structs</a></li></ul></div><div id="sidebar-vars" data-name="cost" data-ty="mod" data-relpath="./"></div><script defer src="./sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input"name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Module <a href="../../index.html">halo2</a>::<wbr><a href="../index.html">dev</a>::<wbr><a class="mod" href="#">cost</a><button id="copy-path" onclick="copy_path(this)" title="copy path"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item import" title="Copy item import to clipboard"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../../src/halo2/dev/cost.rs.html#1-368" title="goto source code">[src]</a></span></h1><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Developer tools for investigating the cost of a circuit.</p>
</div></details><h2 id="structs" class="section-header"><a href="#structs">Structs</a></h2>
<div class="item-table"><div class="item-left module-item"><a class="struct" href="struct.CircuitCost.html" title="halo2::dev::cost::CircuitCost struct">CircuitCost</a></div><div class="item-right docblock-short"><p>Measures a circuit to determine its costs, and explain what contributes to them.</p>
</div><div class="item-left module-item"><a class="struct" href="struct.MarginalProofSize.html" title="halo2::dev::cost::MarginalProofSize struct">MarginalProofSize</a></div><div class="item-right docblock-short"><p>The marginal size of a Halo 2 proof, broken down into its contributing factors.</p>
</div><div class="item-left module-item"><a class="struct" href="struct.ProofSize.html" title="halo2::dev::cost::ProofSize struct">ProofSize</a></div><div class="item-right docblock-short"><p>The size of a Halo 2 proof, broken down into its contributing factors.</p>
</div></div></section><section id="search" class="content hidden"></section><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="halo2" data-search-index-js="../../../search-index.js" data-search-js="../../../search.js"></div>
<script src="../../../main.js"></script>

View File

@ -1 +1 @@
initSidebarItems({"struct":[["CircuitCost","Measures a circuit to determine its costs, and explain what contributes to them."],["ProofSize","The size of a Halo 2 proof, broken down into its contributing factors."]]});
initSidebarItems({"struct":[["CircuitCost","Measures a circuit to determine its costs, and explain what contributes to them."],["MarginalProofSize","The marginal size of a Halo 2 proof, broken down into its contributing factors."],["ProofSize","The size of a Halo 2 proof, broken down into its contributing factors."]]});

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,87 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The marginal size of a Halo 2 proof, broken down into its contributing factors."><meta name="keywords" content="rust, rustlang, rust-lang, MarginalProofSize"><title>MarginalProofSize in halo2::dev::cost - Rust</title><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../../ayu.css" disabled ><script id="default-settings" ></script><script src="../../../storage.js"></script><script src="../../../crates.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../../favicon.svg"><link rel="alternate icon" type="image/png" href="../../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../../favicon-32x32.png"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/katex.min.css" integrity="sha384-9eLZqc9ds8eNjO3TmqPeYcDj8n+Qfa4nuSiGYa6DjLNcv9BtN69ZIulL9+8CqC9Y" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/katex.min.js" integrity="sha384-K3vbOmF2BtaVai+Qk37uypf7VrgBubhQreNQe9aGsz9lB63dIFiQVlJbr92dw2Lx" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/contrib/auto-render.min.js" integrity="sha384-kmZOZB5ObwgQnS/DuDg6TScgOiWWBiVt0plIRkZCmE6rDZGrEOQeHM5PcHi+nyqe" crossorigin="anonymous"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
renderMathInElement(document.body, {
delimiters: [
{left: "$$", right: "$$", display: true},
{left: "\\(", right: "\\)", display: false},
{left: "$", right: "$", display: false},
{left: "\\[", right: "\\]", display: true}
]
});
});
</script>
<style type="text/css">#crate-search{background-image:url("../../../down-arrow.svg");}</style></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct MarginalProofSize</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Debug">Debug</a><a href="#impl-From%3CMarginalProofSize%3CG%3E%3E">From&lt;MarginalProofSize&lt;G&gt;&gt;</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../../index.html">halo2</a>::<wbr><a href="../index.html">dev</a>::<wbr><a href="index.html">cost</a></h2><div id="sidebar-vars" data-name="MarginalProofSize" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input"name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../../index.html">halo2</a>::<wbr><a href="../index.html">dev</a>::<wbr><a href="index.html">cost</a>::<wbr><a class="struct" href="#">MarginalProofSize</a><button id="copy-path" onclick="copy_path(this)" title="copy path"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item import" title="Copy item import to clipboard"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../../src/halo2/dev/cost.rs.html#320-326" title="goto source code">[src]</a></span></h1><div class="docblock type-decl"><pre class="rust struct">pub struct MarginalProofSize&lt;G:&nbsp;PrimeGroup&gt; { /* fields omitted */ }</pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The marginal size of a Halo 2 proof, broken down into its contributing factors.</p>
</div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/dev/cost.rs.html#319" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl&lt;G:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + PrimeGroup&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.MarginalProofSize.html" title="struct halo2::dev::cost::MarginalProofSize">MarginalProofSize</a>&lt;G&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/dev/cost.rs.html#319" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3CMarginalProofSize%3CG%3E%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/dev/cost.rs.html#328-338" title="goto source code">[src]</a></div><a href="#impl-From%3CMarginalProofSize%3CG%3E%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;G:&nbsp;PrimeGroup&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="struct" href="struct.MarginalProofSize.html" title="struct halo2::dev::cost::MarginalProofSize">MarginalProofSize</a>&lt;G&gt;&gt; for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/dev/cost.rs.html#329-337" title="goto source code">[src]</a></div><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(proof: <a class="struct" href="struct.MarginalProofSize.html" title="struct halo2::dev::cost::MarginalProofSize">MarginalProofSize</a>&lt;G&gt;) -&gt; Self</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><div id="impl-RefUnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-RefUnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;G&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.MarginalProofSize.html" title="struct halo2::dev::cost::MarginalProofSize">MarginalProofSize</a>&lt;G&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;G: <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a>,&nbsp;</span></h3></div><div id="impl-Send" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Send" class="anchor"></a><h3 class="code-header in-band">impl&lt;G&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.MarginalProofSize.html" title="struct halo2::dev::cost::MarginalProofSize">MarginalProofSize</a>&lt;G&gt;</h3></div><div id="impl-Sync" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Sync" class="anchor"></a><h3 class="code-header in-band">impl&lt;G&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.MarginalProofSize.html" title="struct halo2::dev::cost::MarginalProofSize">MarginalProofSize</a>&lt;G&gt;</h3></div><div id="impl-Unpin" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Unpin" class="anchor"></a><h3 class="code-header in-band">impl&lt;G&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.MarginalProofSize.html" title="struct halo2::dev::cost::MarginalProofSize">MarginalProofSize</a>&lt;G&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;G: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,&nbsp;</span></h3></div><div id="impl-UnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-UnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;G&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.MarginalProofSize.html" title="struct halo2::dev::cost::MarginalProofSize">MarginalProofSize</a>&lt;G&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;G: <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a>,&nbsp;</span></h3></div></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Any" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#132-136" title="goto source code">[src]</a></div><a href="#impl-Any" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.type_id" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#133" title="goto source code">[src]</a></div><a href="#method.type_id" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></div></summary><div class='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Borrow%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#208-213" title="goto source code">[src]</a></div><a href="#impl-Borrow%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210" title="goto source code">[src]</a></div><a href="#method.borrow" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</h4></div></summary><div class='docblock'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-BorrowMut%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#216-220" title="goto source code">[src]</a></div><a href="#impl-BorrowMut%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow_mut" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217" title="goto source code">[src]</a></div><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</h4></div></summary><div class='docblock'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Conv" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Conv" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; Conv for T</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.conv" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.conv" class="anchor"></a><h4 class="code-header">fn <a href="#method.conv" class="fnname">conv</a>&lt;T&gt;(self) -&gt; T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,&nbsp;</span></h4></div></summary><div class='docblock'><p>Converts <code>self</code> into <code>T</code> using <code>Into&lt;T&gt;</code>. <a href="#method.conv">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-FmtForward" class="impl has-srclink"><div class="rightside"></div><a href="#impl-FmtForward" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; FmtForward for T</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt_binary" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.fmt_binary" class="anchor"></a><h4 class="code-header">fn <a href="#method.fmt_binary" class="fnname">fmt_binary</a>(self) -&gt; FmtBinary&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html" title="trait core::fmt::Binary">Binary</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Causes <code>self</code> to use its <code>Binary</code> implementation when <code>Debug</code>-formatted.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt_display" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.fmt_display" class="anchor"></a><h4 class="code-header">fn <a href="#method.fmt_display" class="fnname">fmt_display</a>(self) -&gt; FmtDisplay&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Causes <code>self</code> to use its <code>Display</code> implementation when
<code>Debug</code>-formatted. <a href="#method.fmt_display">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt_lower_exp" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.fmt_lower_exp" class="anchor"></a><h4 class="code-header">fn <a href="#method.fmt_lower_exp" class="fnname">fmt_lower_exp</a>(self) -&gt; FmtLowerExp&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html" title="trait core::fmt::LowerExp">LowerExp</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Causes <code>self</code> to use its <code>LowerExp</code> implementation when
<code>Debug</code>-formatted. <a href="#method.fmt_lower_exp">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt_lower_hex" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.fmt_lower_hex" class="anchor"></a><h4 class="code-header">fn <a href="#method.fmt_lower_hex" class="fnname">fmt_lower_hex</a>(self) -&gt; FmtLowerHex&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html" title="trait core::fmt::LowerHex">LowerHex</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Causes <code>self</code> to use its <code>LowerHex</code> implementation when
<code>Debug</code>-formatted. <a href="#method.fmt_lower_hex">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt_octal" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.fmt_octal" class="anchor"></a><h4 class="code-header">fn <a href="#method.fmt_octal" class="fnname">fmt_octal</a>(self) -&gt; FmtOctal&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html" title="trait core::fmt::Octal">Octal</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Causes <code>self</code> to use its <code>Octal</code> implementation when <code>Debug</code>-formatted.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt_pointer" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.fmt_pointer" class="anchor"></a><h4 class="code-header">fn <a href="#method.fmt_pointer" class="fnname">fmt_pointer</a>(self) -&gt; FmtPointer&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html" title="trait core::fmt::Pointer">Pointer</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Causes <code>self</code> to use its <code>Pointer</code> implementation when
<code>Debug</code>-formatted. <a href="#method.fmt_pointer">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt_upper_exp" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.fmt_upper_exp" class="anchor"></a><h4 class="code-header">fn <a href="#method.fmt_upper_exp" class="fnname">fmt_upper_exp</a>(self) -&gt; FmtUpperExp&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html" title="trait core::fmt::UpperExp">UpperExp</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Causes <code>self</code> to use its <code>UpperExp</code> implementation when
<code>Debug</code>-formatted. <a href="#method.fmt_upper_exp">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt_upper_hex" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.fmt_upper_hex" class="anchor"></a><h4 class="code-header">fn <a href="#method.fmt_upper_hex" class="fnname">fmt_upper_hex</a>(self) -&gt; FmtUpperHex&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html" title="trait core::fmt::UpperHex">UpperHex</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Causes <code>self</code> to use its <code>UpperHex</code> implementation when
<code>Debug</code>-formatted. <a href="#method.fmt_upper_hex">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#546-550" title="goto source code">[src]</a></div><a href="#impl-From%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from-1" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#547" title="goto source code">[src]</a></div><a href="#method.from-1" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(t: T) -&gt; T</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Into%3CU%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#535-542" title="goto source code">[src]</a></div><a href="#impl-Into%3CU%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.into" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#539" title="goto source code">[src]</a></div><a href="#method.into" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fnname">into</a>(self) -&gt; U</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Pipe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Pipe" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; Pipe for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe" class="fnname">pipe</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(Self) -&gt; R) -&gt; R</h4></div></summary><div class='docblock'><p>Pipes by value. This is generally the method you want to use. <a href="#method.pipe">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe_ref" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe_ref" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe_ref" class="fnname">pipe_ref</a>&lt;'a, R&gt;(&amp;'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a </a>Self) -&gt; R) -&gt; R <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,&nbsp;</span></h4></div></summary><div class='docblock'><p>Borrows <code>self</code> and passes that borrow into the pipe function. <a href="#method.pipe_ref">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe_ref_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe_ref_mut" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe_ref_mut" class="fnname">pipe_ref_mut</a>&lt;'a, R&gt;(&amp;'a mut self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut </a>Self) -&gt; R) -&gt; R <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,&nbsp;</span></h4></div></summary><div class='docblock'><p>Mutably borrows <code>self</code> and passes that borrow into the pipe function. <a href="#method.pipe_ref_mut">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe_borrow" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe_borrow" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe_borrow" class="fnname">pipe_borrow</a>&lt;'a, B, R&gt;(&amp;'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a </a>B) -&gt; R) -&gt; R <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Borrows <code>self</code>, then passes <code>self.borrow()</code> into the pipe function. <a href="#method.pipe_borrow">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe_borrow_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe_borrow_mut" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe_borrow_mut" class="fnname">pipe_borrow_mut</a>&lt;'a, B, R&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut </a>B) -&gt; R<br>) -&gt; R <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Mutably borrows <code>self</code>, then passes <code>self.borrow_mut()</code> into the pipe
function. <a href="#method.pipe_borrow_mut">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe_as_ref" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe_as_ref" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe_as_ref" class="fnname">pipe_as_ref</a>&lt;'a, U, R&gt;(&amp;'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a </a>U) -&gt; R) -&gt; R <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;U&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,<br>&nbsp;&nbsp;&nbsp;&nbsp;U: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Borrows <code>self</code>, then passes <code>self.as_ref()</code> into the pipe function.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe_as_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe_as_mut" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe_as_mut" class="fnname">pipe_as_mut</a>&lt;'a, U, R&gt;(&amp;'a mut self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut </a>U) -&gt; R) -&gt; R <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a>&lt;U&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,<br>&nbsp;&nbsp;&nbsp;&nbsp;U: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Mutably borrows <code>self</code>, then passes <code>self.as_mut()</code> into the pipe
function. <a href="#method.pipe_as_mut">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe_deref" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe_deref" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe_deref" class="fnname">pipe_deref</a>&lt;'a, T, R&gt;(&amp;'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a </a>T) -&gt; R) -&gt; R <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = T&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,&nbsp;</span></h4></div></summary><div class='docblock'><p>Borrows <code>self</code>, then passes <code>self.deref()</code> into the pipe function.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe_deref_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe_deref_mut" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe_deref_mut" class="fnname">pipe_deref_mut</a>&lt;'a, T, R&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut </a>T) -&gt; R<br>) -&gt; R <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a>&lt;Target = T&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,&nbsp;</span></h4></div></summary><div class='docblock'><p>Mutably borrows <code>self</code>, then passes <code>self.deref_mut()</code> into the pipe
function. <a href="#method.pipe_deref_mut">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Pointable" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Pointable" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; Pointable for T</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><div id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><div class="rightside"></div><a href="#associatedconstant.ALIGN" class="anchor"></a><h4 class="code-header">pub const <a href="#associatedconstant.ALIGN" class="constant"><b>ALIGN</b></a>: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></div></summary><div class='docblock'><p>The alignment of pointer.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="associatedtype.Init" class="type trait-impl has-srclink"><a href="#associatedtype.Init" class="anchor"></a><h4 class="code-header">type <a href="#associatedtype.Init" class="type">Init</a> = T</h4></div></summary><div class='docblock'><p>The type for initializers.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.init" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.init" class="anchor"></a><h4 class="code-header">pub unsafe fn <a class="fnname">init</a>(init: &lt;T as Pointable&gt;::Init) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></div></summary><div class='docblock'><p>Initializes a with the given initializer. <a href="#tymethod.init">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.deref" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.deref" class="anchor"></a><h4 class="code-header">pub unsafe fn <a class="fnname">deref</a>&lt;'a&gt;(ptr: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a </a>T</h4></div></summary><div class='docblock'><p>Dereferences the given pointer. <a href="#tymethod.deref">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.deref_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.deref_mut" class="anchor"></a><h4 class="code-header">pub unsafe fn <a class="fnname">deref_mut</a>&lt;'a&gt;(ptr: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut </a>T</h4></div></summary><div class='docblock'><p>Mutably dereferences the given pointer. <a href="#tymethod.deref_mut">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.drop" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.drop" class="anchor"></a><h4 class="code-header">pub unsafe fn <a class="fnname">drop</a>(ptr: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h4></div></summary><div class='docblock'><p>Drops the object pointed to by the given pointer. <a href="#tymethod.drop">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Tap" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Tap" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; Tap for T</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap" class="fnname">tap</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Self)) -&gt; Self</h4></div></summary><div class='docblock'><p>Immutable access to a value. <a href="#method.tap">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_mut" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_mut" class="fnname">tap_mut</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>Self)) -&gt; Self</h4></div></summary><div class='docblock'><p>Mutable access to a value. <a href="#method.tap_mut">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_borrow" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_borrow" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_borrow" class="fnname">tap_borrow</a>&lt;B&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>B)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Immutable access to the <code>Borrow&lt;B&gt;</code> of a value. <a href="#method.tap_borrow">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_borrow_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_borrow_mut" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_borrow_mut" class="fnname">tap_borrow_mut</a>&lt;B&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>B)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Mutable access to the <code>BorrowMut&lt;B&gt;</code> of a value. <a href="#method.tap_borrow_mut">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_ref" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_ref" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_ref" class="fnname">tap_ref</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>R)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;R&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Immutable access to the <code>AsRef&lt;R&gt;</code> view of a value. <a href="#method.tap_ref">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_ref_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_ref_mut" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_ref_mut" class="fnname">tap_ref_mut</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>R)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a>&lt;R&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Mutable access to the <code>AsMut&lt;R&gt;</code> view of a value. <a href="#method.tap_ref_mut">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_deref" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_deref" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_deref" class="fnname">tap_deref</a>&lt;T&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = T&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Immutable access to the <code>Deref::Target</code> of a value. <a href="#method.tap_deref">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_deref_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_deref_mut" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_deref_mut" class="fnname">tap_deref_mut</a>&lt;T&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a>&lt;Target = T&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Mutable access to the <code>Deref::Target</code> of a value. <a href="#method.tap_deref_mut">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_dbg" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_dbg" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_dbg" class="fnname">tap_dbg</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Self)) -&gt; Self</h4></div></summary><div class='docblock'><p>Calls <code>.tap()</code> only in debug builds, and is erased in release builds.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_mut_dbg" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_mut_dbg" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_mut_dbg" class="fnname">tap_mut_dbg</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>Self)) -&gt; Self</h4></div></summary><div class='docblock'><p>Calls <code>.tap_mut()</code> only in debug builds, and is erased in release
builds. <a href="#method.tap_mut_dbg">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_borrow_dbg" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_borrow_dbg" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_borrow_dbg" class="fnname">tap_borrow_dbg</a>&lt;B&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>B)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Calls <code>.tap_borrow()</code> only in debug builds, and is erased in release
builds. <a href="#method.tap_borrow_dbg">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_borrow_mut_dbg" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_borrow_mut_dbg" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_borrow_mut_dbg" class="fnname">tap_borrow_mut_dbg</a>&lt;B&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>B)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Calls <code>.tap_borrow_mut()</code> only in debug builds, and is erased in release
builds. <a href="#method.tap_borrow_mut_dbg">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_ref_dbg" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_ref_dbg" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_ref_dbg" class="fnname">tap_ref_dbg</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>R)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;R&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Calls <code>.tap_ref()</code> only in debug builds, and is erased in release
builds. <a href="#method.tap_ref_dbg">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_ref_mut_dbg" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_ref_mut_dbg" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_ref_mut_dbg" class="fnname">tap_ref_mut_dbg</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>R)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a>&lt;R&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Calls <code>.tap_ref_mut()</code> only in debug builds, and is erased in release
builds. <a href="#method.tap_ref_mut_dbg">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_deref_dbg" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_deref_dbg" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_deref_dbg" class="fnname">tap_deref_dbg</a>&lt;T&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = T&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Calls <code>.tap_deref()</code> only in debug builds, and is erased in release
builds. <a href="#method.tap_deref_dbg">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_deref_mut_dbg" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_deref_mut_dbg" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_deref_mut_dbg" class="fnname">tap_deref_mut_dbg</a>&lt;T&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a>&lt;Target = T&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Calls <code>.tap_deref_mut()</code> only in debug builds, and is erased in release
builds. <a href="#method.tap_deref_mut_dbg">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-TryConv" class="impl has-srclink"><div class="rightside"></div><a href="#impl-TryConv" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; TryConv for T</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.try_conv" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.try_conv" class="anchor"></a><h4 class="code-header">fn <a href="#method.try_conv" class="fnname">try_conv</a>&lt;T&gt;(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, Self::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" title="type core::convert::TryInto::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;T&gt;,&nbsp;</span></h4></div></summary><div class='docblock'><p>Attempts to convert <code>self</code> into <code>T</code> using <code>TryInto&lt;T&gt;</code>. <a href="#method.try_conv">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-TryFrom%3CU%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#583-592" title="goto source code">[src]</a></div><a href="#impl-TryFrom%3CU%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><div id="associatedtype.Error" class="type trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="type">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></div></summary><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.try_from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#589" title="goto source code">[src]</a></div><a href="#method.try_from" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fnname">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-TryInto%3CU%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#569-578" title="goto source code">[src]</a></div><a href="#impl-TryInto%3CU%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><div id="associatedtype.Error-1" class="type trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="type">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></div></summary><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.try_into" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#575" title="goto source code">[src]</a></div><a href="#method.try_into" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fnname">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-VZip%3CV%3E" class="impl has-srclink"><div class="rightside"></div><a href="#impl-VZip%3CV%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;V, T&gt; VZip&lt;V&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: MultiLane&lt;T&gt;,&nbsp;</span></h3></div></summary><div class="impl-items"><div id="method.vzip" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.vzip" class="anchor"></a><h4 class="code-header">pub fn <a class="fnname">vzip</a>(self) -&gt; V</h4></div></div></details></div></section><section id="search" class="content hidden"></section><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="halo2" data-search-index-js="../../../search-index.js" data-search-js="../../../search.js"></div>
<script src="../../../main.js"></script>
</body></html>

View File

@ -13,9 +13,9 @@
});
});
</script>
<style type="text/css">#crate-search{background-image:url("../../../down-arrow.svg");}</style></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct ProofSize</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Debug">Debug</a><a href="#impl-From%3CProofSize%3CG%3E%3E">From&lt;ProofSize&lt;G&gt;&gt;</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../../index.html">halo2</a>::<wbr><a href="../index.html">dev</a>::<wbr><a href="index.html">cost</a></h2><div id="sidebar-vars" data-name="ProofSize" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input"name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../../index.html">halo2</a>::<wbr><a href="../index.html">dev</a>::<wbr><a href="index.html">cost</a>::<wbr><a class="struct" href="#">ProofSize</a><button id="copy-path" onclick="copy_path(this)" title="copy path"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item import" title="Copy item import to clipboard"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../../src/halo2/dev/cost.rs.html#283-293" title="goto source code">[src]</a></span></h1><div class="docblock type-decl"><pre class="rust struct">pub struct ProofSize&lt;G:&nbsp;PrimeGroup&gt; { /* fields omitted */ }</pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The size of a Halo 2 proof, broken down into its contributing factors.</p>
</div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/dev/cost.rs.html#282" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl&lt;G:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + PrimeGroup&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.ProofSize.html" title="struct halo2::dev::cost::ProofSize">ProofSize</a>&lt;G&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/dev/cost.rs.html#282" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3CProofSize%3CG%3E%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/dev/cost.rs.html#295-309" title="goto source code">[src]</a></div><a href="#impl-From%3CProofSize%3CG%3E%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;G:&nbsp;PrimeGroup&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="struct" href="struct.ProofSize.html" title="struct halo2::dev::cost::ProofSize">ProofSize</a>&lt;G&gt;&gt; for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/dev/cost.rs.html#296-308" title="goto source code">[src]</a></div><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(proof: <a class="struct" href="struct.ProofSize.html" title="struct halo2::dev::cost::ProofSize">ProofSize</a>&lt;G&gt;) -&gt; Self</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
<style type="text/css">#crate-search{background-image:url("../../../down-arrow.svg");}</style></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct ProofSize</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Debug">Debug</a><a href="#impl-From%3CProofSize%3CG%3E%3E">From&lt;ProofSize&lt;G&gt;&gt;</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../../index.html">halo2</a>::<wbr><a href="../index.html">dev</a>::<wbr><a href="index.html">cost</a></h2><div id="sidebar-vars" data-name="ProofSize" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input"name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../../index.html">halo2</a>::<wbr><a href="../index.html">dev</a>::<wbr><a href="index.html">cost</a>::<wbr><a class="struct" href="#">ProofSize</a><button id="copy-path" onclick="copy_path(this)" title="copy path"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item import" title="Copy item import to clipboard"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../../src/halo2/dev/cost.rs.html#342-352" title="goto source code">[src]</a></span></h1><div class="docblock type-decl"><pre class="rust struct">pub struct ProofSize&lt;G:&nbsp;PrimeGroup&gt; { /* fields omitted */ }</pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The size of a Halo 2 proof, broken down into its contributing factors.</p>
</div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/dev/cost.rs.html#341" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl&lt;G:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + PrimeGroup&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.ProofSize.html" title="struct halo2::dev::cost::ProofSize">ProofSize</a>&lt;G&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/dev/cost.rs.html#341" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3CProofSize%3CG%3E%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/dev/cost.rs.html#354-368" title="goto source code">[src]</a></div><a href="#impl-From%3CProofSize%3CG%3E%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;G:&nbsp;PrimeGroup&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="struct" href="struct.ProofSize.html" title="struct halo2::dev::cost::ProofSize">ProofSize</a>&lt;G&gt;&gt; for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/halo2/dev/cost.rs.html#355-367" title="goto source code">[src]</a></div><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(proof: <a class="struct" href="struct.ProofSize.html" title="struct halo2::dev::cost::ProofSize">ProofSize</a>&lt;G&gt;) -&gt; Self</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><div id="impl-RefUnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-RefUnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;G&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.ProofSize.html" title="struct halo2::dev::cost::ProofSize">ProofSize</a>&lt;G&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;G: <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a>,&nbsp;</span></h3></div><div id="impl-Send" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Send" class="anchor"></a><h3 class="code-header in-band">impl&lt;G&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.ProofSize.html" title="struct halo2::dev::cost::ProofSize">ProofSize</a>&lt;G&gt;</h3></div><div id="impl-Sync" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Sync" class="anchor"></a><h3 class="code-header in-band">impl&lt;G&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.ProofSize.html" title="struct halo2::dev::cost::ProofSize">ProofSize</a>&lt;G&gt;</h3></div><div id="impl-Unpin" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Unpin" class="anchor"></a><h3 class="code-header in-band">impl&lt;G&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.ProofSize.html" title="struct halo2::dev::cost::ProofSize">ProofSize</a>&lt;G&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;G: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,&nbsp;</span></h3></div><div id="impl-UnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-UnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;G&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.ProofSize.html" title="struct halo2::dev::cost::ProofSize">ProofSize</a>&lt;G&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;G: <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a>,&nbsp;</span></h3></div></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Any" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#132-136" title="goto source code">[src]</a></div><a href="#impl-Any" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.type_id" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#133" title="goto source code">[src]</a></div><a href="#method.type_id" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></div></summary><div class='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Borrow%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#208-213" title="goto source code">[src]</a></div><a href="#impl-Borrow%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210" title="goto source code">[src]</a></div><a href="#method.borrow" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</h4></div></summary><div class='docblock'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-BorrowMut%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#216-220" title="goto source code">[src]</a></div><a href="#impl-BorrowMut%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow_mut" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217" title="goto source code">[src]</a></div><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</h4></div></summary><div class='docblock'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>

View File

@ -13,7 +13,7 @@
});
});
</script>
<style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Enum VerifyFailure</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#variants">Variants</a></h3><div class="sidebar-links"><a href="#variant.Cell">Cell</a><a href="#variant.ConstraintNotSatisfied">ConstraintNotSatisfied</a><a href="#variant.ConstraintPoisoned">ConstraintPoisoned</a><a href="#variant.Lookup">Lookup</a><a href="#variant.Permutation">Permutation</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Debug">Debug</a><a href="#impl-Display">Display</a><a href="#impl-PartialEq%3CVerifyFailure%3E">PartialEq&lt;VerifyFailure&gt;</a><a href="#impl-StructuralPartialEq">StructuralPartialEq</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-ToString">ToString</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">dev</a></h2><div id="sidebar-vars" data-name="VerifyFailure" data-ty="enum" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input"name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Enum <a href="../index.html">halo2</a>::<wbr><a href="index.html">dev</a>::<wbr><a class="enum" href="#">VerifyFailure</a><button id="copy-path" onclick="copy_path(this)" title="copy path"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item import" title="Copy item import to clipboard"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/dev.rs.html#34-76" title="goto source code">[src]</a></span></h1><div class="docblock type-decl"><pre class="rust enum">pub enum VerifyFailure {
<style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Enum VerifyFailure</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#variants">Variants</a></h3><div class="sidebar-links"><a href="#variant.Cell">Cell</a><a href="#variant.ConstraintNotSatisfied">ConstraintNotSatisfied</a><a href="#variant.ConstraintPoisoned">ConstraintPoisoned</a><a href="#variant.Lookup">Lookup</a><a href="#variant.Permutation">Permutation</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Debug">Debug</a><a href="#impl-Display">Display</a><a href="#impl-PartialEq%3CVerifyFailure%3E">PartialEq&lt;VerifyFailure&gt;</a><a href="#impl-StructuralPartialEq">StructuralPartialEq</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-ToString">ToString</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">dev</a></h2><div id="sidebar-vars" data-name="VerifyFailure" data-ty="enum" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input"name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Enum <a href="../index.html">halo2</a>::<wbr><a href="index.html">dev</a>::<wbr><a class="enum" href="#">VerifyFailure</a><button id="copy-path" onclick="copy_path(this)" title="copy path"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item import" title="Copy item import to clipboard"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/dev.rs.html#37-79" title="goto source code">[src]</a></span></h1><div class="docblock type-decl"><pre class="rust enum">pub enum VerifyFailure {
Cell {
gate: <a class="struct" href="metadata/struct.Gate.html" title="struct halo2::dev::metadata::Gate">Gate</a>,
region: <a class="struct" href="metadata/struct.Region.html" title="struct halo2::dev::metadata::Region">Region</a>,
@ -56,12 +56,12 @@ the order in which <code>ConstraintSystem::lookup</code> is called during
</div></div></div><div id="variant.Permutation" class="variant small-section-header"><a href="#variant.Permutation" class="anchor field"></a><code>Permutation</code></div><div class="docblock"><p>A permutation did not preserve the original value of a cell.</p>
</div><div class="sub-variant" id="variant.Permutation.fields"><h3>Fields of <b>Permutation</b></h3><div><span id="variant.Permutation.field.column" class="variant small-section-header"><a href="#variant.Permutation.field.column" class="anchor field"></a><code>column:&nbsp;<a class="struct" href="metadata/struct.Column.html" title="struct halo2::dev::metadata::Column">Column</a></code></span><div class="docblock"><p>The column in which this permutation is not satisfied.</p>
</div><span id="variant.Permutation.field.row" class="variant small-section-header"><a href="#variant.Permutation.field.row" class="anchor field"></a><code>row:&nbsp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>The row on which this permutation is not satisfied.</p>
</div></div></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#33" title="goto source code">[src]</a></div><a href="#impl-Debug" 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="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#33" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Display" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#78-115" title="goto source code">[src]</a></div><a href="#impl-Display" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt-1" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#79-114" title="goto source code">[src]</a></div><a href="#method.fmt-1" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-PartialEq%3CVerifyFailure%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#33" title="goto source code">[src]</a></div><a href="#impl-PartialEq%3CVerifyFailure%3E" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>&lt;<a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a>&gt; for <a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.eq" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#33" title="goto source code">[src]</a></div><a href="#method.eq" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fnname">eq</a>(&amp;self, other: &amp;<a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></div></summary><div class='docblock'><p>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
</div></div></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#36" title="goto source code">[src]</a></div><a href="#impl-Debug" 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="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#36" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Display" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#81-118" title="goto source code">[src]</a></div><a href="#impl-Display" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt-1" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#82-117" title="goto source code">[src]</a></div><a href="#method.fmt-1" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-PartialEq%3CVerifyFailure%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#36" title="goto source code">[src]</a></div><a href="#impl-PartialEq%3CVerifyFailure%3E" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>&lt;<a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a>&gt; for <a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.eq" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#36" title="goto source code">[src]</a></div><a href="#method.eq" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fnname">eq</a>(&amp;self, other: &amp;<a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></div></summary><div class='docblock'><p>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.ne" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#33" title="goto source code">[src]</a></div><a href="#method.ne" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fnname">ne</a>(&amp;self, other: &amp;<a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></div></summary><div class='docblock'><p>This method tests for <code>!=</code>.</p>
</div></details></div></details><div id="impl-StructuralPartialEq" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#33" title="goto source code">[src]</a></div><a href="#impl-StructuralPartialEq" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><div id="impl-RefUnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-RefUnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div><div id="impl-Send" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Send" class="anchor"></a><h3 class="code-header in-band">impl <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="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div><div id="impl-Sync" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Sync" class="anchor"></a><h3 class="code-header in-band">impl <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="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div><div id="impl-Unpin" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Unpin" class="anchor"></a><h3 class="code-header in-band">impl <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="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div><div id="impl-UnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-UnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Any" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#132-136" title="goto source code">[src]</a></div><a href="#impl-Any" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.type_id" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#133" title="goto source code">[src]</a></div><a href="#method.type_id" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></div></summary><div class='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.ne" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#36" title="goto source code">[src]</a></div><a href="#method.ne" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fnname">ne</a>(&amp;self, other: &amp;<a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></div></summary><div class='docblock'><p>This method tests for <code>!=</code>.</p>
</div></details></div></details><div id="impl-StructuralPartialEq" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#36" title="goto source code">[src]</a></div><a href="#impl-StructuralPartialEq" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><div id="impl-RefUnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-RefUnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div><div id="impl-Send" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Send" class="anchor"></a><h3 class="code-header in-band">impl <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="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div><div id="impl-Sync" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Sync" class="anchor"></a><h3 class="code-header in-band">impl <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="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div><div id="impl-Unpin" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Unpin" class="anchor"></a><h3 class="code-header in-band">impl <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="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div><div id="impl-UnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-UnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a></h3></div></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Any" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#132-136" title="goto source code">[src]</a></div><a href="#impl-Any" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.type_id" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#133" title="goto source code">[src]</a></div><a href="#method.type_id" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></div></summary><div class='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Borrow%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#208-213" title="goto source code">[src]</a></div><a href="#impl-Borrow%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210" title="goto source code">[src]</a></div><a href="#method.borrow" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</h4></div></summary><div class='docblock'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-BorrowMut%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#216-220" title="goto source code">[src]</a></div><a href="#impl-BorrowMut%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow_mut" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217" title="goto source code">[src]</a></div><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</h4></div></summary><div class='docblock'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Conv" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Conv" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; Conv for T</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.conv" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.conv" class="anchor"></a><h4 class="code-header">fn <a href="#method.conv" class="fnname">conv</a>&lt;T&gt;(self) -&gt; T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,&nbsp;</span></h4></div></summary><div class='docblock'><p>Converts <code>self</code> into <code>T</code> using <code>Into&lt;T&gt;</code>. <a href="#method.conv">Read more</a></p>

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../../halo2/dev/struct.CircuitGates.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../../halo2/dev/struct.CircuitGates.html">../../../halo2/dev/struct.CircuitGates.html</a>...</p>
<script>location.replace("../../../halo2/dev/struct.CircuitGates.html" + location.search + location.hash);</script>
</body>
</html>

View File

@ -13,13 +13,14 @@
});
});
</script>
<style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Module dev</h2><div class="sidebar-elems"><div class="block items"><ul><li><a href="#modules">Modules</a></li><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li></ul></div><div id="sidebar-vars" data-name="dev" data-ty="mod" data-relpath="./"></div><script defer src="./sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input"name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Module <a href="../index.html">halo2</a>::<wbr><a class="mod" href="#">dev</a><button id="copy-path" onclick="copy_path(this)" title="copy path"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item import" title="Copy item import to clipboard"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/dev.rs.html#1-918" title="goto source code">[src]</a></span></h1><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Tools for developing circuits.</p>
<style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Module dev</h2><div class="sidebar-elems"><div class="block items"><ul><li><a href="#modules">Modules</a></li><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li></ul></div><div id="sidebar-vars" data-name="dev" data-ty="mod" data-relpath="./"></div><script defer src="./sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input"name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Module <a href="../index.html">halo2</a>::<wbr><a class="mod" href="#">dev</a><button id="copy-path" onclick="copy_path(this)" title="copy path"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item import" title="Copy item import to clipboard"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/dev.rs.html#1-921" title="goto source code">[src]</a></span></h1><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Tools for developing circuits.</p>
</div></details><h2 id="reexports" class="section-header"><a href="#reexports">Re-exports</a></h2>
<div class="item-table"><div class="item-left import-item"><code>pub use cost::<a class="struct" href="cost/struct.CircuitCost.html" title="struct halo2::dev::cost::CircuitCost">CircuitCost</a>;</code></div><div class="item-right docblock-short"></div></div><h2 id="modules" class="section-header"><a href="#modules">Modules</a></h2>
<div class="item-table"><div class="item-left module-item"><a class="mod" href="cost/index.html" title="halo2::dev::cost mod">cost</a></div><div class="item-right docblock-short"><p>Developer tools for investigating the cost of a circuit.</p>
</div><div class="item-left module-item"><a class="mod" href="metadata/index.html" title="halo2::dev::metadata mod">metadata</a></div><div class="item-right docblock-short"><p>Metadata about circuits.</p>
</div></div><h2 id="structs" class="section-header"><a href="#structs">Structs</a></h2>
<div class="item-table"><div class="item-left module-item"><a class="struct" href="struct.MockProver.html" title="halo2::dev::MockProver struct">MockProver</a></div><div class="item-right docblock-short"><p>A test prover for debugging circuits.</p>
<div class="item-table"><div class="item-left module-item"><a class="struct" href="struct.CircuitGates.html" title="halo2::dev::CircuitGates struct">CircuitGates</a></div><div class="item-right docblock-short"><p>A struct for collecting and displaying the gates within a circuit.</p>
</div><div class="item-left module-item"><a class="struct" href="struct.MockProver.html" title="halo2::dev::MockProver struct">MockProver</a></div><div class="item-right docblock-short"><p>A test prover for debugging circuits.</p>
</div></div><h2 id="enums" class="section-header"><a href="#enums">Enums</a></h2>
<div class="item-table"><div class="item-left module-item"><a class="enum" href="enum.VerifyFailure.html" title="halo2::dev::VerifyFailure enum">VerifyFailure</a></div><div class="item-right docblock-short"><p>The reasons why a particular circuit is not satisfied.</p>
</div></div></section><section id="search" class="content hidden"></section><div id="rustdoc-vars" data-root-path="../../" data-current-crate="halo2" data-search-index-js="../../search-index.js" data-search-js="../../search.js"></div>

View File

@ -1 +1 @@
initSidebarItems({"enum":[["VerifyFailure","The reasons why a particular circuit is not satisfied."]],"mod":[["cost","Developer tools for investigating the cost of a circuit."],["metadata","Metadata about circuits."]],"struct":[["MockProver","A test prover for debugging circuits."]]});
initSidebarItems({"enum":[["VerifyFailure","The reasons why a particular circuit is not satisfied."]],"mod":[["cost","Developer tools for investigating the cost of a circuit."],["metadata","Metadata about circuits."]],"struct":[["CircuitGates","A struct for collecting and displaying the gates within a circuit."],["MockProver","A test prover for debugging circuits."]]});

View File

@ -0,0 +1,152 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A struct for collecting and displaying the gates within a circuit."><meta name="keywords" content="rust, rustlang, rust-lang, CircuitGates"><title>CircuitGates in halo2::dev - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings" ></script><script src="../../storage.js"></script><script src="../../crates.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg"><link rel="alternate icon" type="image/png" href="../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/katex.min.css" integrity="sha384-9eLZqc9ds8eNjO3TmqPeYcDj8n+Qfa4nuSiGYa6DjLNcv9BtN69ZIulL9+8CqC9Y" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/katex.min.js" integrity="sha384-K3vbOmF2BtaVai+Qk37uypf7VrgBubhQreNQe9aGsz9lB63dIFiQVlJbr92dw2Lx" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/contrib/auto-render.min.js" integrity="sha384-kmZOZB5ObwgQnS/DuDg6TScgOiWWBiVt0plIRkZCmE6rDZGrEOQeHM5PcHi+nyqe" crossorigin="anonymous"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
renderMathInElement(document.body, {
delimiters: [
{left: "$$", right: "$$", display: true},
{left: "\\(", right: "\\)", display: false},
{left: "$", right: "$", display: false},
{left: "\\[", right: "\\]", display: true}
]
});
});
</script>
<style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct CircuitGates</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#implementations">Methods</a></h3><div class="sidebar-links"><a href="#method.collect">collect</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Debug">Debug</a><a href="#impl-Display">Display</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-ToString">ToString</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">dev</a></h2><div id="sidebar-vars" data-name="CircuitGates" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input"name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2</a>::<wbr><a href="index.html">dev</a>::<wbr><a class="struct" href="#">CircuitGates</a><button id="copy-path" onclick="copy_path(this)" title="copy path"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item import" title="Copy item import to clipboard"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/dev/gates.rs.html#87-92" title="goto source code">[src]</a></span></h1><div class="docblock type-decl"><pre class="rust struct">pub struct CircuitGates { /* fields omitted */ }</pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A struct for collecting and displaying the gates within a circuit.</p>
<h1 id="examples" class="section-header"><a href="#examples">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">ff::Field</span>;
<span class="kw">use</span> <span class="ident">halo2</span>::{
<span class="ident">circuit</span>::{<span class="ident">Layouter</span>, <span class="ident">SimpleFloorPlanner</span>},
<span class="ident">dev::CircuitGates</span>,
<span class="ident">plonk</span>::{<span class="ident">Circuit</span>, <span class="ident">ConstraintSystem</span>, <span class="ident">Error</span>},
<span class="ident">poly::Rotation</span>,
};
<span class="kw">use</span> <span class="ident">pasta_curves::pallas</span>;
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Copy</span>, <span class="ident">Clone</span>)]</span>
<span class="kw">struct</span> <span class="ident">MyConfig</span> {}
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Default</span>)]</span>
<span class="kw">struct</span> <span class="ident">MyCircuit</span> {}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">F</span>: <span class="ident">Field</span><span class="op">&gt;</span> <span class="ident">Circuit</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">MyCircuit</span> {
<span class="kw">type</span> <span class="ident">Config</span> <span class="op">=</span> <span class="ident">MyConfig</span>;
<span class="kw">type</span> <span class="ident">FloorPlanner</span> <span class="op">=</span> <span class="ident">SimpleFloorPlanner</span>;
<span class="kw">fn</span> <span class="ident">without_witnesses</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="self">Self</span> {
<span class="self">Self</span><span class="ident">::default</span>()
}
<span class="kw">fn</span> <span class="ident">configure</span>(<span class="ident">meta</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">ConstraintSystem</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">MyConfig</span> {
<span class="kw">let</span> <span class="ident">a</span> <span class="op">=</span> <span class="ident">meta</span>.<span class="ident">advice_column</span>();
<span class="kw">let</span> <span class="ident">b</span> <span class="op">=</span> <span class="ident">meta</span>.<span class="ident">advice_column</span>();
<span class="kw">let</span> <span class="ident">c</span> <span class="op">=</span> <span class="ident">meta</span>.<span class="ident">advice_column</span>();
<span class="kw">let</span> <span class="ident">s</span> <span class="op">=</span> <span class="ident">meta</span>.<span class="ident">selector</span>();
<span class="ident">meta</span>.<span class="ident">create_gate</span>(<span class="string">&quot;R1CS constraint&quot;</span>, <span class="op">|</span><span class="ident">meta</span><span class="op">|</span> {
<span class="kw">let</span> <span class="ident">a</span> <span class="op">=</span> <span class="ident">meta</span>.<span class="ident">query_advice</span>(<span class="ident">a</span>, <span class="ident">Rotation::cur</span>());
<span class="kw">let</span> <span class="ident">b</span> <span class="op">=</span> <span class="ident">meta</span>.<span class="ident">query_advice</span>(<span class="ident">b</span>, <span class="ident">Rotation::cur</span>());
<span class="kw">let</span> <span class="ident">c</span> <span class="op">=</span> <span class="ident">meta</span>.<span class="ident">query_advice</span>(<span class="ident">c</span>, <span class="ident">Rotation::cur</span>());
<span class="kw">let</span> <span class="ident">s</span> <span class="op">=</span> <span class="ident">meta</span>.<span class="ident">query_selector</span>(<span class="ident">s</span>);
<span class="prelude-val">Some</span>((<span class="string">&quot;R1CS&quot;</span>, <span class="ident">s</span> <span class="op">*</span> (<span class="ident">a</span> <span class="op">*</span> <span class="ident">b</span> <span class="op">-</span> <span class="ident">c</span>)))
});
<span class="comment">// We aren&#39;t using this circuit for anything in this example.</span>
<span class="ident">MyConfig</span> {}
}
<span class="kw">fn</span> <span class="ident">synthesize</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="kw">_</span>: <span class="ident">MyConfig</span>, <span class="kw">_</span>: <span class="kw">impl</span> <span class="ident">Layouter</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="comment">// Gates are known at configure time; it doesn&#39;t matter how we use them.</span>
<span class="prelude-val">Ok</span>(())
}
}
<span class="kw">let</span> <span class="ident">gates</span> <span class="op">=</span> <span class="ident">CircuitGates::collect</span>::<span class="op">&lt;</span><span class="ident">pallas::Base</span>, <span class="ident">MyCircuit</span><span class="op">&gt;</span>();
<span class="macro">assert_eq!</span>(
<span class="macro">format!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">gates</span>),
<span class="string">r#####&quot;R1CS constraint:
- R1CS:
S0 * (A0@0 * A1@0 - A2@0)
Total gates: 1
Total custom constraint polynomials: 1
Total negations: 1
Total additions: 1
Total multiplications: 2
&quot;#####</span>,
);</pre></div>
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev/gates.rs.html#94-199" title="goto source code">[src]</a></div><a href="#impl" class="anchor"></a><h3 class="code-header in-band">impl <a class="struct" href="struct.CircuitGates.html" title="struct halo2::dev::CircuitGates">CircuitGates</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.collect" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev/gates.rs.html#96-198" title="goto source code">[src]</a></div><a href="#method.collect" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.collect" class="fnname">collect</a>&lt;F:&nbsp;PrimeField, C:&nbsp;<a class="trait" href="../plonk/trait.Circuit.html" title="trait halo2::plonk::Circuit">Circuit</a>&lt;F&gt;&gt;() -&gt; Self</h4></div></summary><div class="docblock"><p>Collects the gates from within the circuit.</p>
</div></details></div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev/gates.rs.html#86" title="goto source code">[src]</a></div><a href="#impl-Debug" 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.CircuitGates.html" title="struct halo2::dev::CircuitGates">CircuitGates</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev/gates.rs.html#86" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Display" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev/gates.rs.html#201-227" title="goto source code">[src]</a></div><a href="#impl-Display" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="struct.CircuitGates.html" title="struct halo2::dev::CircuitGates">CircuitGates</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt-1" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev/gates.rs.html#202-226" title="goto source code">[src]</a></div><a href="#method.fmt-1" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.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="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="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>&gt;</h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></p>
</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><div id="impl-RefUnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-RefUnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.CircuitGates.html" title="struct halo2::dev::CircuitGates">CircuitGates</a></h3></div><div id="impl-Send" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Send" class="anchor"></a><h3 class="code-header in-band">impl <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.CircuitGates.html" title="struct halo2::dev::CircuitGates">CircuitGates</a></h3></div><div id="impl-Sync" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Sync" class="anchor"></a><h3 class="code-header in-band">impl <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.CircuitGates.html" title="struct halo2::dev::CircuitGates">CircuitGates</a></h3></div><div id="impl-Unpin" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Unpin" class="anchor"></a><h3 class="code-header in-band">impl <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.CircuitGates.html" title="struct halo2::dev::CircuitGates">CircuitGates</a></h3></div><div id="impl-UnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-UnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.CircuitGates.html" title="struct halo2::dev::CircuitGates">CircuitGates</a></h3></div></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Any" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#132-136" title="goto source code">[src]</a></div><a href="#impl-Any" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.type_id" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#133" title="goto source code">[src]</a></div><a href="#method.type_id" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></div></summary><div class='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Borrow%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#208-213" title="goto source code">[src]</a></div><a href="#impl-Borrow%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210" title="goto source code">[src]</a></div><a href="#method.borrow" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</h4></div></summary><div class='docblock'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-BorrowMut%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#216-220" title="goto source code">[src]</a></div><a href="#impl-BorrowMut%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow_mut" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217" title="goto source code">[src]</a></div><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</h4></div></summary><div class='docblock'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Conv" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Conv" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; Conv for T</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.conv" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.conv" class="anchor"></a><h4 class="code-header">fn <a href="#method.conv" class="fnname">conv</a>&lt;T&gt;(self) -&gt; T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,&nbsp;</span></h4></div></summary><div class='docblock'><p>Converts <code>self</code> into <code>T</code> using <code>Into&lt;T&gt;</code>. <a href="#method.conv">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-FmtForward" class="impl has-srclink"><div class="rightside"></div><a href="#impl-FmtForward" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; FmtForward for T</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt_binary" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.fmt_binary" class="anchor"></a><h4 class="code-header">fn <a href="#method.fmt_binary" class="fnname">fmt_binary</a>(self) -&gt; FmtBinary&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html" title="trait core::fmt::Binary">Binary</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Causes <code>self</code> to use its <code>Binary</code> implementation when <code>Debug</code>-formatted.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt_display" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.fmt_display" class="anchor"></a><h4 class="code-header">fn <a href="#method.fmt_display" class="fnname">fmt_display</a>(self) -&gt; FmtDisplay&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Causes <code>self</code> to use its <code>Display</code> implementation when
<code>Debug</code>-formatted. <a href="#method.fmt_display">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt_lower_exp" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.fmt_lower_exp" class="anchor"></a><h4 class="code-header">fn <a href="#method.fmt_lower_exp" class="fnname">fmt_lower_exp</a>(self) -&gt; FmtLowerExp&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html" title="trait core::fmt::LowerExp">LowerExp</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Causes <code>self</code> to use its <code>LowerExp</code> implementation when
<code>Debug</code>-formatted. <a href="#method.fmt_lower_exp">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt_lower_hex" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.fmt_lower_hex" class="anchor"></a><h4 class="code-header">fn <a href="#method.fmt_lower_hex" class="fnname">fmt_lower_hex</a>(self) -&gt; FmtLowerHex&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html" title="trait core::fmt::LowerHex">LowerHex</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Causes <code>self</code> to use its <code>LowerHex</code> implementation when
<code>Debug</code>-formatted. <a href="#method.fmt_lower_hex">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt_octal" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.fmt_octal" class="anchor"></a><h4 class="code-header">fn <a href="#method.fmt_octal" class="fnname">fmt_octal</a>(self) -&gt; FmtOctal&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html" title="trait core::fmt::Octal">Octal</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Causes <code>self</code> to use its <code>Octal</code> implementation when <code>Debug</code>-formatted.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt_pointer" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.fmt_pointer" class="anchor"></a><h4 class="code-header">fn <a href="#method.fmt_pointer" class="fnname">fmt_pointer</a>(self) -&gt; FmtPointer&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html" title="trait core::fmt::Pointer">Pointer</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Causes <code>self</code> to use its <code>Pointer</code> implementation when
<code>Debug</code>-formatted. <a href="#method.fmt_pointer">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt_upper_exp" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.fmt_upper_exp" class="anchor"></a><h4 class="code-header">fn <a href="#method.fmt_upper_exp" class="fnname">fmt_upper_exp</a>(self) -&gt; FmtUpperExp&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html" title="trait core::fmt::UpperExp">UpperExp</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Causes <code>self</code> to use its <code>UpperExp</code> implementation when
<code>Debug</code>-formatted. <a href="#method.fmt_upper_exp">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt_upper_hex" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.fmt_upper_hex" class="anchor"></a><h4 class="code-header">fn <a href="#method.fmt_upper_hex" class="fnname">fmt_upper_hex</a>(self) -&gt; FmtUpperHex&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html" title="trait core::fmt::UpperHex">UpperHex</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Causes <code>self</code> to use its <code>UpperHex</code> implementation when
<code>Debug</code>-formatted. <a href="#method.fmt_upper_hex">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#546-550" title="goto source code">[src]</a></div><a href="#impl-From%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#547" title="goto source code">[src]</a></div><a href="#method.from" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(t: T) -&gt; T</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Into%3CU%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#535-542" title="goto source code">[src]</a></div><a href="#impl-Into%3CU%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.into" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#539" title="goto source code">[src]</a></div><a href="#method.into" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fnname">into</a>(self) -&gt; U</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Pipe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Pipe" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; Pipe for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe" class="fnname">pipe</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(Self) -&gt; R) -&gt; R</h4></div></summary><div class='docblock'><p>Pipes by value. This is generally the method you want to use. <a href="#method.pipe">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe_ref" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe_ref" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe_ref" class="fnname">pipe_ref</a>&lt;'a, R&gt;(&amp;'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a </a>Self) -&gt; R) -&gt; R <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,&nbsp;</span></h4></div></summary><div class='docblock'><p>Borrows <code>self</code> and passes that borrow into the pipe function. <a href="#method.pipe_ref">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe_ref_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe_ref_mut" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe_ref_mut" class="fnname">pipe_ref_mut</a>&lt;'a, R&gt;(&amp;'a mut self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut </a>Self) -&gt; R) -&gt; R <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,&nbsp;</span></h4></div></summary><div class='docblock'><p>Mutably borrows <code>self</code> and passes that borrow into the pipe function. <a href="#method.pipe_ref_mut">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe_borrow" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe_borrow" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe_borrow" class="fnname">pipe_borrow</a>&lt;'a, B, R&gt;(&amp;'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a </a>B) -&gt; R) -&gt; R <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Borrows <code>self</code>, then passes <code>self.borrow()</code> into the pipe function. <a href="#method.pipe_borrow">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe_borrow_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe_borrow_mut" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe_borrow_mut" class="fnname">pipe_borrow_mut</a>&lt;'a, B, R&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut </a>B) -&gt; R<br>) -&gt; R <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Mutably borrows <code>self</code>, then passes <code>self.borrow_mut()</code> into the pipe
function. <a href="#method.pipe_borrow_mut">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe_as_ref" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe_as_ref" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe_as_ref" class="fnname">pipe_as_ref</a>&lt;'a, U, R&gt;(&amp;'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a </a>U) -&gt; R) -&gt; R <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;U&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,<br>&nbsp;&nbsp;&nbsp;&nbsp;U: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Borrows <code>self</code>, then passes <code>self.as_ref()</code> into the pipe function.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe_as_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe_as_mut" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe_as_mut" class="fnname">pipe_as_mut</a>&lt;'a, U, R&gt;(&amp;'a mut self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut </a>U) -&gt; R) -&gt; R <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a>&lt;U&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,<br>&nbsp;&nbsp;&nbsp;&nbsp;U: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Mutably borrows <code>self</code>, then passes <code>self.as_mut()</code> into the pipe
function. <a href="#method.pipe_as_mut">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe_deref" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe_deref" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe_deref" class="fnname">pipe_deref</a>&lt;'a, T, R&gt;(&amp;'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a </a>T) -&gt; R) -&gt; R <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = T&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,&nbsp;</span></h4></div></summary><div class='docblock'><p>Borrows <code>self</code>, then passes <code>self.deref()</code> into the pipe function.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pipe_deref_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.pipe_deref_mut" class="anchor"></a><h4 class="code-header">fn <a href="#method.pipe_deref_mut" class="fnname">pipe_deref_mut</a>&lt;'a, T, R&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut </a>T) -&gt; R<br>) -&gt; R <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a>&lt;Target = T&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,&nbsp;</span></h4></div></summary><div class='docblock'><p>Mutably borrows <code>self</code>, then passes <code>self.deref_mut()</code> into the pipe
function. <a href="#method.pipe_deref_mut">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Pointable" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Pointable" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; Pointable for T</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><div id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><div class="rightside"></div><a href="#associatedconstant.ALIGN" class="anchor"></a><h4 class="code-header">pub const <a href="#associatedconstant.ALIGN" class="constant"><b>ALIGN</b></a>: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></div></summary><div class='docblock'><p>The alignment of pointer.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="associatedtype.Init" class="type trait-impl has-srclink"><a href="#associatedtype.Init" class="anchor"></a><h4 class="code-header">type <a href="#associatedtype.Init" class="type">Init</a> = T</h4></div></summary><div class='docblock'><p>The type for initializers.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.init" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.init" class="anchor"></a><h4 class="code-header">pub unsafe fn <a class="fnname">init</a>(init: &lt;T as Pointable&gt;::Init) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></div></summary><div class='docblock'><p>Initializes a with the given initializer. <a href="#tymethod.init">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.deref" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.deref" class="anchor"></a><h4 class="code-header">pub unsafe fn <a class="fnname">deref</a>&lt;'a&gt;(ptr: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a </a>T</h4></div></summary><div class='docblock'><p>Dereferences the given pointer. <a href="#tymethod.deref">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.deref_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.deref_mut" class="anchor"></a><h4 class="code-header">pub unsafe fn <a class="fnname">deref_mut</a>&lt;'a&gt;(ptr: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut </a>T</h4></div></summary><div class='docblock'><p>Mutably dereferences the given pointer. <a href="#tymethod.deref_mut">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.drop" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.drop" class="anchor"></a><h4 class="code-header">pub unsafe fn <a class="fnname">drop</a>(ptr: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h4></div></summary><div class='docblock'><p>Drops the object pointed to by the given pointer. <a href="#tymethod.drop">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Tap" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Tap" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; Tap for T</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap" class="fnname">tap</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Self)) -&gt; Self</h4></div></summary><div class='docblock'><p>Immutable access to a value. <a href="#method.tap">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_mut" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_mut" class="fnname">tap_mut</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>Self)) -&gt; Self</h4></div></summary><div class='docblock'><p>Mutable access to a value. <a href="#method.tap_mut">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_borrow" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_borrow" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_borrow" class="fnname">tap_borrow</a>&lt;B&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>B)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Immutable access to the <code>Borrow&lt;B&gt;</code> of a value. <a href="#method.tap_borrow">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_borrow_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_borrow_mut" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_borrow_mut" class="fnname">tap_borrow_mut</a>&lt;B&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>B)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Mutable access to the <code>BorrowMut&lt;B&gt;</code> of a value. <a href="#method.tap_borrow_mut">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_ref" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_ref" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_ref" class="fnname">tap_ref</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>R)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;R&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Immutable access to the <code>AsRef&lt;R&gt;</code> view of a value. <a href="#method.tap_ref">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_ref_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_ref_mut" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_ref_mut" class="fnname">tap_ref_mut</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>R)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a>&lt;R&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Mutable access to the <code>AsMut&lt;R&gt;</code> view of a value. <a href="#method.tap_ref_mut">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_deref" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_deref" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_deref" class="fnname">tap_deref</a>&lt;T&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = T&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Immutable access to the <code>Deref::Target</code> of a value. <a href="#method.tap_deref">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_deref_mut" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_deref_mut" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_deref_mut" class="fnname">tap_deref_mut</a>&lt;T&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a>&lt;Target = T&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Mutable access to the <code>Deref::Target</code> of a value. <a href="#method.tap_deref_mut">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_dbg" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_dbg" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_dbg" class="fnname">tap_dbg</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Self)) -&gt; Self</h4></div></summary><div class='docblock'><p>Calls <code>.tap()</code> only in debug builds, and is erased in release builds.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_mut_dbg" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_mut_dbg" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_mut_dbg" class="fnname">tap_mut_dbg</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>Self)) -&gt; Self</h4></div></summary><div class='docblock'><p>Calls <code>.tap_mut()</code> only in debug builds, and is erased in release
builds. <a href="#method.tap_mut_dbg">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_borrow_dbg" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_borrow_dbg" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_borrow_dbg" class="fnname">tap_borrow_dbg</a>&lt;B&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>B)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Calls <code>.tap_borrow()</code> only in debug builds, and is erased in release
builds. <a href="#method.tap_borrow_dbg">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_borrow_mut_dbg" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_borrow_mut_dbg" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_borrow_mut_dbg" class="fnname">tap_borrow_mut_dbg</a>&lt;B&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>B)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Calls <code>.tap_borrow_mut()</code> only in debug builds, and is erased in release
builds. <a href="#method.tap_borrow_mut_dbg">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_ref_dbg" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_ref_dbg" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_ref_dbg" class="fnname">tap_ref_dbg</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>R)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;R&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Calls <code>.tap_ref()</code> only in debug builds, and is erased in release
builds. <a href="#method.tap_ref_dbg">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_ref_mut_dbg" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_ref_mut_dbg" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_ref_mut_dbg" class="fnname">tap_ref_mut_dbg</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>R)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a>&lt;R&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Calls <code>.tap_ref_mut()</code> only in debug builds, and is erased in release
builds. <a href="#method.tap_ref_mut_dbg">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_deref_dbg" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_deref_dbg" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_deref_dbg" class="fnname">tap_deref_dbg</a>&lt;T&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = T&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Calls <code>.tap_deref()</code> only in debug builds, and is erased in release
builds. <a href="#method.tap_deref_dbg">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.tap_deref_mut_dbg" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.tap_deref_mut_dbg" class="anchor"></a><h4 class="code-header">fn <a href="#method.tap_deref_mut_dbg" class="fnname">tap_deref_mut_dbg</a>&lt;T&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T)) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a>&lt;Target = T&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h4></div></summary><div class='docblock'><p>Calls <code>.tap_deref_mut()</code> only in debug builds, and is erased in release
builds. <a href="#method.tap_deref_mut_dbg">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-ToString" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2369-2383" title="goto source code">[src]</a></div><a href="#impl-ToString" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> 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/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.to_string" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2375" title="goto source code">[src]</a></div><a href="#method.to_string" class="anchor"></a><h4 class="code-header">pub default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fnname">to_string</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></div></summary><div class='docblock'><p>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-TryConv" class="impl has-srclink"><div class="rightside"></div><a href="#impl-TryConv" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; TryConv for T</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.try_conv" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.try_conv" class="anchor"></a><h4 class="code-header">fn <a href="#method.try_conv" class="fnname">try_conv</a>&lt;T&gt;(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, Self::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" title="type core::convert::TryInto::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;T&gt;,&nbsp;</span></h4></div></summary><div class='docblock'><p>Attempts to convert <code>self</code> into <code>T</code> using <code>TryInto&lt;T&gt;</code>. <a href="#method.try_conv">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-TryFrom%3CU%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#583-592" title="goto source code">[src]</a></div><a href="#impl-TryFrom%3CU%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><div id="associatedtype.Error" class="type trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="type">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></div></summary><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.try_from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#589" title="goto source code">[src]</a></div><a href="#method.try_from" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fnname">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-TryInto%3CU%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#569-578" title="goto source code">[src]</a></div><a href="#impl-TryInto%3CU%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><div id="associatedtype.Error-1" class="type trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="type">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></div></summary><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.try_into" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#575" title="goto source code">[src]</a></div><a href="#method.try_into" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fnname">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-VZip%3CV%3E" class="impl has-srclink"><div class="rightside"></div><a href="#impl-VZip%3CV%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;V, T&gt; VZip&lt;V&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: MultiLane&lt;T&gt;,&nbsp;</span></h3></div></summary><div class="impl-items"><div id="method.vzip" class="method trait-impl has-srclink"><div class="rightside"></div><a href="#method.vzip" class="anchor"></a><h4 class="code-header">pub fn <a class="fnname">vzip</a>(self) -&gt; V</h4></div></div></details></div></section><section id="search" class="content hidden"></section><div id="rustdoc-vars" data-root-path="../../" data-current-crate="halo2" data-search-index-js="../../search-index.js" data-search-js="../../search.js"></div>
<script src="../../main.js"></script>
</body></html>

View File

@ -13,7 +13,7 @@
});
});
</script>
<style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct MockProver</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#implementations">Methods</a></h3><div class="sidebar-links"><a href="#method.run">run</a><a href="#method.verify">verify</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Assignment%3CF%3E">Assignment&lt;F&gt;</a><a href="#impl-Debug">Debug</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">dev</a></h2><div id="sidebar-vars" data-name="MockProver" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input"name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2</a>::<wbr><a href="index.html">dev</a>::<wbr><a class="struct" href="#">MockProver</a><button id="copy-path" onclick="copy_path(this)" title="copy path"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item import" title="Copy item import to clipboard"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/dev.rs.html#324-347" title="goto source code">[src]</a></span></h1><div class="docblock type-decl"><pre class="rust struct">pub struct MockProver&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Group.html" title="trait halo2::arithmetic::Group">Group</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; { /* fields omitted */ }</pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A test prover for debugging circuits.</p>
<style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><h2 class="location">Struct MockProver</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#implementations">Methods</a></h3><div class="sidebar-links"><a href="#method.run">run</a><a href="#method.verify">verify</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Assignment%3CF%3E">Assignment&lt;F&gt;</a><a href="#impl-Debug">Debug</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-Conv">Conv</a><a href="#impl-FmtForward">FmtForward</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-Pipe">Pipe</a><a href="#impl-Pointable">Pointable</a><a href="#impl-Tap">Tap</a><a href="#impl-TryConv">TryConv</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a><a href="#impl-VZip%3CV%3E">VZip&lt;V&gt;</a></div></div><h2 class="location">Other items in<br><a href="../index.html">halo2</a>::<wbr><a href="index.html">dev</a></h2><div id="sidebar-vars" data-name="MockProver" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input"name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">halo2</a>::<wbr><a href="index.html">dev</a>::<wbr><a class="struct" href="#">MockProver</a><button id="copy-path" onclick="copy_path(this)" title="copy path"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item import" title="Copy item import to clipboard"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/halo2/dev.rs.html#327-350" title="goto source code">[src]</a></span></h1><div class="docblock type-decl"><pre class="rust struct">pub struct MockProver&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Group.html" title="trait halo2::arithmetic::Group">Group</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; { /* fields omitted */ }</pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A test prover for debugging circuits.</p>
<p>The normal proving process, when applied to a buggy circuit implementation, might
return proofs that do not validate when they should, but it cant indicate anything
other than “something is invalid”. <code>MockProver</code> can be used to figure out <em>why</em> these
@ -108,20 +108,20 @@ then checks every constraint manually.</p>
<span class="ident">row</span>: <span class="number">0</span>
}])
);</pre></div>
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#494-834" title="goto source code">[src]</a></div><a href="#impl" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.FieldExt.html" title="trait halo2::arithmetic::FieldExt">FieldExt</a>&gt; <a class="struct" href="struct.MockProver.html" title="struct halo2::dev::MockProver">MockProver</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.run" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#497-574" title="goto source code">[src]</a></div><a href="#method.run" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.run" class="fnname">run</a>&lt;ConcreteCircuit:&nbsp;<a class="trait" href="../plonk/trait.Circuit.html" title="trait halo2::plonk::Circuit">Circuit</a>&lt;F&gt;&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;k: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;circuit: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>ConcreteCircuit, <br>&nbsp;&nbsp;&nbsp;&nbsp;instance: <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="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</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;Self, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Runs a synthetic keygen-and-prove operation on the given circuit, collecting data
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#497-837" title="goto source code">[src]</a></div><a href="#impl" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.FieldExt.html" title="trait halo2::arithmetic::FieldExt">FieldExt</a>&gt; <a class="struct" href="struct.MockProver.html" title="struct halo2::dev::MockProver">MockProver</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.run" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#500-577" title="goto source code">[src]</a></div><a href="#method.run" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.run" class="fnname">run</a>&lt;ConcreteCircuit:&nbsp;<a class="trait" href="../plonk/trait.Circuit.html" title="trait halo2::plonk::Circuit">Circuit</a>&lt;F&gt;&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;k: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;circuit: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>ConcreteCircuit, <br>&nbsp;&nbsp;&nbsp;&nbsp;instance: <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="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</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;Self, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class="docblock"><p>Runs a synthetic keygen-and-prove operation on the given circuit, collecting data
about the constraints and their assignments.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.verify" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#578-833" title="goto source code">[src]</a></div><a href="#method.verify" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.verify" class="fnname">verify</a>(&amp;self) -&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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a>&gt;&gt;</h4></div></summary><div class="docblock"><p>Returns <code>Ok(())</code> if this <code>MockProver</code> is satisfied, or a list of errors indicating
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.verify" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#581-836" title="goto source code">[src]</a></div><a href="#method.verify" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.verify" class="fnname">verify</a>(&amp;self) -&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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.VerifyFailure.html" title="enum halo2::dev::VerifyFailure">VerifyFailure</a>&gt;&gt;</h4></div></summary><div class="docblock"><p>Returns <code>Ok(())</code> if this <code>MockProver</code> is satisfied, or a list of errors indicating
the reasons that the circuit is not satisfied.</p>
</div></details></div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Assignment%3CF%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#349-492" title="goto source code">[src]</a></div><a href="#impl-Assignment%3CF%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a> + <a class="trait" href="../arithmetic/trait.Group.html" title="trait halo2::arithmetic::Group">Group</a>&gt; <a class="trait" href="../plonk/trait.Assignment.html" title="trait halo2::plonk::Assignment">Assignment</a>&lt;F&gt; for <a class="struct" href="struct.MockProver.html" title="struct halo2::dev::MockProver">MockProver</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.enter_region" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#350-362" title="goto source code">[src]</a></div><a href="#method.enter_region" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#tymethod.enter_region" class="fnname">enter_region</a>&lt;NR, N&gt;(&amp;mut self, name: N) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; NR,&nbsp;</span></h4></div></summary><div class='docblock'><p>Creates a new region and enters into it. <a href="../plonk/trait.Assignment.html#tymethod.enter_region">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.exit_region" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#364-366" title="goto source code">[src]</a></div><a href="#method.exit_region" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#tymethod.exit_region" class="fnname">exit_region</a>(&amp;mut self)</h4></div></summary><div class='docblock'><p>Exits the current region. <a href="../plonk/trait.Assignment.html#tymethod.exit_region">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.enable_selector" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#368-390" title="goto source code">[src]</a></div><a href="#method.enable_selector" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#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;_: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;selector: &amp;<a class="struct" href="../plonk/struct.Selector.html" title="struct halo2::plonk::Selector">Selector</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class='docblock'><p>Enables a selector at the given row.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.query_instance" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#392-402" title="goto source code">[src]</a></div><a href="#method.query_instance" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#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="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Instance.html" title="struct halo2::plonk::Instance">Instance</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;F&gt;, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class='docblock'><p>Queries the cell of an instance column at a particular absolute row. <a href="../plonk/trait.Assignment.html#tymethod.query_instance">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.assign_advice" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#404-433" title="goto source code">[src]</a></div><a href="#method.assign_advice" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#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;_: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Advice.html" title="struct halo2::plonk::Advice">Advice</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;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="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;VR, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;VR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../plonk/enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class='docblock'><p>Assign an advice column value (witness)</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.assign_fixed" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#435-464" title="goto source code">[src]</a></div><a href="#method.assign_fixed" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#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;_: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Fixed.html" title="struct halo2::plonk::Fixed">Fixed</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;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="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;VR, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;VR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../plonk/enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class='docblock'><p>Assign a fixed value</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.copy" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#466-479" title="goto source code">[src]</a></div><a href="#method.copy" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#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="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="enum" href="../plonk/enum.Any.html" title="enum halo2::plonk::Any">Any</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;left_row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;right_column: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="enum" href="../plonk/enum.Any.html" title="enum halo2::plonk::Any">Any</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;right_row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class='docblock'><p>Assign two cells to have the same value</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.push_namespace" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#481-487" title="goto source code">[src]</a></div><a href="#method.push_namespace" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#tymethod.push_namespace" class="fnname">push_namespace</a>&lt;NR, N&gt;(&amp;mut self, _: N) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; NR,&nbsp;</span></h4></div></summary><div class='docblock'><p>Creates a new (sub)namespace and enters into it. <a href="../plonk/trait.Assignment.html#tymethod.push_namespace">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pop_namespace" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#489-491" title="goto source code">[src]</a></div><a href="#method.pop_namespace" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#tymethod.pop_namespace" class="fnname">pop_namespace</a>(&amp;mut self, _: <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. <a href="../plonk/trait.Assignment.html#tymethod.pop_namespace">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#323" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="../arithmetic/trait.Group.html" title="trait halo2::arithmetic::Group">Group</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.MockProver.html" title="struct halo2::dev::MockProver">MockProver</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#323" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Assignment%3CF%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#352-495" title="goto source code">[src]</a></div><a href="#impl-Assignment%3CF%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a> + <a class="trait" href="../arithmetic/trait.Group.html" title="trait halo2::arithmetic::Group">Group</a>&gt; <a class="trait" href="../plonk/trait.Assignment.html" title="trait halo2::plonk::Assignment">Assignment</a>&lt;F&gt; for <a class="struct" href="struct.MockProver.html" title="struct halo2::dev::MockProver">MockProver</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.enter_region" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#353-365" title="goto source code">[src]</a></div><a href="#method.enter_region" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#tymethod.enter_region" class="fnname">enter_region</a>&lt;NR, N&gt;(&amp;mut self, name: N) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; NR,&nbsp;</span></h4></div></summary><div class='docblock'><p>Creates a new region and enters into it. <a href="../plonk/trait.Assignment.html#tymethod.enter_region">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.exit_region" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#367-369" title="goto source code">[src]</a></div><a href="#method.exit_region" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#tymethod.exit_region" class="fnname">exit_region</a>(&amp;mut self)</h4></div></summary><div class='docblock'><p>Exits the current region. <a href="../plonk/trait.Assignment.html#tymethod.exit_region">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.enable_selector" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#371-393" title="goto source code">[src]</a></div><a href="#method.enable_selector" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#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;_: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;selector: &amp;<a class="struct" href="../plonk/struct.Selector.html" title="struct halo2::plonk::Selector">Selector</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class='docblock'><p>Enables a selector at the given row.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.query_instance" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#395-405" title="goto source code">[src]</a></div><a href="#method.query_instance" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#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="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Instance.html" title="struct halo2::plonk::Instance">Instance</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;F&gt;, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class='docblock'><p>Queries the cell of an instance column at a particular absolute row. <a href="../plonk/trait.Assignment.html#tymethod.query_instance">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.assign_advice" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#407-436" title="goto source code">[src]</a></div><a href="#method.assign_advice" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#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;_: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Advice.html" title="struct halo2::plonk::Advice">Advice</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;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="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;VR, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;VR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../plonk/enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class='docblock'><p>Assign an advice column value (witness)</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.assign_fixed" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#438-467" title="goto source code">[src]</a></div><a href="#method.assign_fixed" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#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;_: A, <br>&nbsp;&nbsp;&nbsp;&nbsp;column: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="struct" href="../plonk/struct.Fixed.html" title="struct halo2::plonk::Fixed">Fixed</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;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="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;VR, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;VR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../plonk/enum.Assigned.html" title="enum halo2::plonk::Assigned">Assigned</a>&lt;F&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; AR,<br>&nbsp;&nbsp;&nbsp;&nbsp;AR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,&nbsp;</span></h4></div></summary><div class='docblock'><p>Assign a fixed value</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.copy" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#469-482" title="goto source code">[src]</a></div><a href="#method.copy" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#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="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="enum" href="../plonk/enum.Any.html" title="enum halo2::plonk::Any">Any</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;left_row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;right_column: <a class="struct" href="../plonk/struct.Column.html" title="struct halo2::plonk::Column">Column</a>&lt;<a class="enum" href="../plonk/enum.Any.html" title="enum halo2::plonk::Any">Any</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;right_row: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../plonk/enum.Error.html" title="enum halo2::plonk::Error">Error</a>&gt;</h4></div></summary><div class='docblock'><p>Assign two cells to have the same value</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.push_namespace" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#484-490" title="goto source code">[src]</a></div><a href="#method.push_namespace" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#tymethod.push_namespace" class="fnname">push_namespace</a>&lt;NR, N&gt;(&amp;mut self, _: N) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;NR: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>() -&gt; NR,&nbsp;</span></h4></div></summary><div class='docblock'><p>Creates a new (sub)namespace and enters into it. <a href="../plonk/trait.Assignment.html#tymethod.push_namespace">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.pop_namespace" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#492-494" title="goto source code">[src]</a></div><a href="#method.pop_namespace" class="anchor"></a><h4 class="code-header">fn <a href="../plonk/trait.Assignment.html#tymethod.pop_namespace" class="fnname">pop_namespace</a>(&amp;mut self, _: <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. <a href="../plonk/trait.Assignment.html#tymethod.pop_namespace">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#326" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="../arithmetic/trait.Group.html" title="trait halo2::arithmetic::Group">Group</a> + <a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.MockProver.html" title="struct halo2::dev::MockProver">MockProver</a>&lt;F&gt;</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#326" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><div id="impl-RefUnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-RefUnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.MockProver.html" title="struct halo2::dev::MockProver">MockProver</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/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a>,&nbsp;</span></h3></div><div id="impl-Send" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Send" class="anchor"></a><h3 class="code-header in-band">impl&lt;F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.MockProver.html" title="struct halo2::dev::MockProver">MockProver</a>&lt;F&gt;</h3></div><div id="impl-Sync" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Sync" class="anchor"></a><h3 class="code-header in-band">impl&lt;F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.MockProver.html" title="struct halo2::dev::MockProver">MockProver</a>&lt;F&gt;</h3></div><div id="impl-Unpin" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Unpin" class="anchor"></a><h3 class="code-header in-band">impl&lt;F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.MockProver.html" title="struct halo2::dev::MockProver">MockProver</a>&lt;F&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,&nbsp;</span></h3></div><div id="impl-UnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-UnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl&lt;F&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.MockProver.html" title="struct halo2::dev::MockProver">MockProver</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/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a>,&nbsp;</span></h3></div></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Any" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#132-136" title="goto source code">[src]</a></div><a href="#impl-Any" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.type_id" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#133" title="goto source code">[src]</a></div><a href="#method.type_id" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></div></summary><div class='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Borrow%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#208-213" title="goto source code">[src]</a></div><a href="#impl-Borrow%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210" title="goto source code">[src]</a></div><a href="#method.borrow" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</h4></div></summary><div class='docblock'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-BorrowMut%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#216-220" title="goto source code">[src]</a></div><a href="#impl-BorrowMut%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow_mut" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217" title="goto source code">[src]</a></div><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</h4></div></summary><div class='docblock'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>

View File

@ -41,6 +41,6 @@ for a constraint system.</p>
<p>Not intended for downstream consumption; use <a href="../circuit/trait.Layouter.html#method.namespace"><code>Layouter::namespace</code></a> instead.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="tymethod.pop_namespace" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/plonk/circuit.rs.html#496" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.pop_namespace" class="fnname">pop_namespace</a>(&amp;mut self, gadget_name: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;)</h4></div></summary><div class="docblock"><p>Exits out of the existing namespace.</p>
<p>Not intended for downstream consumption; use <a href="../circuit/trait.Layouter.html#method.namespace"><code>Layouter::namespace</code></a> instead.</p>
</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><div id="impl-Assignment%3CF%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#349-492" title="goto source code">[src]</a></div><a href="#impl-Assignment%3CF%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a> + <a class="trait" href="../arithmetic/trait.Group.html" title="trait halo2::arithmetic::Group">Group</a>&gt; <a class="trait" href="trait.Assignment.html" title="trait halo2::plonk::Assignment">Assignment</a>&lt;F&gt; for <a class="struct" href="../dev/struct.MockProver.html" title="struct halo2::dev::MockProver">MockProver</a>&lt;F&gt;</h3></div></div><script type="text/javascript" src="../../implementors/halo2/plonk/trait.Assignment.js" async></script></section><section id="search" class="content hidden"></section><div id="rustdoc-vars" data-root-path="../../" data-current-crate="halo2" data-search-index-js="../../search-index.js" data-search-js="../../search.js"></div>
</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><div id="impl-Assignment%3CF%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/halo2/dev.rs.html#352-495" title="goto source code">[src]</a></div><a href="#impl-Assignment%3CF%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;F:&nbsp;<a class="trait" href="../arithmetic/trait.Field.html" title="trait halo2::arithmetic::Field">Field</a> + <a class="trait" href="../arithmetic/trait.Group.html" title="trait halo2::arithmetic::Group">Group</a>&gt; <a class="trait" href="trait.Assignment.html" title="trait halo2::plonk::Assignment">Assignment</a>&lt;F&gt; for <a class="struct" href="../dev/struct.MockProver.html" title="struct halo2::dev::MockProver">MockProver</a>&lt;F&gt;</h3></div></div><script type="text/javascript" src="../../implementors/halo2/plonk/trait.Assignment.js" async></script></section><section id="search" class="content hidden"></section><div id="rustdoc-vars" data-root-path="../../" data-current-crate="halo2" data-search-index-js="../../search-index.js" data-search-js="../../search.js"></div>
<script src="../../main.js"></script>
</body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,3 +1,3 @@
(function() {var implementors = {};
implementors["halo2"] = [{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"halo2/dev/metadata/struct.Column.html\" title=\"struct halo2::dev::metadata::Column\">Column</a>","synthetic":false,"types":["halo2::dev::metadata::Column"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"halo2/dev/metadata/struct.Gate.html\" title=\"struct halo2::dev::metadata::Gate\">Gate</a>","synthetic":false,"types":["halo2::dev::metadata::Gate"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"halo2/dev/metadata/struct.Constraint.html\" title=\"struct halo2::dev::metadata::Constraint\">Constraint</a>","synthetic":false,"types":["halo2::dev::metadata::Constraint"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"halo2/dev/metadata/struct.Region.html\" title=\"struct halo2::dev::metadata::Region\">Region</a>","synthetic":false,"types":["halo2::dev::metadata::Region"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"halo2/dev/enum.VerifyFailure.html\" title=\"enum halo2::dev::VerifyFailure\">VerifyFailure</a>","synthetic":false,"types":["halo2::dev::VerifyFailure"]}];
implementors["halo2"] = [{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"halo2/dev/metadata/struct.Column.html\" title=\"struct halo2::dev::metadata::Column\">Column</a>","synthetic":false,"types":["halo2::dev::metadata::Column"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"halo2/dev/metadata/struct.Gate.html\" title=\"struct halo2::dev::metadata::Gate\">Gate</a>","synthetic":false,"types":["halo2::dev::metadata::Gate"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"halo2/dev/metadata/struct.Constraint.html\" title=\"struct halo2::dev::metadata::Constraint\">Constraint</a>","synthetic":false,"types":["halo2::dev::metadata::Constraint"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"halo2/dev/metadata/struct.Region.html\" title=\"struct halo2::dev::metadata::Region\">Region</a>","synthetic":false,"types":["halo2::dev::metadata::Region"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"halo2/dev/struct.CircuitGates.html\" title=\"struct halo2::dev::CircuitGates\">CircuitGates</a>","synthetic":false,"types":["halo2::dev::gates::CircuitGates"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"halo2/dev/enum.VerifyFailure.html\" title=\"enum halo2::dev::VerifyFailure\">VerifyFailure</a>","synthetic":false,"types":["halo2::dev::VerifyFailure"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,3 +1,3 @@
var N = null;var sourcesIndex = {};
sourcesIndex["halo2"] = {"name":"","dirs":[{"name":"circuit","dirs":[{"name":"floor_planner","dirs":[{"name":"v1","files":["strategy.rs"]}],"files":["single_pass.rs","v1.rs"]}],"files":["floor_planner.rs","layouter.rs"]},{"name":"dev","files":["cost.rs","metadata.rs"]},{"name":"plonk","dirs":[{"name":"circuit","files":["compress_selectors.rs"]},{"name":"lookup","files":["prover.rs","verifier.rs"]},{"name":"permutation","files":["keygen.rs","prover.rs","verifier.rs"]},{"name":"vanishing","files":["prover.rs","verifier.rs"]}],"files":["circuit.rs","keygen.rs","lookup.rs","permutation.rs","prover.rs","vanishing.rs","verifier.rs"]},{"name":"poly","dirs":[{"name":"commitment","files":["msm.rs","prover.rs","verifier.rs"]},{"name":"multiopen","files":["prover.rs","verifier.rs"]}],"files":["commitment.rs","domain.rs","multiopen.rs"]}],"files":["arithmetic.rs","circuit.rs","dev.rs","lib.rs","multicore.rs","plonk.rs","poly.rs","transcript.rs"]};
sourcesIndex["halo2"] = {"name":"","dirs":[{"name":"circuit","dirs":[{"name":"floor_planner","dirs":[{"name":"v1","files":["strategy.rs"]}],"files":["single_pass.rs","v1.rs"]}],"files":["floor_planner.rs","layouter.rs"]},{"name":"dev","files":["cost.rs","gates.rs","metadata.rs"]},{"name":"plonk","dirs":[{"name":"circuit","files":["compress_selectors.rs"]},{"name":"lookup","files":["prover.rs","verifier.rs"]},{"name":"permutation","files":["keygen.rs","prover.rs","verifier.rs"]},{"name":"vanishing","files":["prover.rs","verifier.rs"]}],"files":["circuit.rs","keygen.rs","lookup.rs","permutation.rs","prover.rs","vanishing.rs","verifier.rs"]},{"name":"poly","dirs":[{"name":"commitment","files":["msm.rs","prover.rs","verifier.rs"]},{"name":"multiopen","files":["prover.rs","verifier.rs"]}],"files":["commitment.rs","domain.rs","multiopen.rs"]}],"files":["arithmetic.rs","circuit.rs","dev.rs","lib.rs","multicore.rs","plonk.rs","poly.rs","transcript.rs"]};
createSourceSidebar();

View File

@ -931,6 +931,9 @@
<span id="916">916</span>
<span id="917">917</span>
<span id="918">918</span>
<span id="919">919</span>
<span id="920">920</span>
<span id="921">921</span>
</pre><pre class="rust">
<span class="doccomment">//! Tools for developing circuits.</span>
@ -956,6 +959,9 @@
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">cost</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">cost::CircuitCost</span>;
<span class="kw">mod</span> <span class="ident">gates</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">gates::CircuitGates</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;dev-graph&quot;</span>)]</span>
<span class="kw">mod</span> <span class="ident">graph</span>;

View File

@ -322,6 +322,65 @@
<span id="307">307</span>
<span id="308">308</span>
<span id="309">309</span>
<span id="310">310</span>
<span id="311">311</span>
<span id="312">312</span>
<span id="313">313</span>
<span id="314">314</span>
<span id="315">315</span>
<span id="316">316</span>
<span id="317">317</span>
<span id="318">318</span>
<span id="319">319</span>
<span id="320">320</span>
<span id="321">321</span>
<span id="322">322</span>
<span id="323">323</span>
<span id="324">324</span>
<span id="325">325</span>
<span id="326">326</span>
<span id="327">327</span>
<span id="328">328</span>
<span id="329">329</span>
<span id="330">330</span>
<span id="331">331</span>
<span id="332">332</span>
<span id="333">333</span>
<span id="334">334</span>
<span id="335">335</span>
<span id="336">336</span>
<span id="337">337</span>
<span id="338">338</span>
<span id="339">339</span>
<span id="340">340</span>
<span id="341">341</span>
<span id="342">342</span>
<span id="343">343</span>
<span id="344">344</span>
<span id="345">345</span>
<span id="346">346</span>
<span id="347">347</span>
<span id="348">348</span>
<span id="349">349</span>
<span id="350">350</span>
<span id="351">351</span>
<span id="352">352</span>
<span id="353">353</span>
<span id="354">354</span>
<span id="355">355</span>
<span id="356">356</span>
<span id="357">357</span>
<span id="358">358</span>
<span id="359">359</span>
<span id="360">360</span>
<span id="361">361</span>
<span id="362">362</span>
<span id="363">363</span>
<span id="364">364</span>
<span id="365">365</span>
<span id="366">366</span>
<span id="367">367</span>
<span id="368">368</span>
</pre><pre class="rust">
<span class="doccomment">//! Developer tools for investigating the cost of a circuit.</span>
@ -329,6 +388,7 @@
<span class="ident">collections</span>::{<span class="ident">HashMap</span>, <span class="ident">HashSet</span>},
<span class="ident">iter</span>,
<span class="ident">marker::PhantomData</span>,
<span class="ident">ops</span>::{<span class="ident">Add</span>, <span class="ident">Mul</span>},
};
<span class="kw">use</span> <span class="ident">ff</span>::{<span class="ident">Field</span>, <span class="ident">PrimeField</span>};
@ -527,39 +587,53 @@
(<span class="self">self</span>.<span class="ident">permutation_cols</span> <span class="op">+</span> <span class="ident">chunk_size</span> <span class="op">-</span> <span class="number">1</span>) <span class="op">/</span> <span class="ident">chunk_size</span>
}
<span class="doccomment">/// Returns the proof size for the given number of instances of this circuit.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">proof_size</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">instances</span>: <span class="ident">usize</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">ProofSize</span><span class="op">&lt;</span><span class="ident">G</span><span class="op">&gt;</span> {
<span class="doccomment">/// Returns the marginal proof size per instance of this circuit.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">marginal_proof_size</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">MarginalProofSize</span><span class="op">&lt;</span><span class="ident">G</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">chunks</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">permutation_chunks</span>();
<span class="ident">ProofSize</span> {
<span class="ident">MarginalProofSize</span> {
<span class="comment">// Cells:</span>
<span class="comment">// - 1 commitment per advice column per instance</span>
<span class="comment">// - 1 eval per instance column query per instance</span>
<span class="comment">// - 1 eval per advice column query per instance</span>
<span class="comment">// - 1 eval per fixed column query</span>
<span class="ident">instance</span>: <span class="ident">ProofContribution::new</span>(<span class="number">0</span>, <span class="self">self</span>.<span class="ident">instance_queries</span> <span class="op">*</span> <span class="ident">instances</span>),
<span class="ident">advice</span>: <span class="ident">ProofContribution::new</span>(
<span class="self">self</span>.<span class="ident">advice_columns</span> <span class="op">*</span> <span class="ident">instances</span>,
<span class="self">self</span>.<span class="ident">advice_queries</span> <span class="op">*</span> <span class="ident">instances</span>,
),
<span class="ident">fixed</span>: <span class="ident">ProofContribution::new</span>(<span class="number">0</span>, <span class="self">self</span>.<span class="ident">fixed_queries</span>),
<span class="ident">instance</span>: <span class="ident">ProofContribution::new</span>(<span class="number">0</span>, <span class="self">self</span>.<span class="ident">instance_queries</span>),
<span class="ident">advice</span>: <span class="ident">ProofContribution::new</span>(<span class="self">self</span>.<span class="ident">advice_columns</span>, <span class="self">self</span>.<span class="ident">advice_queries</span>),
<span class="comment">// Lookup arguments:</span>
<span class="comment">// - 3 commitments per lookup argument per instance</span>
<span class="comment">// - 5 evals per lookup argument per instance</span>
<span class="ident">lookups</span>: <span class="ident">ProofContribution::new</span>(
<span class="number">3</span> <span class="op">*</span> <span class="self">self</span>.<span class="ident">lookups</span> <span class="op">*</span> <span class="ident">instances</span>,
<span class="number">5</span> <span class="op">*</span> <span class="self">self</span>.<span class="ident">lookups</span> <span class="op">*</span> <span class="ident">instances</span>,
),
<span class="ident">lookups</span>: <span class="ident">ProofContribution::new</span>(<span class="number">3</span> <span class="op">*</span> <span class="self">self</span>.<span class="ident">lookups</span>, <span class="number">5</span> <span class="op">*</span> <span class="self">self</span>.<span class="ident">lookups</span>),
<span class="comment">// Global permutation argument:</span>
<span class="comment">// - chunks commitments per instance</span>
<span class="comment">// - 2*chunks + (chunks - 1) evals per instance</span>
<span class="ident">equality</span>: <span class="ident">ProofContribution::new</span>(<span class="ident">chunks</span>, <span class="number">3</span> <span class="op">*</span> <span class="ident">chunks</span> <span class="op">-</span> <span class="number">1</span>),
<span class="ident">_marker</span>: <span class="ident">PhantomData::default</span>(),
}
}
<span class="doccomment">/// Returns the proof size for the given number of instances of this circuit.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">proof_size</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">instances</span>: <span class="ident">usize</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">ProofSize</span><span class="op">&lt;</span><span class="ident">G</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">marginal</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">marginal_proof_size</span>();
<span class="ident">ProofSize</span> {
<span class="comment">// Cells:</span>
<span class="comment">// - marginal cost per instance</span>
<span class="comment">// - 1 eval per fixed column query</span>
<span class="ident">instance</span>: <span class="ident">marginal</span>.<span class="ident">instance</span> <span class="op">*</span> <span class="ident">instances</span>,
<span class="ident">advice</span>: <span class="ident">marginal</span>.<span class="ident">advice</span> <span class="op">*</span> <span class="ident">instances</span>,
<span class="ident">fixed</span>: <span class="ident">ProofContribution::new</span>(<span class="number">0</span>, <span class="self">self</span>.<span class="ident">fixed_queries</span>),
<span class="comment">// Lookup arguments:</span>
<span class="comment">// - marginal cost per instance</span>
<span class="ident">lookups</span>: <span class="ident">marginal</span>.<span class="ident">lookups</span> <span class="op">*</span> <span class="ident">instances</span>,
<span class="comment">// Global permutation argument:</span>
<span class="comment">// - marginal cost per instance</span>
<span class="comment">// - 1 eval per column</span>
<span class="ident">equality</span>: <span class="ident">ProofContribution::new</span>(
<span class="ident">chunks</span> <span class="op">*</span> <span class="ident">instances</span>,
(<span class="number">3</span> <span class="op">*</span> <span class="ident">chunks</span> <span class="op">-</span> <span class="number">1</span>) <span class="op">*</span> <span class="ident">instances</span> <span class="op">+</span> <span class="self">self</span>.<span class="ident">permutation_cols</span>,
),
<span class="ident">equality</span>: <span class="ident">marginal</span>.<span class="ident">equality</span> <span class="op">*</span> <span class="ident">instances</span>
<span class="op">+</span> <span class="ident">ProofContribution::new</span>(<span class="number">0</span>, <span class="self">self</span>.<span class="ident">permutation_cols</span>),
<span class="comment">// Vanishing argument:</span>
<span class="comment">// - 1 + (max_deg - 1) commitments</span>
@ -603,6 +677,50 @@
}
}
<span class="kw">impl</span> <span class="ident">Add</span> <span class="kw">for</span> <span class="ident">ProofContribution</span> {
<span class="kw">type</span> <span class="ident">Output</span> <span class="op">=</span> <span class="self">Self</span>;
<span class="kw">fn</span> <span class="ident">add</span>(<span class="self">self</span>, <span class="ident">rhs</span>: <span class="self">Self</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="self">Self</span><span class="ident">::Output</span> {
<span class="self">Self</span> {
<span class="ident">commitments</span>: <span class="self">self</span>.<span class="ident">commitments</span> <span class="op">+</span> <span class="ident">rhs</span>.<span class="ident">commitments</span>,
<span class="ident">evaluations</span>: <span class="self">self</span>.<span class="ident">evaluations</span> <span class="op">+</span> <span class="ident">rhs</span>.<span class="ident">evaluations</span>,
}
}
}
<span class="kw">impl</span> <span class="ident">Mul</span><span class="op">&lt;</span><span class="ident">usize</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">ProofContribution</span> {
<span class="kw">type</span> <span class="ident">Output</span> <span class="op">=</span> <span class="self">Self</span>;
<span class="kw">fn</span> <span class="ident">mul</span>(<span class="self">self</span>, <span class="ident">instances</span>: <span class="ident">usize</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="self">Self</span><span class="ident">::Output</span> {
<span class="self">Self</span> {
<span class="ident">commitments</span>: <span class="self">self</span>.<span class="ident">commitments</span> <span class="op">*</span> <span class="ident">instances</span>,
<span class="ident">evaluations</span>: <span class="self">self</span>.<span class="ident">evaluations</span> <span class="op">*</span> <span class="ident">instances</span>,
}
}
}
<span class="doccomment">/// The marginal size of a Halo 2 proof, broken down into its contributing factors.</span>
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">MarginalProofSize</span><span class="op">&lt;</span><span class="ident">G</span>: <span class="ident">PrimeGroup</span><span class="op">&gt;</span> {
<span class="ident">instance</span>: <span class="ident">ProofContribution</span>,
<span class="ident">advice</span>: <span class="ident">ProofContribution</span>,
<span class="ident">lookups</span>: <span class="ident">ProofContribution</span>,
<span class="ident">equality</span>: <span class="ident">ProofContribution</span>,
<span class="ident">_marker</span>: <span class="ident">PhantomData</span><span class="op">&lt;</span><span class="ident">G</span><span class="op">&gt;</span>,
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">G</span>: <span class="ident">PrimeGroup</span><span class="op">&gt;</span> <span class="ident">From</span><span class="op">&lt;</span><span class="ident">MarginalProofSize</span><span class="op">&lt;</span><span class="ident">G</span><span class="op">&gt;</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">usize</span> {
<span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">proof</span>: <span class="ident">MarginalProofSize</span><span class="op">&lt;</span><span class="ident">G</span><span class="op">&gt;</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="self">Self</span> {
<span class="kw">let</span> <span class="ident">point</span> <span class="op">=</span> <span class="ident">G::Repr::default</span>().<span class="ident">as_ref</span>().<span class="ident">len</span>();
<span class="kw">let</span> <span class="ident">scalar</span> <span class="op">=</span> <span class="op">&lt;</span><span class="ident">G::Scalar</span> <span class="kw">as</span> <span class="ident">PrimeField</span><span class="op">&gt;</span><span class="ident">::Repr::default</span>().<span class="ident">as_ref</span>().<span class="ident">len</span>();
<span class="ident">proof</span>.<span class="ident">instance</span>.<span class="ident">len</span>(<span class="ident">point</span>, <span class="ident">scalar</span>)
<span class="op">+</span> <span class="ident">proof</span>.<span class="ident">advice</span>.<span class="ident">len</span>(<span class="ident">point</span>, <span class="ident">scalar</span>)
<span class="op">+</span> <span class="ident">proof</span>.<span class="ident">lookups</span>.<span class="ident">len</span>(<span class="ident">point</span>, <span class="ident">scalar</span>)
<span class="op">+</span> <span class="ident">proof</span>.<span class="ident">equality</span>.<span class="ident">len</span>(<span class="ident">point</span>, <span class="ident">scalar</span>)
}
}
<span class="doccomment">/// The size of a Halo 2 proof, broken down into its contributing factors.</span>
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">ProofSize</span><span class="op">&lt;</span><span class="ident">G</span>: <span class="ident">PrimeGroup</span><span class="op">&gt;</span> {

View File

@ -0,0 +1,474 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source of the Rust file `src&#x2F;dev&#x2F;gates.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>gates.rs - source</title><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../../ayu.css" disabled ><script id="default-settings" ></script><script src="../../../storage.js"></script><script src="../../../crates.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../../favicon.svg"><link rel="alternate icon" type="image/png" href="../../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../../favicon-32x32.png"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/katex.min.css" integrity="sha384-9eLZqc9ds8eNjO3TmqPeYcDj8n+Qfa4nuSiGYa6DjLNcv9BtN69ZIulL9+8CqC9Y" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/katex.min.js" integrity="sha384-K3vbOmF2BtaVai+Qk37uypf7VrgBubhQreNQe9aGsz9lB63dIFiQVlJbr92dw2Lx" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/contrib/auto-render.min.js" integrity="sha384-kmZOZB5ObwgQnS/DuDg6TScgOiWWBiVt0plIRkZCmE6rDZGrEOQeHM5PcHi+nyqe" crossorigin="anonymous"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
renderMathInElement(document.body, {
delimiters: [
{left: "$$", right: "$$", display: true},
{left: "\\(", right: "\\)", display: false},
{left: "$", right: "$", display: false},
{left: "\\[", right: "\\]", display: true}
]
});
});
</script>
<style type="text/css">#crate-search{background-image:url("../../../down-arrow.svg");}</style></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../../halo2/index.html'><div class='logo-container rust-logo'><img src='../../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input"name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../../wheel.svg"></a></div></form></nav><section id="main" class="content"><div class="example-wrap"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
<span id="215">215</span>
<span id="216">216</span>
<span id="217">217</span>
<span id="218">218</span>
<span id="219">219</span>
<span id="220">220</span>
<span id="221">221</span>
<span id="222">222</span>
<span id="223">223</span>
<span id="224">224</span>
<span id="225">225</span>
<span id="226">226</span>
<span id="227">227</span>
</pre><pre class="rust">
<span class="kw">use</span> <span class="ident">std::fmt</span>;
<span class="kw">use</span> <span class="ident">ff::PrimeField</span>;
<span class="kw">use</span> <span class="kw">crate</span><span class="ident">::plonk</span>::{<span class="ident">Circuit</span>, <span class="ident">ConstraintSystem</span>};
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>)]</span>
<span class="kw">struct</span> <span class="ident">Constraint</span> {
<span class="ident">name</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span>,
<span class="ident">expression</span>: <span class="ident">String</span>,
}
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>)]</span>
<span class="kw">struct</span> <span class="ident">Gate</span> {
<span class="ident">name</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span>,
<span class="ident">constraints</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Constraint</span><span class="op">&gt;</span>,
}
<span class="doccomment">/// A struct for collecting and displaying the gates within a circuit.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// # Examples</span>
<span class="doccomment">///</span>
<span class="doccomment">/// ```</span>
<span class="doccomment">/// use ff::Field;</span>
<span class="doccomment">/// use halo2::{</span>
<span class="doccomment">/// circuit::{Layouter, SimpleFloorPlanner},</span>
<span class="doccomment">/// dev::CircuitGates,</span>
<span class="doccomment">/// plonk::{Circuit, ConstraintSystem, Error},</span>
<span class="doccomment">/// poly::Rotation,</span>
<span class="doccomment">/// };</span>
<span class="doccomment">/// use pasta_curves::pallas;</span>
<span class="doccomment">///</span>
<span class="doccomment">/// #[derive(Copy, Clone)]</span>
<span class="doccomment">/// struct MyConfig {}</span>
<span class="doccomment">///</span>
<span class="doccomment">/// #[derive(Clone, Default)]</span>
<span class="doccomment">/// struct MyCircuit {}</span>
<span class="doccomment">///</span>
<span class="doccomment">/// impl&lt;F: Field&gt; Circuit&lt;F&gt; for MyCircuit {</span>
<span class="doccomment">/// type Config = MyConfig;</span>
<span class="doccomment">/// type FloorPlanner = SimpleFloorPlanner;</span>
<span class="doccomment">///</span>
<span class="doccomment">/// fn without_witnesses(&amp;self) -&gt; Self {</span>
<span class="doccomment">/// Self::default()</span>
<span class="doccomment">/// }</span>
<span class="doccomment">///</span>
<span class="doccomment">/// fn configure(meta: &amp;mut ConstraintSystem&lt;F&gt;) -&gt; MyConfig {</span>
<span class="doccomment">/// let a = meta.advice_column();</span>
<span class="doccomment">/// let b = meta.advice_column();</span>
<span class="doccomment">/// let c = meta.advice_column();</span>
<span class="doccomment">/// let s = meta.selector();</span>
<span class="doccomment">///</span>
<span class="doccomment">/// meta.create_gate(&quot;R1CS constraint&quot;, |meta| {</span>
<span class="doccomment">/// let a = meta.query_advice(a, Rotation::cur());</span>
<span class="doccomment">/// let b = meta.query_advice(b, Rotation::cur());</span>
<span class="doccomment">/// let c = meta.query_advice(c, Rotation::cur());</span>
<span class="doccomment">/// let s = meta.query_selector(s);</span>
<span class="doccomment">///</span>
<span class="doccomment">/// Some((&quot;R1CS&quot;, s * (a * b - c)))</span>
<span class="doccomment">/// });</span>
<span class="doccomment">///</span>
<span class="doccomment">/// // We aren&#39;t using this circuit for anything in this example.</span>
<span class="doccomment">/// MyConfig {}</span>
<span class="doccomment">/// }</span>
<span class="doccomment">///</span>
<span class="doccomment">/// fn synthesize(&amp;self, _: MyConfig, _: impl Layouter&lt;F&gt;) -&gt; Result&lt;(), Error&gt; {</span>
<span class="doccomment">/// // Gates are known at configure time; it doesn&#39;t matter how we use them.</span>
<span class="doccomment">/// Ok(())</span>
<span class="doccomment">/// }</span>
<span class="doccomment">/// }</span>
<span class="doccomment">///</span>
<span class="doccomment">/// let gates = CircuitGates::collect::&lt;pallas::Base, MyCircuit&gt;();</span>
<span class="doccomment">/// assert_eq!(</span>
<span class="doccomment">/// format!(&quot;{}&quot;, gates),</span>
<span class="doccomment">/// r#####&quot;R1CS constraint:</span>
<span class="doccomment">/// - R1CS:</span>
<span class="doccomment">/// S0 * (A0@0 * A1@0 - A2@0)</span>
<span class="doccomment">/// Total gates: 1</span>
<span class="doccomment">/// Total custom constraint polynomials: 1</span>
<span class="doccomment">/// Total negations: 1</span>
<span class="doccomment">/// Total additions: 1</span>
<span class="doccomment">/// Total multiplications: 2</span>
<span class="doccomment">/// &quot;#####,</span>
<span class="doccomment">/// );</span>
<span class="doccomment">/// ```</span>
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">CircuitGates</span> {
<span class="ident">gates</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Gate</span><span class="op">&gt;</span>,
<span class="ident">total_negations</span>: <span class="ident">usize</span>,
<span class="ident">total_additions</span>: <span class="ident">usize</span>,
<span class="ident">total_multiplications</span>: <span class="ident">usize</span>,
}
<span class="kw">impl</span> <span class="ident">CircuitGates</span> {
<span class="doccomment">/// Collects the gates from within the circuit.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">collect</span><span class="op">&lt;</span><span class="ident">F</span>: <span class="ident">PrimeField</span>, <span class="ident">C</span>: <span class="ident">Circuit</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span><span class="op">&gt;</span>() <span class="op">-</span><span class="op">&gt;</span> <span class="self">Self</span> {
<span class="comment">// Collect the graph details.</span>
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cs</span> <span class="op">=</span> <span class="ident">ConstraintSystem::default</span>();
<span class="kw">let</span> <span class="kw">_</span> <span class="op">=</span> <span class="ident">C::configure</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">cs</span>);
<span class="kw">let</span> <span class="ident">format_scalar</span> <span class="op">=</span> <span class="op">|</span><span class="ident">s</span>: <span class="ident">F</span><span class="op">|</span> {
<span class="comment">// Format scalar as hex.</span>
<span class="kw">let</span> <span class="ident">s</span> <span class="op">=</span> <span class="macro">format!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="ident">s</span>);
<span class="comment">// Remove leading zeroes.</span>
<span class="kw">let</span> <span class="ident">s</span> <span class="op">=</span> <span class="ident">s</span>.<span class="ident">strip_prefix</span>(<span class="string">&quot;0x&quot;</span>).<span class="ident">unwrap</span>();
<span class="kw">let</span> <span class="ident">s</span> <span class="op">=</span> <span class="ident">s</span>.<span class="ident">trim_start_matches</span>(<span class="string">&#39;0&#39;</span>);
<span class="macro">format!</span>(<span class="string">&quot;0x{}&quot;</span>, <span class="ident">s</span>)
};
<span class="kw">let</span> <span class="ident">gates</span> <span class="op">=</span> <span class="ident">cs</span>
.<span class="ident">gates</span>
.<span class="ident">iter</span>()
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">gate</span><span class="op">|</span> <span class="ident">Gate</span> {
<span class="ident">name</span>: <span class="ident">gate</span>.<span class="ident">name</span>(),
<span class="ident">constraints</span>: <span class="ident">gate</span>
.<span class="ident">polynomials</span>()
.<span class="ident">iter</span>()
.<span class="ident">enumerate</span>()
.<span class="ident">map</span>(<span class="op">|</span>(<span class="ident">i</span>, <span class="ident">constraint</span>)<span class="op">|</span> <span class="ident">Constraint</span> {
<span class="ident">name</span>: <span class="ident">gate</span>.<span class="ident">constraint_name</span>(<span class="ident">i</span>),
<span class="ident">expression</span>: <span class="ident">constraint</span>.<span class="ident">evaluate</span>(
<span class="kw-2">&amp;</span><span class="op">|</span><span class="ident">s</span><span class="op">|</span> {
<span class="kw">if</span> <span class="ident">s</span>.<span class="ident">is_zero</span>() {
<span class="string">&quot;0&quot;</span>.<span class="ident">into</span>()
} <span class="kw">else</span> <span class="kw">if</span> <span class="ident">s</span> <span class="op">=</span><span class="op">=</span> <span class="ident">F::one</span>() {
<span class="string">&quot;1&quot;</span>.<span class="ident">into</span>()
} <span class="kw">else</span> <span class="kw">if</span> <span class="ident">s</span> <span class="op">=</span><span class="op">=</span> <span class="op">-</span><span class="ident">F::one</span>() {
<span class="string">&quot;-1&quot;</span>.<span class="ident">into</span>()
} <span class="kw">else</span> {
<span class="ident">format_scalar</span>(<span class="ident">s</span>)
}
},
<span class="kw-2">&amp;</span><span class="op">|</span><span class="ident">selector</span><span class="op">|</span> <span class="macro">format!</span>(<span class="string">&quot;S{}&quot;</span>, <span class="ident">selector</span>.<span class="number">0</span>),
<span class="kw-2">&amp;</span><span class="op">|</span><span class="kw">_</span>, <span class="ident">column</span>, <span class="ident">rotation</span><span class="op">|</span> <span class="macro">format!</span>(<span class="string">&quot;F{}@{}&quot;</span>, <span class="ident">column</span>, <span class="ident">rotation</span>.<span class="number">0</span>),
<span class="kw-2">&amp;</span><span class="op">|</span><span class="kw">_</span>, <span class="ident">column</span>, <span class="ident">rotation</span><span class="op">|</span> <span class="macro">format!</span>(<span class="string">&quot;A{}@{}&quot;</span>, <span class="ident">column</span>, <span class="ident">rotation</span>.<span class="number">0</span>),
<span class="kw-2">&amp;</span><span class="op">|</span><span class="kw">_</span>, <span class="ident">column</span>, <span class="ident">rotation</span><span class="op">|</span> <span class="macro">format!</span>(<span class="string">&quot;I{}@{}&quot;</span>, <span class="ident">column</span>, <span class="ident">rotation</span>.<span class="number">0</span>),
<span class="kw-2">&amp;</span><span class="op">|</span><span class="ident">a</span><span class="op">|</span> {
<span class="kw">if</span> <span class="ident">a</span>.<span class="ident">contains</span>(<span class="string">&#39; &#39;</span>) {
<span class="macro">format!</span>(<span class="string">&quot;-({})&quot;</span>, <span class="ident">a</span>)
} <span class="kw">else</span> {
<span class="macro">format!</span>(<span class="string">&quot;-{}&quot;</span>, <span class="ident">a</span>)
}
},
<span class="kw-2">&amp;</span><span class="op">|</span><span class="ident">a</span>, <span class="ident">b</span><span class="op">|</span> {
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">b</span>) <span class="op">=</span> <span class="ident">b</span>.<span class="ident">strip_prefix</span>(<span class="string">&#39;-&#39;</span>) {
<span class="macro">format!</span>(<span class="string">&quot;{} - {}&quot;</span>, <span class="ident">a</span>, <span class="ident">b</span>)
} <span class="kw">else</span> {
<span class="macro">format!</span>(<span class="string">&quot;{} + {}&quot;</span>, <span class="ident">a</span>, <span class="ident">b</span>)
}
},
<span class="kw-2">&amp;</span><span class="op">|</span><span class="ident">a</span>, <span class="ident">b</span><span class="op">|</span> <span class="kw">match</span> (<span class="ident">a</span>.<span class="ident">contains</span>(<span class="string">&#39; &#39;</span>), <span class="ident">b</span>.<span class="ident">contains</span>(<span class="string">&#39; &#39;</span>)) {
(<span class="bool-val">false</span>, <span class="bool-val">false</span>) <span class="op">=</span><span class="op">&gt;</span> <span class="macro">format!</span>(<span class="string">&quot;{} * {}&quot;</span>, <span class="ident">a</span>, <span class="ident">b</span>),
(<span class="bool-val">false</span>, <span class="bool-val">true</span>) <span class="op">=</span><span class="op">&gt;</span> <span class="macro">format!</span>(<span class="string">&quot;{} * ({})&quot;</span>, <span class="ident">a</span>, <span class="ident">b</span>),
(<span class="bool-val">true</span>, <span class="bool-val">false</span>) <span class="op">=</span><span class="op">&gt;</span> <span class="macro">format!</span>(<span class="string">&quot;({}) * {}&quot;</span>, <span class="ident">a</span>, <span class="ident">b</span>),
(<span class="bool-val">true</span>, <span class="bool-val">true</span>) <span class="op">=</span><span class="op">&gt;</span> <span class="macro">format!</span>(<span class="string">&quot;({}) * ({})&quot;</span>, <span class="ident">a</span>, <span class="ident">b</span>),
},
<span class="kw-2">&amp;</span><span class="op">|</span><span class="ident">a</span>, <span class="ident">s</span><span class="op">|</span> {
<span class="kw">if</span> <span class="ident">a</span>.<span class="ident">contains</span>(<span class="string">&#39; &#39;</span>) {
<span class="macro">format!</span>(<span class="string">&quot;({}) * {}&quot;</span>, <span class="ident">a</span>, <span class="ident">format_scalar</span>(<span class="ident">s</span>))
} <span class="kw">else</span> {
<span class="macro">format!</span>(<span class="string">&quot;{} * {}&quot;</span>, <span class="ident">a</span>, <span class="ident">format_scalar</span>(<span class="ident">s</span>))
}
},
),
})
.<span class="ident">collect</span>(),
})
.<span class="ident">collect</span>();
<span class="kw">let</span> (<span class="ident">total_negations</span>, <span class="ident">total_additions</span>, <span class="ident">total_multiplications</span>) <span class="op">=</span> <span class="ident">cs</span>
.<span class="ident">gates</span>
.<span class="ident">iter</span>()
.<span class="ident">flat_map</span>(<span class="op">|</span><span class="ident">gate</span><span class="op">|</span> {
<span class="ident">gate</span>.<span class="ident">polynomials</span>().<span class="ident">iter</span>().<span class="ident">map</span>(<span class="op">|</span><span class="ident">poly</span><span class="op">|</span> {
<span class="ident">poly</span>.<span class="ident">evaluate</span>(
<span class="kw-2">&amp;</span><span class="op">|</span><span class="kw">_</span><span class="op">|</span> (<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>),
<span class="kw-2">&amp;</span><span class="op">|</span><span class="kw">_</span><span class="op">|</span> (<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>),
<span class="kw-2">&amp;</span><span class="op">|</span><span class="kw">_</span>, <span class="kw">_</span>, <span class="kw">_</span><span class="op">|</span> (<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>),
<span class="kw-2">&amp;</span><span class="op">|</span><span class="kw">_</span>, <span class="kw">_</span>, <span class="kw">_</span><span class="op">|</span> (<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>),
<span class="kw-2">&amp;</span><span class="op">|</span><span class="kw">_</span>, <span class="kw">_</span>, <span class="kw">_</span><span class="op">|</span> (<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>),
<span class="kw-2">&amp;</span><span class="op">|</span>(<span class="ident">a_n</span>, <span class="ident">a_a</span>, <span class="ident">a_m</span>)<span class="op">|</span> (<span class="ident">a_n</span> <span class="op">+</span> <span class="number">1</span>, <span class="ident">a_a</span>, <span class="ident">a_m</span>),
<span class="kw-2">&amp;</span><span class="op">|</span>(<span class="ident">a_n</span>, <span class="ident">a_a</span>, <span class="ident">a_m</span>), (<span class="ident">b_n</span>, <span class="ident">b_a</span>, <span class="ident">b_m</span>)<span class="op">|</span> (<span class="ident">a_n</span> <span class="op">+</span> <span class="ident">b_n</span>, <span class="ident">a_a</span> <span class="op">+</span> <span class="ident">b_a</span> <span class="op">+</span> <span class="number">1</span>, <span class="ident">a_m</span> <span class="op">+</span> <span class="ident">b_m</span>),
<span class="kw-2">&amp;</span><span class="op">|</span>(<span class="ident">a_n</span>, <span class="ident">a_a</span>, <span class="ident">a_m</span>), (<span class="ident">b_n</span>, <span class="ident">b_a</span>, <span class="ident">b_m</span>)<span class="op">|</span> (<span class="ident">a_n</span> <span class="op">+</span> <span class="ident">b_n</span>, <span class="ident">a_a</span> <span class="op">+</span> <span class="ident">b_a</span>, <span class="ident">a_m</span> <span class="op">+</span> <span class="ident">b_m</span> <span class="op">+</span> <span class="number">1</span>),
<span class="kw-2">&amp;</span><span class="op">|</span>(<span class="ident">a_n</span>, <span class="ident">a_a</span>, <span class="ident">a_m</span>), <span class="kw">_</span><span class="op">|</span> (<span class="ident">a_n</span>, <span class="ident">a_a</span>, <span class="ident">a_m</span> <span class="op">+</span> <span class="number">1</span>),
)
})
})
.<span class="ident">fold</span>((<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>), <span class="op">|</span>(<span class="ident">acc_n</span>, <span class="ident">acc_a</span>, <span class="ident">acc_m</span>), (<span class="ident">n</span>, <span class="ident">a</span>, <span class="ident">m</span>)<span class="op">|</span> {
(<span class="ident">acc_n</span> <span class="op">+</span> <span class="ident">n</span>, <span class="ident">acc_a</span> <span class="op">+</span> <span class="ident">a</span>, <span class="ident">acc_m</span> <span class="op">+</span> <span class="ident">m</span>)
});
<span class="ident">CircuitGates</span> {
<span class="ident">gates</span>,
<span class="ident">total_negations</span>,
<span class="ident">total_additions</span>,
<span class="ident">total_multiplications</span>,
}
}
}
<span class="kw">impl</span> <span class="ident">fmt::Display</span> <span class="kw">for</span> <span class="ident">CircuitGates</span> {
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt::Formatter</span><span class="op">&lt;</span><span class="lifetime">&#39;_</span><span class="op">&gt;</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">fmt::Error</span><span class="op">&gt;</span> {
<span class="kw">for</span> <span class="ident">gate</span> <span class="kw">in</span> <span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">gates</span> {
<span class="macro">writeln!</span>(<span class="ident">f</span>, <span class="string">&quot;{}:&quot;</span>, <span class="ident">gate</span>.<span class="ident">name</span>)<span class="question-mark">?</span>;
<span class="kw">for</span> <span class="ident">constraint</span> <span class="kw">in</span> <span class="kw-2">&amp;</span><span class="ident">gate</span>.<span class="ident">constraints</span> {
<span class="kw">if</span> <span class="ident">constraint</span>.<span class="ident">name</span>.<span class="ident">is_empty</span>() {
<span class="macro">writeln!</span>(<span class="ident">f</span>, <span class="string">&quot;- {}&quot;</span>, <span class="ident">constraint</span>.<span class="ident">expression</span>)<span class="question-mark">?</span>;
} <span class="kw">else</span> {
<span class="macro">writeln!</span>(<span class="ident">f</span>, <span class="string">&quot;- {}:&quot;</span>, <span class="ident">constraint</span>.<span class="ident">name</span>)<span class="question-mark">?</span>;
<span class="macro">writeln!</span>(<span class="ident">f</span>, <span class="string">&quot; {}&quot;</span>, <span class="ident">constraint</span>.<span class="ident">expression</span>)<span class="question-mark">?</span>;
}
}
}
<span class="macro">writeln!</span>(<span class="ident">f</span>, <span class="string">&quot;Total gates: {}&quot;</span>, <span class="self">self</span>.<span class="ident">gates</span>.<span class="ident">len</span>())<span class="question-mark">?</span>;
<span class="macro">writeln!</span>(
<span class="ident">f</span>,
<span class="string">&quot;Total custom constraint polynomials: {}&quot;</span>,
<span class="self">self</span>.<span class="ident">gates</span>
.<span class="ident">iter</span>()
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">gate</span><span class="op">|</span> <span class="ident">gate</span>.<span class="ident">constraints</span>.<span class="ident">len</span>())
.<span class="ident">sum</span>::<span class="op">&lt;</span><span class="ident">usize</span><span class="op">&gt;</span>()
)<span class="question-mark">?</span>;
<span class="macro">writeln!</span>(<span class="ident">f</span>, <span class="string">&quot;Total negations: {}&quot;</span>, <span class="self">self</span>.<span class="ident">total_negations</span>)<span class="question-mark">?</span>;
<span class="macro">writeln!</span>(<span class="ident">f</span>, <span class="string">&quot;Total additions: {}&quot;</span>, <span class="self">self</span>.<span class="ident">total_additions</span>)<span class="question-mark">?</span>;
<span class="macro">writeln!</span>(<span class="ident">f</span>, <span class="string">&quot;Total multiplications: {}&quot;</span>, <span class="self">self</span>.<span class="ident">total_multiplications</span>)
}
}
</pre></div>
</section><section id="search" class="content hidden"></section><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="halo2" data-search-index-js="../../../search-index.js" data-search-js="../../../search.js"></div>
<script src="../../../main.js"></script><script src="../../../source-script.js"></script><script src="../../../source-files.js"></script>
</body></html>