<!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 `EntityList` struct in crate `cranelift_entity`."><metaname="keywords"content="rust, rustlang, rust-lang, EntityList"><title>cranelift_entity::EntityList - 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='../cranelift_entity/index.html'><divclass='logo-container'><imgsrc='../rust-logo.png'alt='logo'></div></a><pclass='location'>Struct EntityList</p><divclass="sidebar-elems"><divclass="block items"><aclass="sidebar-title"href="#methods">Methods</a><divclass="sidebar-links"><ahref="#method.as_mut_slice">as_mut_slice</a><ahref="#method.as_slice">as_slice</a><ahref="#method.clear">clear</a><ahref="#method.extend">extend</a><ahref="#method.first">first</a><ahref="#method.from_slice">from_slice</a><ahref="#method.get">get</a><ahref="#method.get_mut">get_mut</a><ahref="#method.grow_at">grow_at</a><ahref="#method.insert">insert</a><ahref="#method.is_empty">is_empty</a><ahref="#method.is_valid">is_valid</a><ahref="#method.len">len</a><ahref="#method.new">new</a><ahref="#method.push">push</a><ahref="#method.remove">remove</a><ahref="#method.swap_remove">swap_remove</a><ahref="#method.take">take</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-Default">Default</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'>cranelift_entity</a></p><script>window.sidebarCurrent={name:'EntityList',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="All crates">All crates</option></select><inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><aid="settings-menu"href="../settings.html"><imgsrc="../wheel.svg"width="18"alt="Change settings"></a></div></form></nav><sectionid="main"class="content"><h1class='fqn'><spanclass='out-of-band'><spanid='render-detail'><aid="togg
<p>An <code>EntityList<T></code> type provides similar functionality to <code>Vec<T></code>, but with some important
differences in the implementation:</p>
<ol>
<li>Memory is allocated from a <code>ListPool<T></code> instead of the global heap.</li>
<li>The footprint of an entity list is 4 bytes, compared with the 24 bytes for <code>Vec<T></code>.</li>
<li>An entity list doesn't implement <code>Drop</code>, leaving it to the pool to manage memory.</li>
</ol>
<p>The list pool is intended to be used as a LIFO allocator. After building up a larger data
structure with many list references, the whole thing can be discarded quickly by clearing the
<p>The <code>EntityList</code> itself is designed to have the smallest possible footprint. This is important
because it is used inside very compact data structures like <code>InstructionData</code>. The list
contains only a 32-bit index into the pool's memory vector, pointing to the first element of
the list.</p>
<p>The pool is just a single <code>Vec<T></code> containing all of the allocated lists. Each list is
represented as three contiguous parts:</p>
<ol>
<li>The number of elements in the list.</li>
<li>The list elements.</li>
<li>Excess capacity elements.</li>
</ol>
<p>The total size of the three parts is always a power of two, and the excess capacity is always
as small as possible. This means that shrinking a list may cause the excess capacity to shrink
if a smaller power-of-two size becomes available.</p>
<p>Both growing and shrinking a list may cause it to be reallocated in the pool vector.</p>
<p>The index stored in an <code>EntityList</code> points to part 2, the list elements. The value 0 is
reserved for the empty list which isn't allocated in the vector.</p>
</div><h2id='methods'class='small-section-header'>Methods<ahref='#methods'class='anchor'></a></h2><h3id='impl'class='impl'><codeclass='in-band'>impl<T: <aclass="trait"href="../cranelift_entity/trait.EntityRef.html"title="trait cranelift_entity::EntityRef">EntityRef</a> + <aclass="trait"href="../cranelift_entity/packed_option/trait.ReservedValue.html"title="trait cranelift_entity::packed_option::ReservedValue">ReservedValue</a>><aclass="struct"href="../cranelift_entity/struct.EntityList.html"title="struct cranelift_entity::EntityList">EntityList</a><T></code><ahref='#impl'class='anchor'></a><aclass='srclink'href='../src/cranelift_entity/list.rs.html#223-481'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>() -> Self</code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#225-227'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Create a new empty list.</p>
</div><h4id='method.from_slice'class="method"><codeid='from_slice.v'>pub fn <ahref='#method.from_slice'class='fnname'>from_slice</a>(slice: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&[T]</a>, pool: &mut <aclass="struct"href="../cranelift_entity/struct.ListPool.html"title="struct cranelift_entity::ListPool">ListPool</a><T>) -> Self</code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#230-244'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Create a new list with the contents initialized from a slice.</p>
</div><h4id='method.is_empty'class="method"><codeid='is_empty.v'>pub fn <ahref='#method.is_empty'class='fnname'>is_empty</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#247-251'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Returns <code>true</code> if the list has a length of 0.</p>
</div><h4id='method.len'class="method"><codeid='len.v'>pub fn <ahref='#method.len'class='fnname'>len</a>(&self, pool: &<aclass="struct"href="../cranelift_entity/struct.ListPool.html"title="struct cranelift_entity::ListPool">ListPool</a><T>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#254-257'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Get the number of elements in the list.</p>
</div><h4id='method.is_valid'class="method"><codeid='is_valid.v'>pub fn <ahref='#method.is_valid'class='fnname'>is_valid</a>(&self, pool: &<aclass="struct"href="../cranelift_entity/struct.ListPool.html"title="struct cranelift_entity::ListPool">ListPool</a><T>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#260-263'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Returns <code>true</code> if the list is valid</p>
</div><h4id='method.as_slice'class="method"><codeid='as_slice.v'>pub fn <ahref='#method.as_slice'class='fnname'>as_slice</a><'a>(&'a self, pool: &'a <aclass="struct"href="../cranelift_entity/struct.ListPool.html"title="struct cranelift_entity::ListPool">ListPool</a><T>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&'a [T]</a></code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#266-272'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Get the list as a slice.</p>
</div><h4id='method.get'class="method"><codeid='get.v'>pub fn <ahref='#method.get'class='fnname'>get</a>(&self, index: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, pool: &<aclass="struct"href="../cranelift_entity/struct.ListPool.html"title="struct cranelift_entity::ListPool">ListPool</a><T>) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"title="enum core::option::Option">Option</a><T></code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#275-277'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Get a single element from the list.</p>
</div><h4id='method.first'class="method"><codeid='first.v'>pub fn <ahref='#method.first'class='fnname'>first</a>(&self, pool: &<aclass="struct"href="../cranelift_entity/struct.ListPool.html"title="struct cranelift_entity::ListPool">ListPool</a><T>) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"title="enum core::option::Option">Option</a><T></code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#280-286'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Get the first element from the list.</p>
</div><h4id='method.as_mut_slice'class="method"><codeid='as_mut_slice.v'>pub fn <ahref='#method.as_mut_slice'class='fnname'>as_mut_slice</a><'a>(&'a mut self, pool: &'a mut <aclass="struct"href="../cranelift_entity/struct.ListPool.html"title="struct cranelift_entity::ListPool">ListPool</a><T>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&'a mut [T]</a></code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#289-295'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Get the list as a mutable slice.</p>
</div><h4id='method.get_mut'class="method"><codeid='get_mut.v'>pub fn <ahref='#method.get_mut'class='fnname'>get_mut</a><'a>(<br> &'a mut self, <br> index: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br> pool: &'a mut <aclass="struct"href="../cranelift_entity/struct.ListPool.html"title="struct cranelift_entity::ListPool">ListPool</a><T><br>) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a mut </a>T></code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#298-300'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Get a mutable reference to a single element from the list.</p>
</div><h4id='method.clear'class="method"><codeid='clear.v'>pub fn <ahref='#method.clear'class='fnname'>clear</a>(&mut self, pool: &mut <aclass="struct"href="../cranelift_entity/struct.ListPool.html"title="struct cranelift_entity::ListPool">ListPool</a><T>)</code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#305-313'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Removes all elements from the list.</p>
<p>The memory used by the list is put back in the pool.</p>
</div><h4id='method.take'class="method"><codeid='take.v'>pub fn <ahref='#method.take'class='fnname'>take</a>(&mut self) -> Self</code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#318-320'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Take all elements from this list and return them as a new list. Leave this list empty.</p>
<p>This is the equivalent of <code>Option::take()</code>.</p>
</div><h4id='method.push'class="method"><codeid='push.v'>pub fn <ahref='#method.push'class='fnname'>push</a>(&mut self, element: T, pool: &mut <aclass="struct"href="../cranelift_entity/struct.ListPool.html"title="struct cranelift_entity::ListPool">ListPool</a><T>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#324-353'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Appends an element to the back of the list.
Returns the index where the element was inserted.</p>
</div><h4id='method.extend'class="method"><codeid='extend.v'>pub fn <ahref='#method.extend'class='fnname'>extend</a><I>(&mut self, elements: I, pool: &mut <aclass="struct"href="../cranelift_entity/struct.ListPool.html"title="struct cranelift_entity::ListPool">ListPool</a><T>) <spanclass="where fmt-newline">where<br> I: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html"title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = T>, </span></code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#391-399'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Appends multiple elements to the back of the list.</p>
</div><h4id='method.insert'class="method"><codeid='insert.v'>pub fn <ahref='#method.insert'class='fnname'>insert</a>(&mut self, index: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, element: T, pool: &mut <aclass="struct"href="../cranelift_entity/struct.ListPool.html"title="struct cranelift_entity::ListPool">ListPool</a><T>)</code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#403-418'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Inserts an element as position <code>index</code> in the list, shifting all elements after it to the
right.</p>
</div><h4id='method.remove'class="method"><codeid='remove.v'>pub fn <ahref='#method.remove'class='fnname'>remove</a>(&mut self, index: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, pool: &mut <aclass="struct"href="../cranelift_entity/struct.ListPool.html"title="struct cranelift_entity::ListPool">ListPool</a><T>)</code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#421-450'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Removes the element at position <code>index</code> from the list. Potentially linear complexity.</p>
</div><h4id='method.swap_remove'class="method"><codeid='swap_remove.v'>pub fn <ahref='#method.swap_remove'class='fnname'>swap_remove</a>(&mut self, index: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, pool: &mut <aclass="struct"href="../cranelift_entity/struct.ListPool.html"title="struct cranelift_entity::ListPool">ListPool</a><T>)</code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#454-466'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Removes the element at <code>index</code> in constant time by switching it with the last element of
the list.</p>
</div><h4id='method.grow_at'class="method"><codeid='grow_at.v'>pub fn <ahref='#method.grow_at'class='fnname'>grow_at</a>(&mut self, index: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, count: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, pool: &mut <aclass="struct"href="../cranelift_entity/struct.ListPool.html"title="struct cranelift_entity::ListPool">ListPool</a><T>)</code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#473-480'title='goto source code'>[src]</a></h4><divclass='docblock'><p>Grow the list by inserting <code>count</code> elements at <code>index</code>.</p>
<p>The new elements are not initialized, they will contain whatever happened to be in memory.
Since the memory comes from the pool, this will be either zero entity references or
whatever where in a previously deallocated list.</p>
</div></div><h2id='implementations'class='small-section-header'>Trait Implementations<ahref='#implementations'class='anchor'></a></h2><divid='implementations-list'><h3id='impl-Debug'class='impl'><codeclass='in-band'>impl<T: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html"title="trait core::fmt::Debug">Debug</a> + <aclass="trait"href="../cranelift_entity/trait.EntityRef.html"title="trait cranelift_entity::EntityRef">EntityRef</a> + <aclass="trait"href="../cranelift_entity/packed_option/trait.ReservedValue.html"title="trait cranelift_entity::packed_option::ReservedValue">ReservedValue</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="../cranelift_entity/struct.EntityList.html"title="struct cranelift_entity::EntityList">EntityList</a><T></code><ahref='#impl-Debug'class='anchor'></a><aclass='srclink'href='../src/cranelift_entity/list.rs.html#62'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/cranelift_entity/list.rs.html#62'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-Clone'class='impl'><codeclass='in-band'>impl<T: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a> + <aclass="trait"href="../cranelift_entity/trait.EntityRef.html"title="trait cranelift_entity::EntityRef">EntityRef</a> + <aclass="trait"href="../cranelift_entity/packed_option/trait.ReservedValue.html"title="trait cranelift_entity::packed_option::ReservedValue">ReservedValue</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="../cranelift_entity/struct.EntityList.html"title="struct cranelift_entity::EntityList">EntityList</a><T></code><ahref='#impl-Clone'class='anchor'></a><aclass='srclink'href='../src/cranelift_entity/list.rs.html#62'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="../cranelift_entity/struct.EntityList.html"title="struct cranelift_entity::EntityList">EntityList</a><T></code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#62'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-Default'class='impl'><codeclass='in-band'>impl<T: <aclass="trait"href="../cranelift_entity/trait.EntityRef.html"title="trait cranelift_entity::EntityRef">EntityRef</a> + <aclass="trait"href="../cranelift_entity/packed_option/trait.ReservedValue.html"title="trait cranelift_entity::packed_option::ReservedValue">ReservedValue</a>><aclass="trait"href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html"title="trait core::default::Default">Default</a> for <aclass="struct"href="../cranelift_entity/struct.EntityList.html"title="struct cranelift_entity::EntityList">EntityList</a><T></code><ahref='#impl-Default'class='anchor'></a><aclass='srclink'href='../src/cranelift_entity/list.rs.html#69-76'title='goto source code'>[src]</a></h3><divclass='docblock'><p>Create an empty list.</p>
</div><divclass='impl-items'><h4id='method.default'class="method hidden"><codeid='default.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default'class='fnname'>default</a>() -> Self</code><aclass='srclink'href='../src/cranelift_entity/list.rs.html#70-75'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Returns the "default value" for a type. <ahref="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">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-Into%3CU%3E'class='impl'><codeclass='in-band'>impl<T, U><aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"title="trait core::convert::Into">Into</a><U> for T <spanclass="where fmt-newline">where<br> U: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html"title="trait core::convert::From">From</a><T>, </span></code><ahref='#impl-Into%3CU%3E'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#543-548'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='method.into'class="method hidden"><codeid='into.v'>fn <ahref='https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into'class='fnname'>into</a>(self) -> U</code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#545-547'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-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-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-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><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></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="cranelift_entity";</script><scriptsrc="../aliases.js"></script><scriptsrc="../main.js"></script><scriptdefersrc="../search-index.js"></script></body></html>