Files
GopherGate/target/doc/yoke/trait.Yokeable.html
2026-02-26 12:00:21 -05:00

174 lines
82 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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 `Yokeable&#60;&#39;a&#62;` trait is implemented on the `&#39;static` version of any zero-copy type; for example, `Cow&#60;&#39;static, T&#62;` implements `Yokeable&#60;&#39;a&#62;` (for all `&#39;a`)."><title>Yokeable in yoke - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="yoke" data-themes="" data-resource-suffix="" data-rustdoc-version="1.93.1 (01f6ddf75 2026-02-11) (Arch Linux rust 1:1.93.1-1)" data-channel="1.93.1" data-search-js="search-9e2438ea.js" data-stringdex-js="stringdex-a3946164.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a410ff4d.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Yokeable</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../yoke/index.html">yoke</a><span class="version">0.8.1</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Yokeable</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#safety" title="Safety">Safety</a></li><li><a href="#implementation-example" title="Implementation example">Implementation example</a></li></ul><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.Output" title="Output">Output</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.make" title="make">make</a></li><li><a href="#tymethod.transform" title="transform">transform</a></li><li><a href="#tymethod.transform_mut" title="transform_mut">transform_mut</a></li><li><a href="#tymethod.transform_owned" title="transform_owned">transform_owned</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-Yokeable%3C'a%3E-for-%26T" title="&#38;&#39;static T">&#38;&#39;static T</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-()" title="()">()</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-(T1,+T2)" title="(T1, T2)">(T1, T2)</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-Option%3CT%3E" title="Option&#60;T&#62;">Option&#60;T&#62;</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-PhantomData%3CT%3E" title="PhantomData&#60;T&#62;">PhantomData&#60;T&#62;</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-%5BT;+N%5D" title="[T; N]">[T; N]</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-bool" title="bool">bool</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-char" title="char">char</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-i8" title="i8">i8</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-i16" title="i16">i16</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-i32" title="i32">i32</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-i64" title="i64">i64</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-i128" title="i128">i128</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-isize" title="isize">isize</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-u8" title="u8">u8</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-u16" title="u16">u16</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-u32" title="u32">u32</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-u64" title="u64">u64</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-u128" title="u128">u128</a></li><li><a href="#impl-Yokeable%3C'a%3E-for-usize" title="usize">usize</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="index.html">In crate yoke</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="index.html">yoke</a></div><h1>Trait <span class="trait">Yokeable</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/yoke/yokeable.rs.html#85-238">Source</a> </span></div><pre class="rust item-decl"><code>pub unsafe trait Yokeable&lt;'a&gt;: 'static {
type <a href="#associatedtype.Output" class="associatedtype">Output</a>: 'a;
// Required methods
fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;'a self) -&gt; &amp;'a Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>;
<span class="item-spacer"></span> unsafe fn <a href="#tymethod.make" class="fn">make</a>(from: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self;
<span class="item-spacer"></span> fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)
<span class="where">where F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>)</span>;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The <code>Yokeable&lt;'a&gt;</code> trait is implemented on the <code>'static</code> version of any zero-copy type; for
example, <code>Cow&lt;'static, T&gt;</code> implements <code>Yokeable&lt;'a&gt;</code> (for all <code>'a</code>).</p>
<p>One can use
<code>Yokeable::Output</code> on this trait to obtain the “lifetimed” value of the <code>Cow&lt;'static, T&gt;</code>,
e.g. <code>&lt;Cow&lt;'static, T&gt; as Yokeable&lt;'a&gt;'&gt;::Output</code> is <code>Cow&lt;'a, T&gt;</code>.</p>
<p>A <a href="trait.Yokeable.html" title="trait yoke::Yokeable"><code>Yokeable</code></a> type is essentially one with a covariant lifetime parameter,
matched to the parameter in the trait definition. The trait allows one to cast
the covariant lifetime to and from <code>'static</code>.</p>
<p><strong>Most of the time, if you need to implement <a href="trait.Yokeable.html" title="trait yoke::Yokeable"><code>Yokeable</code></a>, you should be able to use the safe
<a href="derive.Yokeable.html" title="derive yoke::Yokeable"><code>#[derive(Yokeable)]</code></a> custom derive.</strong></p>
<p>While Rust does not yet have GAT syntax, for the purpose of this documentation
we shall refer to “<code>Self</code> with a lifetime <code>'a</code>” with the syntax <code>Self&lt;'a&gt;</code>.
Self&lt;static&gt; is a stand-in for the HKT Self&lt;_&gt;: lifetime -&gt; type.</p>
<p>With this terminology, <a href="trait.Yokeable.html" title="trait yoke::Yokeable"><code>Yokeable</code></a> exposes ways to cast between <code>Self&lt;'static&gt;</code> and <code>Self&lt;'a&gt;</code> generically.
This is useful for turning covariant lifetimes to <em>dynamic</em> lifetimes, where <code>'static</code> is
used as a way to “erase” the lifetime.</p>
<h2 id="safety"><a class="doc-anchor" href="#safety">§</a>Safety</h2>
<p>This trait is safe to implement on types with a <em>covariant</em> lifetime parameter, i.e. one where
<a href="trait.Yokeable.html#tymethod.transform"><code>Self::transform()</code></a>s body can simply be <code>{ self }</code>. This will occur when the lifetime
parameter is used within references, but not in the arguments of function pointers or in mutable
positions (either in <code>&amp;mut</code> or via interior mutability)</p>
<p>This trait must be implemented on the <code>'static</code> version of such a type, e.g. one should
implement <code>Yokeable&lt;'a&gt;</code> (for all <code>'a</code>) on <code>Cow&lt;'static, T&gt;</code>.</p>
<p>This trait is also safe to implement on types that do not borrow memory.</p>
<p>There are further constraints on implementation safety on individual methods.</p>
<h2 id="implementation-example"><a class="doc-anchor" href="#implementation-example">§</a>Implementation example</h2>
<p>Implementing this trait manually is unsafe. Where possible, you should use the safe
<a href="derive.Yokeable.html" title="derive yoke::Yokeable"><code>#[derive(Yokeable)]</code></a> custom derive instead. We include an example
in case you have your own zero-copy abstractions you wish to make yokeable.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">struct </span>Bar&lt;<span class="lifetime">'a</span>&gt; {
numbers: Cow&lt;<span class="lifetime">'a</span>, [u8]&gt;,
string: Cow&lt;<span class="lifetime">'a</span>, str&gt;,
owned: Vec&lt;u8&gt;,
}
<span class="kw">unsafe impl</span>&lt;<span class="lifetime">'a</span>&gt; Yokeable&lt;<span class="lifetime">'a</span>&gt; <span class="kw">for </span>Bar&lt;<span class="lifetime">'static</span>&gt; {
<span class="kw">type </span>Output = Bar&lt;<span class="lifetime">'a</span>&gt;;
<span class="kw">fn </span>transform(<span class="kw-2">&amp;</span><span class="lifetime">'a </span><span class="self">self</span>) -&gt; <span class="kw-2">&amp;</span><span class="lifetime">'a </span>Bar&lt;<span class="lifetime">'a</span>&gt; {
<span class="comment">// covariant lifetime cast, can be done safely
</span><span class="self">self
</span>}
<span class="kw">fn </span>transform_owned(<span class="self">self</span>) -&gt; Bar&lt;<span class="lifetime">'a</span>&gt; {
<span class="comment">// covariant lifetime cast, can be done safely
</span><span class="self">self
</span>}
<span class="kw">unsafe fn </span>make(from: Bar&lt;<span class="lifetime">'a</span>&gt;) -&gt; <span class="self">Self </span>{
<span class="kw">unsafe </span>{ mem::transmute(from) }
}
<span class="kw">fn </span>transform_mut&lt;F&gt;(<span class="kw-2">&amp;</span><span class="lifetime">'a </span><span class="kw-2">mut </span><span class="self">self</span>, f: F)
<span class="kw">where
</span>F: <span class="lifetime">'static </span>+ FnOnce(<span class="kw-2">&amp;</span><span class="lifetime">'a </span><span class="kw-2">mut </span><span class="self">Self</span>::Output),
{
<span class="kw">unsafe </span>{ f(mem::transmute::&lt;<span class="kw-2">&amp;mut </span><span class="self">Self</span>, <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Output&gt;(<span class="self">self</span>)) }
}
}</code></pre></div></div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="toggle" open><summary><section id="associatedtype.Output" class="method"><a class="src rightside" href="../src/yoke/yokeable.rs.html#87">Source</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a>: 'a</h4></section></summary><div class="docblock"><p>This type MUST be <code>Self</code> with the <code>'static</code> replaced with <code>'a</code>, i.e. <code>Self&lt;'a&gt;</code></p>
</div></details></div><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.transform" class="method"><a class="src rightside" href="../src/yoke/yokeable.rs.html#96">Source</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;'a self) -&gt; &amp;'a Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section></summary><div class="docblock"><p>This method must cast <code>self</code> between <code>&amp;'a Self&lt;'static&gt;</code> and <code>&amp;'a Self&lt;'a&gt;</code>.</p>
<h5 id="implementation-safety"><a class="doc-anchor" href="#implementation-safety">§</a>Implementation safety</h5>
<p>If the invariants of <a href="trait.Yokeable.html" title="trait yoke::Yokeable"><code>Yokeable</code></a> are being satisfied, the body of this method
should simply be <code>{ self }</code>, though its acceptable to include additional assertions
if desired.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.transform_owned" class="method"><a class="src rightside" href="../src/yoke/yokeable.rs.html#105">Source</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section></summary><div class="docblock"><p>This method must cast <code>self</code> between <code>Self&lt;'static&gt;</code> and <code>Self&lt;'a&gt;</code>.</p>
<h5 id="implementation-safety-1"><a class="doc-anchor" href="#implementation-safety-1">§</a>Implementation safety</h5>
<p>If the invariants of <a href="trait.Yokeable.html" title="trait yoke::Yokeable"><code>Yokeable</code></a> are being satisfied, the body of this method
should simply be <code>{ self }</code>, though its acceptable to include additional assertions
if desired.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.make" class="method"><a class="src rightside" href="../src/yoke/yokeable.rs.html#117">Source</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(from: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>This method can be used to cast away <code>Self&lt;'a&gt;</code>s lifetime.</p>
<h5 id="safety-1"><a class="doc-anchor" href="#safety-1">§</a>Safety</h5>
<p>The returned value must be destroyed before the data <code>from</code> was borrowing from is.</p>
<h5 id="implementation-safety-2"><a class="doc-anchor" href="#implementation-safety-2">§</a>Implementation safety</h5>
<p>A safe implementation of this method must be equivalent to a transmute between
<code>Self&lt;'a&gt;</code> and <code>Self&lt;'static&gt;</code></p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.transform_mut" class="method"><a class="src rightside" href="../src/yoke/yokeable.rs.html#234-237">Source</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></summary><div class="docblock"><p>This method must cast <code>self</code> between <code>&amp;'a mut Self&lt;'static&gt;</code> and <code>&amp;'a mut Self&lt;'a&gt;</code>,
and pass it to <code>f</code>.</p>
<h5 id="implementation-safety-3"><a class="doc-anchor" href="#implementation-safety-3">§</a>Implementation safety</h5>
<p>A safe implementation of this method must be equivalent to a pointer cast/transmute between
<code>&amp;mut Self&lt;'a&gt;</code> and <code>&amp;mut Self&lt;'static&gt;</code> being passed to <code>f</code></p>
<h5 id="why-is-this-safe"><a class="doc-anchor" href="#why-is-this-safe">§</a>Why is this safe?</h5>
<p>Typically covariant lifetimes become invariant when hidden behind an <code>&amp;mut</code>,
which is why the implementation of this method cannot just be <code>f(self)</code>.
The reason behind this is that while <em>reading</em> a covariant lifetime that has been cast to a shorter
one is always safe (this is roughly the definition of a covariant lifetime), writing
may not necessarily be safe since you could write a smaller reference to it. For example,
the following code is unsound because it manages to stuff a <code>'a</code> lifetime into a <code>Cow&lt;'static&gt;</code></p>
<div class="example-wrap compile_fail"><a href="#" class="tooltip" title="This example deliberately fails to compile"></a><pre class="rust rust-example-rendered"><code><span class="kw">struct </span>Foo {
str: String,
cow: Cow&lt;<span class="lifetime">'static</span>, str&gt;,
}
<span class="kw">fn </span>unsound&lt;<span class="lifetime">'a</span>&gt;(foo: <span class="kw-2">&amp;</span><span class="lifetime">'a </span><span class="kw-2">mut </span>Foo) {
<span class="kw">let </span>a: <span class="kw-2">&amp;</span>str = <span class="kw-2">&amp;</span>foo.str;
foo.cow.transform_mut(|cow| <span class="kw-2">*</span>cow = Cow::Borrowed(a));
}</code></pre></div>
<p>However, this code will not compile because <a href="trait.Yokeable.html#tymethod.transform_mut" title="method yoke::Yokeable::transform_mut"><code>Yokeable::transform_mut()</code></a> requires <code>F: 'static</code>.
This enforces that while <code>F</code> may mutate <code>Self&lt;'a&gt;</code>, it can only mutate it in a way that does
not insert additional references. For example, <code>F</code> may call <code>to_owned()</code> on a <code>Cow</code> and mutate it,
but it cannot insert a new <em>borrowed</em> reference because it has nowhere to borrow <em>from</em>
<code>f</code> does not contain any borrowed references, and while we give it <code>Self&lt;'a&gt;</code> (which contains borrowed
data), that borrowed data is known to be valid</p>
<p>Note that the <code>for&lt;'b&gt;</code> is also necessary, otherwise the following code would compile:</p>
<div class="example-wrap compile_fail"><a href="#" class="tooltip" title="This example deliberately fails to compile"></a><pre class="rust rust-example-rendered"><code><span class="comment">// also safely implements Yokeable&lt;'a&gt;
</span><span class="kw">struct </span>Bar&lt;<span class="lifetime">'a</span>&gt; {
num: u8,
cow: Cow&lt;<span class="lifetime">'a</span>, u8&gt;,
}
<span class="kw">fn </span>unsound&lt;<span class="lifetime">'a</span>&gt;(bar: <span class="kw-2">&amp;</span><span class="lifetime">'a </span><span class="kw-2">mut </span>Bar&lt;<span class="lifetime">'static</span>&gt;) {
bar.transform_mut(<span class="kw">move </span>|bar| bar.cow = Cow::Borrowed(<span class="kw-2">&amp;</span>bar.num));
}</code></pre></div>
<p>which is unsound because <code>bar</code> could be moved later, and we do not want to be able to
self-insert references to it.</p>
<p>The <code>for&lt;'b&gt;</code> enforces this by stopping the author of the closure from matching up the input
<code>&amp;'b Self::Output</code> lifetime with <code>'a</code> and borrowing directly from it.</p>
<p>Thus the only types of mutations allowed are ones that move around already-borrowed data, or
introduce new owned data:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">struct </span>Foo {
str: String,
cow: Cow&lt;<span class="lifetime">'static</span>, str&gt;,
}
<span class="kw">fn </span>sound(foo: <span class="kw-2">&amp;mut </span>Foo) {
foo.cow.transform_mut(<span class="kw">move </span>|cow| cow.to_mut().push(<span class="string">'a'</span>));
}</code></pre></div>
<p>More formally, a reference to an object that <code>f</code> assigns to a reference
in Self&lt;a&gt; could be obtained from:</p>
<ul>
<li>a local variable: the compiler rejects the assignment because a certainly
outlives local variables in f.</li>
<li>a field in its argument: because of the for&lt;b&gt; bound, the call to <code>f</code>
must be valid for a particular b that is strictly shorter than a. Thus,
the compiler rejects the assignment.</li>
<li>a reference field in Self&lt;a&gt;: this does not extend the set of
non-static lifetimes reachable from Self&lt;a&gt;, so this is fine.</li>
<li>one of fs captures: since F: static, the resulting reference must refer
to static data.</li>
<li>a static or thread_local variable: ditto.</li>
</ul>
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/1.93.1/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-bool" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#63">Source</a><a href="#impl-Yokeable%3C'a%3E-for-bool" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-1" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#63">Source</a><a href="#associatedtype.Output-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a></h4></section><section id="method.transform" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#63">Source</a><a href="#method.transform" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#63">Source</a><a href="#method.transform_owned" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#63">Source</a><a href="#method.make" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(this: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#63">Source</a><a href="#method.transform_mut" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-char" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#62">Source</a><a href="#impl-Yokeable%3C'a%3E-for-char" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.char.html">char</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-2" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#62">Source</a><a href="#associatedtype.Output-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.char.html">char</a></h4></section><section id="method.transform-1" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#62">Source</a><a href="#method.transform-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-1" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#62">Source</a><a href="#method.transform_owned-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-1" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#62">Source</a><a href="#method.make-1" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(this: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-1" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#62">Source</a><a href="#method.transform_mut-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-i8" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#56">Source</a><a href="#impl-Yokeable%3C'a%3E-for-i8" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.i8.html">i8</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-3" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#56">Source</a><a href="#associatedtype.Output-3" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.i8.html">i8</a></h4></section><section id="method.transform-2" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#56">Source</a><a href="#method.transform-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-2" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#56">Source</a><a href="#method.transform_owned-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-2" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#56">Source</a><a href="#method.make-2" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(this: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-2" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#56">Source</a><a href="#method.transform_mut-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-i16" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#57">Source</a><a href="#impl-Yokeable%3C'a%3E-for-i16" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.i16.html">i16</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-4" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#57">Source</a><a href="#associatedtype.Output-4" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.i16.html">i16</a></h4></section><section id="method.transform-3" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#57">Source</a><a href="#method.transform-3" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-3" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#57">Source</a><a href="#method.transform_owned-3" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-3" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#57">Source</a><a href="#method.make-3" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(this: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-3" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#57">Source</a><a href="#method.transform_mut-3" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-i32" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#58">Source</a><a href="#impl-Yokeable%3C'a%3E-for-i32" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.i32.html">i32</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-5" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#58">Source</a><a href="#associatedtype.Output-5" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.i32.html">i32</a></h4></section><section id="method.transform-4" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#58">Source</a><a href="#method.transform-4" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-4" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#58">Source</a><a href="#method.transform_owned-4" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-4" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#58">Source</a><a href="#method.make-4" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(this: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-4" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#58">Source</a><a href="#method.transform_mut-4" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-i64" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#59">Source</a><a href="#impl-Yokeable%3C'a%3E-for-i64" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.i64.html">i64</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-6" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#59">Source</a><a href="#associatedtype.Output-6" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.i64.html">i64</a></h4></section><section id="method.transform-5" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#59">Source</a><a href="#method.transform-5" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-5" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#59">Source</a><a href="#method.transform_owned-5" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-5" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#59">Source</a><a href="#method.make-5" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(this: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-5" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#59">Source</a><a href="#method.transform_mut-5" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-i128" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#60">Source</a><a href="#impl-Yokeable%3C'a%3E-for-i128" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.i128.html">i128</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-7" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#60">Source</a><a href="#associatedtype.Output-7" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.i128.html">i128</a></h4></section><section id="method.transform-6" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#60">Source</a><a href="#method.transform-6" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-6" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#60">Source</a><a href="#method.transform_owned-6" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-6" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#60">Source</a><a href="#method.make-6" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(this: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-6" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#60">Source</a><a href="#method.transform_mut-6" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-isize" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#61">Source</a><a href="#impl-Yokeable%3C'a%3E-for-isize" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.isize.html">isize</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-8" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#61">Source</a><a href="#associatedtype.Output-8" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.isize.html">isize</a></h4></section><section id="method.transform-7" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#61">Source</a><a href="#method.transform-7" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-7" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#61">Source</a><a href="#method.transform_owned-7" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-7" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#61">Source</a><a href="#method.make-7" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(this: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-7" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#61">Source</a><a href="#method.transform_mut-7" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-u8" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#50">Source</a><a href="#impl-Yokeable%3C'a%3E-for-u8" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.u8.html">u8</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-9" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#50">Source</a><a href="#associatedtype.Output-9" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.u8.html">u8</a></h4></section><section id="method.transform-8" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#50">Source</a><a href="#method.transform-8" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-8" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#50">Source</a><a href="#method.transform_owned-8" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-8" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#50">Source</a><a href="#method.make-8" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(this: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-8" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#50">Source</a><a href="#method.transform_mut-8" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-u16" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#51">Source</a><a href="#impl-Yokeable%3C'a%3E-for-u16" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.u16.html">u16</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-10" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#51">Source</a><a href="#associatedtype.Output-10" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.u16.html">u16</a></h4></section><section id="method.transform-9" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#51">Source</a><a href="#method.transform-9" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-9" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#51">Source</a><a href="#method.transform_owned-9" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-9" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#51">Source</a><a href="#method.make-9" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(this: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-9" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#51">Source</a><a href="#method.transform_mut-9" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-u32" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#52">Source</a><a href="#impl-Yokeable%3C'a%3E-for-u32" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.u32.html">u32</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-11" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#52">Source</a><a href="#associatedtype.Output-11" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.u32.html">u32</a></h4></section><section id="method.transform-10" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#52">Source</a><a href="#method.transform-10" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-10" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#52">Source</a><a href="#method.transform_owned-10" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-10" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#52">Source</a><a href="#method.make-10" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(this: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-10" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#52">Source</a><a href="#method.transform_mut-10" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-u64" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#53">Source</a><a href="#impl-Yokeable%3C'a%3E-for-u64" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.u64.html">u64</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-12" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#53">Source</a><a href="#associatedtype.Output-12" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.u64.html">u64</a></h4></section><section id="method.transform-11" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#53">Source</a><a href="#method.transform-11" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-11" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#53">Source</a><a href="#method.transform_owned-11" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-11" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#53">Source</a><a href="#method.make-11" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(this: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-11" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#53">Source</a><a href="#method.transform_mut-11" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-u128" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#54">Source</a><a href="#impl-Yokeable%3C'a%3E-for-u128" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.u128.html">u128</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-13" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#54">Source</a><a href="#associatedtype.Output-13" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.u128.html">u128</a></h4></section><section id="method.transform-12" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#54">Source</a><a href="#method.transform-12" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-12" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#54">Source</a><a href="#method.transform_owned-12" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-12" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#54">Source</a><a href="#method.make-12" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(this: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-12" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#54">Source</a><a href="#method.transform_mut-12" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-()" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#49">Source</a><a href="#impl-Yokeable%3C'a%3E-for-()" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.unit.html">()</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-14" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#49">Source</a><a href="#associatedtype.Output-14" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.unit.html">()</a></h4></section><section id="method.transform-13" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#49">Source</a><a href="#method.transform-13" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-13" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#49">Source</a><a href="#method.transform_owned-13" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-13" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#49">Source</a><a href="#method.make-13" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(this: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-13" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#49">Source</a><a href="#method.transform_mut-13" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-usize" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#55">Source</a><a href="#impl-Yokeable%3C'a%3E-for-usize" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-15" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#55">Source</a><a href="#associatedtype.Output-15" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a></h4></section><section id="method.transform-14" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#55">Source</a><a href="#method.transform-14" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-14" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#55">Source</a><a href="#method.transform_owned-14" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-14" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#55">Source</a><a href="#method.make-14" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(this: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-14" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#55">Source</a><a href="#method.transform_mut-14" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-(T1,+T2)" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#116-121">Source</a><a href="#impl-Yokeable%3C'a%3E-for-(T1,+T2)" class="anchor">§</a><h3 class="code-header">impl&lt;'a, T1: 'static + for&lt;'b&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'b&gt;, T2: 'static + for&lt;'b&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'b&gt;&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(T1, T2)</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-16" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#119">Source</a><a href="#associatedtype.Output-16" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = (&lt;T1 as <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt;&gt;::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>, &lt;T2 as <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt;&gt;::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>)</h4></section><section id="method.transform-15" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#120">Source</a><a href="#method.transform-15" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;'a self) -&gt; &amp;'a Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-15" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#120">Source</a><a href="#method.transform_owned-15" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-15" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#120">Source</a><a href="#method.make-15" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(from: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-15" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#120">Source</a><a href="#method.transform_mut-15" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-%26T" class="impl"><a class="src rightside" href="../src/yoke/yokeable.rs.html#282-310">Source</a><a href="#impl-Yokeable%3C'a%3E-for-%26T" class="anchor">§</a><h3 class="code-header">impl&lt;'a, T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;'static T</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-17" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/yokeable.rs.html#283">Source</a><a href="#associatedtype.Output-17" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;'a T</a></h4></section><section id="method.transform-16" class="method trait-impl"><a class="src rightside" href="../src/yoke/yokeable.rs.html#285-288">Source</a><a href="#method.transform-16" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;'a self) -&gt; &amp;'a <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;'a T</a></h4></section><section id="method.transform_owned-16" class="method trait-impl"><a class="src rightside" href="../src/yoke/yokeable.rs.html#290-293">Source</a><a href="#method.transform_owned-16" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;'a T</a></h4></section><section id="method.make-16" class="method trait-impl"><a class="src rightside" href="../src/yoke/yokeable.rs.html#295-299">Source</a><a href="#method.make-16" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(from: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;'a T</a>) -&gt; Self</h4></section><section id="method.transform_mut-16" class="method trait-impl"><a class="src rightside" href="../src/yoke/yokeable.rs.html#301-309">Source</a><a href="#method.transform_mut-16" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-Option%3CT%3E" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#109-112">Source</a><a href="#impl-Yokeable%3C'a%3E-for-Option%3CT%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a, T: 'static + for&lt;'b&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'b&gt;&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;T&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.Output-18" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#110">Source</a><a href="#associatedtype.Output-18" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&lt;T as <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt;&gt;::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>&gt;</h4></section><section id="method.transform-17" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#111">Source</a><a href="#method.transform-17" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;'a self) -&gt; &amp;'a Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-17" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#111">Source</a><a href="#method.transform_owned-17" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-17" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#111">Source</a><a href="#method.make-17" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(from: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-17" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#111">Source</a><a href="#method.transform_mut-17" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-%5BT;+N%5D" class="impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#125-128">Source</a><a href="#impl-Yokeable%3C'a%3E-for-%5BT;+N%5D" class="anchor">§</a><h3 class="code-header">impl&lt;'a, T: 'static + for&lt;'b&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'b&gt;, const N: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a>&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.array.html">[T; N]</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Output-19" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#126">Source</a><a href="#associatedtype.Output-19" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = [&lt;T as <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt;&gt;::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.array.html">N</a>]</h4></section><section id="method.transform-18" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#127">Source</a><a href="#method.transform-18" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;'a self) -&gt; &amp;'a Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-18" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#127">Source</a><a href="#method.transform_owned-18" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-18" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#127">Source</a><a href="#method.make-18" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(from: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-18" class="method trait-impl"><a class="src rightside" href="../src/yoke/macro_impls.rs.html#127">Source</a><a href="#method.transform_mut-18" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Yokeable%3C'a%3E-for-PhantomData%3CT%3E" class="impl"><a class="src rightside" href="../src/yoke/yokeable.rs.html#338-360">Source</a><a href="#impl-Yokeable%3C'a%3E-for-PhantomData%3CT%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a, T: ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + 'static&gt; <a class="trait" href="trait.Yokeable.html" title="trait yoke::Yokeable">Yokeable</a>&lt;'a&gt; for <a class="struct" href="https://doc.rust-lang.org/1.93.1/core/marker/struct.PhantomData.html" title="struct core::marker::PhantomData">PhantomData</a>&lt;T&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.Output-20" class="associatedtype trait-impl"><a class="src rightside" href="../src/yoke/yokeable.rs.html#339">Source</a><a href="#associatedtype.Output-20" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="https://doc.rust-lang.org/1.93.1/core/marker/struct.PhantomData.html" title="struct core::marker::PhantomData">PhantomData</a>&lt;T&gt;</h4></section><section id="method.transform-19" class="method trait-impl"><a class="src rightside" href="../src/yoke/yokeable.rs.html#341-343">Source</a><a href="#method.transform-19" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform" class="fn">transform</a>(&amp;'a self) -&gt; &amp;'a Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.transform_owned-19" class="method trait-impl"><a class="src rightside" href="../src/yoke/yokeable.rs.html#345-347">Source</a><a href="#method.transform_owned-19" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_owned" class="fn">transform_owned</a>(self) -&gt; Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a></h4></section><section id="method.make-19" class="method trait-impl"><a class="src rightside" href="../src/yoke/yokeable.rs.html#349-351">Source</a><a href="#method.make-19" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="#tymethod.make" class="fn">make</a>(from: Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>) -&gt; Self</h4></section><section id="method.transform_mut-19" class="method trait-impl"><a class="src rightside" href="../src/yoke/yokeable.rs.html#353-359">Source</a><a href="#method.transform_mut-19" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.transform_mut" class="fn">transform_mut</a>&lt;F&gt;(&amp;'a mut self, f: F)<div class="where">where
F: 'static + for&lt;'b&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'b mut Self::<a class="associatedtype" href="trait.Yokeable.html#associatedtype.Output" title="type yoke::Yokeable::Output">Output</a>),</div></h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../trait.impl/yoke/yokeable/trait.Yokeable.js" data-ignore-extern-crates="std,core" async></script></section></div></main></body></html>