<!DOCTYPE html><htmllang="en"><head><metacharset="utf-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><metaname="generator"content="rustdoc"><metaname="description"content="API documentation for the Rust `Structure` struct in crate `synstructure`."><metaname="keywords"content="rust, rustlang, rust-lang, Structure"><title>synstructure::Structure - Rust</title><linkrel="stylesheet"type="text/css"href="../normalize.css"><linkrel="stylesheet"type="text/css"href="../rustdoc.css"id="mainThemeStyle"><linkrel="stylesheet"type="text/css"href="../dark.css"><linkrel="stylesheet"type="text/css"href="../light.css"id="themeStyle"><scriptsrc="../storage.js"></script><noscript><linkrel="stylesheet"href="../noscript.css"></noscript><linkrel="shortcut icon"href="../favicon.ico"><styletype="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><bodyclass="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu">☰</div><ahref='../synstructure/index.html'><divclass='logo-container'><imgsrc='../rust-logo.png'alt='logo'></div></a><pclass='location'>Struct Structure</p><divclass="sidebar-elems"><divclass="block items"><aclass="sidebar-title"href="#methods">Methods</a><divclass="sidebar-links"><ahref="#method.add_bounds">add_bounds</a><ahref="#method.add_impl_generic">add_impl_generic</a><ahref="#method.add_trait_bounds">add_trait_bounds</a><ahref="#method.ast">ast</a><ahref="#method.bind_with">bind_with</a><ahref="#method.binding_name">binding_name</a><ahref="#method.bound_impl">bound_impl</a><ahref="#method.each">each</a><ahref="#method.each_variant">each_variant</a><ahref="#method.filter">filter</a><ahref="#method.filter_variants">filter_variants</a><ahref="#method.fold">fold</a><ahref="#method.gen_impl">gen_impl</a><ahref="#method.new">new</a><ahref="#method.omitted_variants">omitted_variants</a><ahref="#method.referenced_ty_params">referenced_ty_params</a><ahref="#method.remove_variant">remove_variant</a><ahref="#method.unbound_impl">unbound_impl</a><ahref="#method.unsafe_bound_impl">unsafe_bound_impl</a><ahref="#method.unsafe_unbound_impl">unsafe_unbound_impl</a><ahref="#method.variants">variants</a><ahref="#method.variants_mut">variants_mut</a></div><aclass="sidebar-title"href="#implementations">Trait Implementations</a><divclass="sidebar-links"><ahref="#impl-Clone">Clone</a><ahref="#impl-Debug">Debug</a><ahref="#impl-Eq">Eq</a><ahref="#impl-Hash">Hash</a><ahref="#impl-PartialEq%3CStructure%3C%27a%3E%3E">PartialEq<Structure<'a>></a></div><aclass="sidebar-title"href="#synthetic-implementations">Auto Trait Implementations</a><divclass="sidebar-links"><ahref="#impl-RefUnwindSafe">!RefUnwindSafe</a><ahref="#impl-Send">!Send</a><ahref="#impl-Sync">!Sync</a><ahref="#impl-Unpin">Unpin</a><ahref="#impl-UnwindSafe">!UnwindSafe</a></div><aclass="sidebar-title"href="#blanket-implementations">Blanket Implementations</a><divclass="sidebar-links"><ahref="#impl-Any">Any</a><ahref="#impl-Borrow%3CT%3E">Borrow<T></a><ahref="#impl-BorrowMut%3CT%3E">BorrowMut<T></a><ahref="#impl-From%3CT%3E">From<T></a><ahref="#impl-Into%3CU%3E">Into<U></a><ahref="#impl-ToOwned">ToOwned</a><ahref="#impl-TryFrom%3CU%3E">TryFrom<U></a><ahref="#impl-TryInto%3CU%3E">TryInto<U></a></div></div><pclass='location'><ahref='index.html'>synstructure</a></p><script>window.sidebarCurrent={name:'Structure',ty:'struct',relpath:''};</script><scriptdefersrc="sidebar-items.js"></script></div></nav><divclass="theme-picker"><buttonid="theme-picker"aria-label="Pick another theme!"><imgsrc="../brush.svg"width="18"alt="Pick another theme!"></button><divid="theme-choices"></div></div><scriptsrc="../theme.js"></script><navclass="sub"><formclass="search-form js-only"><divclass="search-container"><div><selectid="crate-search"><optionvalue="Allcr
custom derive trait implementations.</p>
</div><h2id='methods'class='small-section-header'>Methods<ahref='#methods'class='anchor'></a></h2><h3id='impl'class='impl'><codeclass='in-band'>impl<'a><aclass="struct"href="../synstructure/struct.Structure.html"title="struct synstructure::Structure">Structure</a><'a></code><ahref='#impl'class='anchor'></a><aclass='srclink'href='../src/synstructure/lib.rs.html#987-2225'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='method.new'class="method"><codeid='new.v'>pub fn <ahref='#method.new'class='fnname'>new</a>(ast: &'a <aclass="struct"href="../syn/derive/struct.DeriveInput.html"title="struct syn::derive::DeriveInput">DeriveInput</a>) -> Self</code><aclass='srclink'href='../src/synstructure/lib.rs.html#990-1043'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Create a new <code>Structure</code> with the variants and fields from the passed-in
<code>DeriveInput</code>.</p>
</div><h4id='method.variants'class="method"><codeid='variants.v'>pub fn <ahref='#method.variants'class='fnname'>variants</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&[</a><aclass="struct"href="../synstructure/struct.VariantInfo.html"title="struct synstructure::VariantInfo">VariantInfo</a><'a><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></code><aclass='srclink'href='../src/synstructure/lib.rs.html#1046-1048'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Returns a slice of the variants in this Structure.</p>
</div><h4id='method.variants_mut'class="method"><codeid='variants_mut.v'>pub fn <ahref='#method.variants_mut'class='fnname'>variants_mut</a>(&mut self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&mut [</a><aclass="struct"href="../synstructure/struct.VariantInfo.html"title="struct synstructure::VariantInfo">VariantInfo</a><'a><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></code><aclass='srclink'href='../src/synstructure/lib.rs.html#1051-1053'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Returns a mut slice of the variants in this Structure.</p>
</div><h4id='method.ast'class="method"><codeid='ast.v'>pub fn <ahref='#method.ast'class='fnname'>ast</a>(&self) ->&'a <aclass="struct"href="../syn/derive/struct.DeriveInput.html"title="struct syn::derive::DeriveInput">DeriveInput</a></code><aclass='srclink'href='../src/synstructure/lib.rs.html#1057-1059'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Returns a reference to the underlying <code>syn</code> AST node which this
<code>Structure</code> was created from.</p>
</div><h4id='method.omitted_variants'class="method"><codeid='omitted_variants.v'>pub fn <ahref='#method.omitted_variants'class='fnname'>omitted_variants</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><aclass='srclink'href='../src/synstructure/lib.rs.html#1062-1064'title='goto source code'>[src]</a></h4><divclass='docblock'><p>True if any variants were omitted due to a <code>filter_variants</code> call.</p>
</div><h4id='method.each'class="method"><codeid='each.v'>pub fn <ahref='#method.each'class='fnname'>each</a><F, R>(&self, f: F) -><aclass="struct"href="../proc_macro2/struct.TokenStream.html"title="struct proc_macro2::TokenStream">TokenStream</a><spanclass="where fmt-newline">where<br> F: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html"title="trait core::ops::function::FnMut">FnMut</a>(&<aclass="struct"href="../synstructure/struct.BindingInfo.html"title="struct synstructure::BindingInfo">BindingInfo</a>) -> R,<br> R: <aclass="trait"href="../quote/to_tokens/trait.ToTokens.html"title="trait quote::to_tokens::ToTokens">ToTokens</a>, </span></code><aclass='srclink'href='../src/synstructure/lib.rs.html#1102-1115'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Runs the passed-in function once for each bound field, passing in a <code>BindingInfo</code>.
and generating <code>match</code> arms which evaluate the returned tokens.</p>
<p>This method will ignore variants or fields which are ignored through the
<code>filter</code> and <code>filter_variant</code> methods.</p>
</div><h4id='method.fold'class="method"><codeid='fold.v'>pub fn <ahref='#method.fold'class='fnname'>fold</a><F, I, R>(&self, init: I, f: F) -><aclass="struct"href="../proc_macro2/struct.TokenStream.html"title="struct proc_macro2::TokenStream">TokenStream</a><spanclass="where fmt-newline">where<br> F: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html"title="trait core::ops::function::FnMut">FnMut</a>(<aclass="struct"href="../proc_macro2/struct.TokenStream.html"title="struct proc_macro2::TokenStream">TokenStream</a>, &<aclass="struct"href="../synstructure/struct.BindingInfo.html"title="struct synstructure::BindingInfo">BindingInfo</a>) -> R,<br> I: <aclass="trait"href="../quote/to_tokens/trait.ToTokens.html"title="trait quote::to_tokens::ToTokens">ToTokens</a>,<br> R: <aclass="trait"href="../quote/to_tokens/trait.ToTokens.html"title="trait quote::to_tokens::ToTokens">ToTokens</a>, </span></code><aclass='srclink'href='../src/synstructure/lib.rs.html#1155-1169'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Runs the passed-in function once for each bound field, passing in the
result of the previous call, and a <code>BindingInfo</code>. generating <code>match</code>
arms which evaluate to the resulting tokens.</p>
<p>This method will ignore variants or fields which are ignored through the
<code>filter</code> and <code>filter_variant</code> methods.</p>
<p>If a variant has been ignored, it will return the <code>init</code> value.</p>
</div><h4id='method.each_variant'class="method"><codeid='each_variant.v'>pub fn <ahref='#method.each_variant'class='fnname'>each_variant</a><F, R>(&self, f: F) -><aclass="struct"href="../proc_macro2/struct.TokenStream.html"title="struct proc_macro2::TokenStream">TokenStream</a><spanclass="where fmt-newline">where<br> F: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html"title="trait core::ops::function::FnMut">FnMut</a>(&<aclass="struct"href="../synstructure/struct.VariantInfo.html"title="struct synstructure::VariantInfo">VariantInfo</a>) -> R,<br> R: <aclass="trait"href="../quote/to_tokens/trait.ToTokens.html"title="trait quote::to_tokens::ToTokens">ToTokens</a>, </span></code><aclass='srclink'href='../src/synstructure/lib.rs.html#1210-1225'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Runs the passed-in function once for each variant, passing in a
<code>VariantInfo</code>. and generating <code>match</code> arms which evaluate the returned
tokens.</p>
<p>This method will ignore variants and not bind fields which are ignored
through the <code>filter</code> and <code>filter_variant</code> methods.</p>
</div><h4id='method.filter'class="method"><codeid='filter.v'>pub fn <ahref='#method.filter'class='fnname'>filter</a><F>(&mut self, f: F) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self <spanclass="where fmt-newline">where<br> F: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html"title="trait core::ops::function::FnMut">FnMut</a>(&<aclass="struct"href="../synstructure/struct.BindingInfo.html"title="struct synstructure::BindingInfo">BindingInfo</a>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>, </span></code><aclass='srclink'href='../src/synstructure/lib.rs.html#1270-1278'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Filter the bindings created by this <code>Structure</code> object. This has 2 effects:</p>
<ul>
<li>
<p>The bindings will no longer appear in match arms generated by methods
on this <code>Structure</code> or its subobjects.</p>
</li>
<li>
<p>Impl blocks created with the <code>bound_impl</code> or <code>unsafe_bound_impl</code>
method only consider type parameters referenced in the types of
</div><h4id='method.add_bounds'class="method"><codeid='add_bounds.v'>pub fn <ahref='#method.add_bounds'class='fnname'>add_bounds</a>(&mut self, mode: <aclass="enum"href="../synstructure/enum.AddBounds.html"title="enum synstructure::AddBounds">AddBounds</a>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</code><aclass='srclink'href='../src/synstructure/lib.rs.html#1324-1327'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Specify which bounds should be generated by impl-generating functions
such as <code>gen_impl</code>, <code>bound_impl</code>, and <code>unsafe_bound_impl</code>.</p>
<p>The default behaviour is to generate both field and generic bounds from
</div><h4id='method.remove_variant'class="method"><codeid='remove_variant.v'>pub fn <ahref='#method.remove_variant'class='fnname'>remove_variant</a>(&mut self, idx: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</code><aclass='srclink'href='../src/synstructure/lib.rs.html#1385-1389'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Remove the variant at the given index.</p>
</div><h4id='method.bind_with'class="method"><codeid='bind_with.v'>pub fn <ahref='#method.bind_with'class='fnname'>bind_with</a><F>(&mut self, f: F) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self <spanclass="where fmt-newline">where<br> F: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html"title="trait core::ops::function::FnMut">FnMut</a>(&<aclass="struct"href="../synstructure/struct.BindingInfo.html"title="struct synstructure::BindingInfo">BindingInfo</a>) -><aclass="enum"href="../synstructure/enum.BindStyle.html"title="enum synstructure::BindStyle">BindStyle</a>, </span></code><aclass='srclink'href='../src/synstructure/lib.rs.html#1426-1434'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Updates the <code>BindStyle</code> for each of the passed-in fields by calling the
passed-in function for each <code>BindingInfo</code>.</p>
</div><h4id='method.binding_name'class="method"><codeid='binding_name.v'>pub fn <ahref='#method.binding_name'class='fnname'>binding_name</a><F>(&mut self, f: F) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self <spanclass="where fmt-newline">where<br> F: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html"title="trait core::ops::function::FnMut">FnMut</a>(&<aclass="struct"href="../syn/data/struct.Field.html"title="struct syn::data::Field">Field</a>, <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -><aclass="struct"href="../proc_macro2/struct.Ident.html"title="struct proc_macro2::Ident">Ident</a>, </span></code><aclass='srclink'href='../src/synstructure/lib.rs.html#1477-1485'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Updates the binding name for each fo the passed-in fields by calling the
passed-in function for each <code>BindingInfo</code>.</p>
<p>The function will be called with the <code>BindingInfo</code> and its index in the
enclosing variant.</p>
<p>The default name is <code>__binding_{}</code> where <code>{}</code> is replaced with an
</div><h4id='method.referenced_ty_params'class="method"><codeid='referenced_ty_params.v'>pub fn <ahref='#method.referenced_ty_params'class='fnname'>referenced_ty_params</a>(&self) -><aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"title="struct alloc::vec::Vec">Vec</a><&'a <aclass="struct"href="../proc_macro2/struct.Ident.html"title="struct proc_macro2::Ident">Ident</a>></code><aclass='srclink'href='../src/synstructure/lib.rs.html#1520-1528'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Returns a list of the type parameters which are refrenced in the types
</div><h4id='method.add_trait_bounds'class="method"><codeid='add_trait_bounds.v'>pub fn <ahref='#method.add_trait_bounds'class='fnname'>add_trait_bounds</a>(<br> &self, <br> bound: &<aclass="struct"href="../syn/generics/struct.TraitBound.html"title="struct syn::generics::TraitBound">TraitBound</a>, <br> where_clause: &mut <aclass="enum"href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="struct"href="../syn/generics/struct.WhereClause.html"title="struct syn::generics::WhereClause">WhereClause</a>>, <br> mode: <aclass="enum"href="../synstructure/enum.AddBounds.html"title="enum synstructure::AddBounds">AddBounds</a><br>)</code><aclass='srclink'href='../src/synstructure/lib.rs.html#1587-1648'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Add trait bounds for a trait with the given path for each type parmaeter
referenced in the types of non-filtered fields.</p>
</div><h4id='method.gen_impl'class="method"><codeid='gen_impl.v'>pub fn <ahref='#method.gen_impl'class='fnname'>gen_impl</a>(&self, cfg: <aclass="struct"href="../proc_macro2/struct.TokenStream.html"title="struct proc_macro2::TokenStream">TokenStream</a>) -><aclass="struct"href="../proc_macro2/struct.TokenStream.html"title="struct proc_macro2::TokenStream">TokenStream</a></code><aclass='srclink'href='../src/synstructure/lib.rs.html#2148-2224'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Generate an impl block for the given struct. This impl block will
automatically use hygiene tricks to avoid polluting the caller's
namespace, and will automatically add trait bounds for generic type
<p>This function accepts its arguments as a <code>TokenStream</code>. The recommended way
to call this function is passing the result of invoking the <code>quote!</code>
macro to it.</p>
<divclass='information'><divclass='tooltip ignore'>ⓘ<spanclass='tooltiptext'>This example is not tested</span></div></div><divclass="example-wrap"><preclass="rust rust-example-rendered ignore">
<p>This method tries to handle hygiene intelligenly for both stable and
unstable proc-macro implementations, however there are visible
differences.</p>
<p>The output of every <code>gen_impl</code> function is wrapped in a dummy <code>const</code>
value, to ensure that it is given its own scope, and any values brought
into scope are not leaked to the calling crate. For example, the above
invocation may generate an output like the following:</p>
<divclass='information'><divclass='tooltip ignore'>ⓘ<spanclass='tooltiptext'>This example is not tested</span></div></div><divclass="example-wrap"><preclass="rust rust-example-rendered ignore">
<p>Use <code>add_bounds</code> to change which bounds are generated.</p>
</div></div><h2id='implementations'class='small-section-header'>Trait Implementations<ahref='#implementations'class='anchor'></a></h2><divid='implementations-list'><h3id='impl-Eq'class='impl'><codeclass='in-band'>impl<'a><aclass="trait"href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html"title="trait core::cmp::Eq">Eq</a> for <aclass="struct"href="../synstructure/struct.Structure.html"title="struct synstructure::Structure">Structure</a><'a></code><ahref='#impl-Eq'class='anchor'></a><aclass='srclink'href='../src/synstructure/lib.rs.html#978'title='goto source code'>[src]</a></h3><divclass='impl-items'></div><h3id='impl-Clone'class='impl'><codeclass='in-band'>impl<'a><aclass="trait"href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a> for <aclass="struct"href="../synstructure/struct.Structure.html"title="struct synstructure::Structure">Structure</a><'a></code><ahref='#impl-Clone'class='anchor'></a><aclass='srclink'href='../src/synstructure/lib.rs.html#978'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='method.clone'class="method hidden"><codeid='clone.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone'class='fnname'>clone</a>(&self) -><aclass="struct"href="../synstructure/struct.Structure.html"title="struct synstructure::Structure">Structure</a><'a></code><aclass='srclink'href='../src/synstructure/lib.rs.html#978'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Returns a copy of the value. <ahref="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></p>
</div><h4id='method.clone_from'class="method hidden"><codeid='clone_from.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from'class='fnname'>clone_from</a>(&mut self, source: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</code><spanclass='since'title='Stable since Rust version 1.0.0'>1.0.0</span><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/clone.rs.html#131-133'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Performs copy-assignment from <code>source</code>. <ahref="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></p>
</div></div><h3id='impl-PartialEq%3CStructure%3C%27a%3E%3E'class='impl'><codeclass='in-band'>impl<'a><aclass="trait"href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html"title="trait core::cmp::PartialEq">PartialEq</a><<aclass="struct"href="../synstructure/struct.Structure.html"title="struct synstructure::Structure">Structure</a><'a>> for <aclass="struct"href="../synstructure/struct.Structure.html"title="struct synstructure::Structure">Structure</a><'a></code><ahref='#impl-PartialEq%3CStructure%3C%27a%3E%3E'class='anchor'></a><aclass='srclink'href='../src/synstructure/lib.rs.html#978'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='method.eq'class="method hidden"><codeid='eq.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq'class='fnname'>eq</a>(&self, other: &<aclass="struct"href="../synstructure/struct.Structure.html"title="struct synstructure::Structure">Structure</a><'a>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><aclass='srclink'href='../src/synstructure/lib.rs.html#978'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used by <code>==</code>. <ahref="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></p>
</div></div><h3id='impl-Hash'class='impl'><codeclass='in-band'>impl<'a><aclass="trait"href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html"title="trait core::hash::Hash">Hash</a> for <aclass="struct"href="../synstructure/struct.Structure.html"title="struct synstructure::Structure">Structure</a><'a></code><ahref='#impl-Hash'class='anchor'></a><aclass='srclink'href='../src/synstructure/lib.rs.html#978'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='method.hash'class="method hidden"><codeid='hash.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash'class='fnname'>hash</a><__H: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html"title="trait core::hash::Hasher">Hasher</a>>(&self, state: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)</code><aclass='srclink'href='../src/synstructure/lib.rs.html#978'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Feeds this value into the given [<code>Hasher</code>]. <ahref="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></p>
</div><h4id='method.hash_slice'class="method hidden"><codeid='hash_slice.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice'class='fnname'>hash_slice</a><H>(data: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&[Self]</a>, state: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H) <spanclass="where fmt-newline">where<br> H: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html"title="trait core::hash::Hasher">Hasher</a>, </span></code><spanclass='since'title='Stable since Rust version 1.3.0'>1.3.0</span><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#192-198'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Feeds a slice of this type into the given [<code>Hasher</code>]. <ahref="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></p>
</div></div><h3id='impl-Debug'class='impl'><codeclass='in-band'>impl<'a><aclass="trait"href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html"title="trait core::fmt::Debug">Debug</a> for <aclass="struct"href="../synstructure/struct.Structure.html"title="struct synstructure::Structure">Structure</a><'a></code><ahref='#impl-Debug'class='anchor'></a><aclass='srclink'href='../src/synstructure/lib.rs.html#978'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='method.fmt'class="method hidden"><codeid='fmt.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt'class='fnname'>fmt</a>(&self, f: &mut <aclass="struct"href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html"title="struct core::fmt::Formatter">Formatter</a>) -><aclass="type"href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html"title="type core::fmt::Result">Result</a></code><aclass='srclink'href='../src/synstructure/lib.rs.html#978'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Formats the value using the given formatter. <ahref="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></div><h3id='impl-ToOwned'class='impl'><codeclass='in-band'>impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html"title="trait alloc::borrow::ToOwned">ToOwned</a> for T <spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>, </span></code><ahref='#impl-ToOwned'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#81-92'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='associatedtype.Owned'class="type"><codeid='Owned.t'>type <ahref='https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned'class="type">Owned</a> = T</code></h4><divclass='docblock'><p>The resulting type after obtaining ownership.</p>
</div><h4id='method.to_owned'class="method hidden"><codeid='to_owned.v'>fn <ahref='https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned'class='fnname'>to_owned</a>(&self) -> T</code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#85-87'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Creates owned data from borrowed data, usually by cloning. <ahref="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></p>
</div><h4id='method.clone_into'class="method hidden"><codeid='clone_into.v'>fn <ahref='https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into'class='fnname'>clone_into</a>(&self, target: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#89-91'title='goto source code'>[src]</a></h4><divclass='stability hidden'><divclass='stab unstable'><details><summary><spanclass='emoji'>🔬</span> This is a nightly-only experimental API. (<code>toowned_clone_into</code>)</summary><p>recently added</p>
</details></div></div><divclass='docblock hidden'><p>Uses borrowed data to replace owned data, usually by cloning. <ahref="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></p>
</div></div><h3id='impl-TryFrom%3CU%3E'class='impl'><codeclass='in-band'>impl<T, U><aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><U> for T <spanclass="where fmt-newline">where<br> U: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"title="trait core::convert::Into">Into</a><T>, </span></code><ahref='#impl-TryFrom%3CU%3E'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#571-577'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='associatedtype.Error'class="type"><codeid='Error.t'>type <ahref='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error'class="type">Error</a> = <aclass="enum"href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html"title="enum core::convert::Infallible">Infallible</a></code></h4><divclass='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4id='method.try_from'class="method hidden"><codeid='try_from.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from'class='fnname'>try_from</a>(value: U) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><T, <T as <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><U>>::<aclass="type"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a>></code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#574-576'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3id='impl-TryInto%3CU%3E'class='impl'><codeclass='in-band'>impl<T, U><aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html"title="trait core::convert::TryInto">TryInto</a><U> for T <spanclass="where fmt-newline">where<br> U: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>, </span></code><ahref='#impl-TryInto%3CU%3E'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#559-566'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='associatedtype.Error-1'class="type"><codeid='Error.t-1'>type <ahref='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error'class="type">Error</a> = <U as <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>>::<aclass="type"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a></code></h4><divclass='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4id='method.try_into'class="method hidden"><codeid='try_into.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into'class='fnname'>try_into</a>(self) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><U, <U as <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>>::<aclass="type"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a>></code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#563-565'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3id='impl-BorrowMut%3CT%3E'class='impl'><codeclass='in-band'>impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html"title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T <spanclass="where fmt-newline">where<br> T: ?<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></code><ahref='#impl-BorrowMut%3CT%3E'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#218-220'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='method.borrow_mut'class="method hidden"><codeid='borrow_mut.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut'class='fnname'>borrow_mut</a>(&mut self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#219'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Mutably borrows from an owned value. <ahref="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
</div></div><h3id='impl-Borrow%3CT%3E'class='impl'><codeclass='in-band'>impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html"title="trait core::borrow::Borrow">Borrow</a><T> for T <spanclass="where fmt-newline">where<br> T: ?<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></code><ahref='#impl-Borrow%3CT%3E'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213-215'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='method.borrow'class="method hidden"><codeid='borrow.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow'class='fnname'>borrow</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#214'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Immutably borrows from an owned value. <ahref="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></div><h3id='impl-Any'class='impl'><codeclass='in-band'>impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html"title="trait core::any::Any">Any</a> for T <spanclass="where fmt-newline">where<br> T: 'static + ?<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></code><ahref='#impl-Any'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/any.rs.html#100-102'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='method.type_id'class="method hidden"><codeid='type_id.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id'class='fnname'>type_id</a>(&self) -><aclass="struct"href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html"title="struct core::any::TypeId">TypeId</a></code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/any.rs.html#101'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Gets the <code>TypeId</code> of <code>self</code>. <ahref="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></div></div></section><sectionid="search"class="content hidden"></section><sectionclass="footer"></section><asideid="help"class="hidden"><div><h1class="hidden">Help</h1><divclass="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd>↑</kbd></dt><dd>Move up in search results</dd><dt><kbd>↓</kbd></dt><dd>Move down in search results</dd><dt><kbd>↹</kbd></dt><dd>Switch tab</dd><dt><kbd>⏎</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><divclass="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath="../";window.currentCrate="synstructure";</script><scriptsrc="../aliases.js"></script><scriptsrc="../main.js"></script><scriptdefersrc="../search-index.js"></script></body></html>