Files
GopherGate/target/doc/zerocopy/error/enum.ConvertError.html
2026-02-26 12:00:21 -05:00

182 lines
72 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="Zerocopys generic error type."><title>ConvertError in zerocopy::error - 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="zerocopy" 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 enum"><!--[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="#">ConvertError</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../zerocopy/index.html">zerocopy</a><span class="version">0.8.39</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Convert<wbr>Error</a></h2><h3><a href="#variants">Variants</a></h3><ul class="block variant"><li><a href="#variant.Alignment" title="Alignment">Alignment</a></li><li><a href="#variant.Size" title="Size">Size</a></li><li><a href="#variant.Validity" title="Validity">Validity</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.into_src" title="into_src">into_src</a></li><li><a href="#method.into_src-1" title="into_src">into_src</a></li><li><a href="#method.into_src-2" title="into_src">into_src</a></li><li><a href="#method.map_src" title="map_src">map_src</a></li><li><a href="#method.map_src-1" title="map_src">map_src</a></li><li><a href="#method.map_src-2" title="map_src">map_src</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Clone-for-ConvertError%3CA,+S,+V%3E" title="Clone">Clone</a></li><li><a href="#impl-Debug-for-ConvertError%3CA,+S,+V%3E" title="Debug">Debug</a></li><li><a href="#impl-Display-for-ConvertError%3CA,+S,+V%3E" title="Display">Display</a></li><li><a href="#impl-Eq-for-ConvertError%3CA,+S,+V%3E" title="Eq">Eq</a></li><li><a href="#impl-Error-for-ConvertError%3CA,+S,+V%3E" title="Error">Error</a></li><li><a href="#impl-From%3CAlignmentError%3CSrc,+Dst%3E%3E-for-ConvertError%3CAlignmentError%3CSrc,+Dst%3E,+S,+V%3E" title="From&#60;AlignmentError&#60;Src, Dst&#62;&#62;">From&#60;AlignmentError&#60;Src, Dst&#62;&#62;</a></li><li><a href="#impl-From%3CConvertError%3CAlignmentError%3CSrc,+Dst%3E,+S,+V%3E%3E-for-ConvertError%3CInfallible,+S,+V%3E" title="From&#60;ConvertError&#60;AlignmentError&#60;Src, Dst&#62;, S, V&#62;&#62;">From&#60;ConvertError&#60;AlignmentError&#60;Src, Dst&#62;, S, V&#62;&#62;</a></li><li><a href="#impl-From%3CConvertError%3CAlignmentError%3CSrc,+Dst%3E,+SizeError%3CSrc,+Dst%3E,+Infallible%3E%3E-for-ConvertError%3CAlignmentError%3CSrc,+Dst%3E,+SizeError%3CSrc,+Dst%3E,+ValidityError%3CSrc,+Dst%3E%3E" title="From&#60;ConvertError&#60;AlignmentError&#60;Src, Dst&#62;, SizeError&#60;Src, Dst&#62;, Infallible&#62;&#62;">From&#60;ConvertError&#60;AlignmentError&#60;Src, Dst&#62;, SizeError&#60;Src, Dst&#62;, Infallible&#62;&#62;</a></li><li><a href="#impl-From%3CConvertError%3CAlignmentError%3CSrc,+Dst%3E,+SizeError%3CSrc,+Dst%3E,+Infallible%3E%3E-for-SizeError%3CSrc,+Dst%3E" title="From&#60;ConvertError&#60;AlignmentError&#60;Src, Dst&#62;, SizeError&#60;Src, Dst&#62;, Infallible&#62;&#62;">From&#60;ConvertError&#60;AlignmentError&#60;Src, Dst&#62;, SizeError&#60;Src, Dst&#62;, Infallible&#62;&#62;</a></li><li><a href="#impl-From%3CSizeError%3CSrc,+Dst%3E%3E-for-ConvertError%3CA,+SizeError%3CSrc,+Dst%3E,+V%3E" title="From&#60;SizeError&#60;Src, Dst&#62;&#62;">From&#60;SizeError&#60;Src, Dst&#62;&#62;</a></li><li><a href="#impl-From%3CValidityError%3CSrc,+Dst%3E%3E-for-ConvertError%3CA,+S,+ValidityError%3CSrc,+Dst%3E%3E" title="From&#60;ValidityError&#60;Src, Dst&#62;&#62;">From&#60;ValidityError&#60;Src, Dst&#62;&#62;</a></li><li><a href="#impl-PartialEq-for-ConvertError%3CA,+S,+V%3E" title="PartialEq">PartialEq</a></li><li><a href="#impl-StructuralPartialEq-for-ConvertError%3CA,+S,+V%3E" title="StructuralPartialEq">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-ConvertError%3CA,+S,+V%3E" title="Freeze">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-ConvertError%3CA,+S,+V%3E" title="RefUnwindSafe">RefUnwindSafe</a></li><li><a href="#impl-Send-for-ConvertError%3CA,+S,+V%3E" title="Send">Send</a></li><li><a href="#impl-Sync-for-ConvertError%3CA,+S,+V%3E" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-ConvertError%3CA,+S,+V%3E" title="Unpin">Unpin</a></li><li><a href="#impl-UnwindSafe-for-ConvertError%3CA,+S,+V%3E" title="UnwindSafe">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T" title="Any">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T" title="Borrow&#60;T&#62;">Borrow&#60;T&#62;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut&#60;T&#62;">BorrowMut&#60;T&#62;</a></li><li><a href="#impl-CloneToUninit-for-T" title="CloneToUninit">CloneToUninit</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From&#60;T&#62;">From&#60;T&#62;</a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into&#60;U&#62;">Into&#60;U&#62;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom&#60;U&#62;">TryFrom&#60;U&#62;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto&#60;U&#62;">TryInto&#60;U&#62;</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="index.html">In zerocopy::<wbr>error</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">zerocopy</a>::<wbr><a href="index.html">error</a></div><h1>Enum <span class="enum">Convert<wbr>Error</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/zerocopy/error.rs.html#153-160">Source</a> </span></div><pre class="rust item-decl"><code>pub enum ConvertError&lt;A, S, V&gt; {
Alignment(A),
Size(S),
Validity(V),
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Zerocopys generic error type.</p>
<p>Generally speaking, zerocopys conversions may fail for one of up to three
reasons:</p>
<ul>
<li><a href="struct.AlignmentError.html" title="struct zerocopy::error::AlignmentError"><code>AlignmentError</code></a>: the conversion source was improperly aligned</li>
<li><a href="struct.SizeError.html" title="struct zerocopy::error::SizeError"><code>SizeError</code></a>: the conversion source was of incorrect size</li>
<li><a href="struct.ValidityError.html" title="struct zerocopy::error::ValidityError"><code>ValidityError</code></a>: the conversion source contained invalid data</li>
</ul>
<p>However, not all conversions produce all errors. For instance,
<a href="../trait.FromBytes.html#method.ref_from_bytes" title="associated function zerocopy::FromBytes::ref_from_bytes"><code>FromBytes::ref_from_bytes</code></a> may fail due to alignment or size issues, but
not validity issues. This generic error type captures these
(im)possibilities via parameterization: <code>A</code> is parameterized with
<a href="struct.AlignmentError.html" title="struct zerocopy::error::AlignmentError"><code>AlignmentError</code></a>, <code>S</code> is parameterized with <a href="struct.SizeError.html" title="struct zerocopy::error::SizeError"><code>SizeError</code></a>, and <code>V</code> is
parameterized with <a href="https://doc.rust-lang.org/1.93.1/core/convert/enum.Infallible.html" title="enum core::convert::Infallible"><code>Infallible</code></a>.</p>
<p>Zerocopy never uses this type directly in its API. Rather, we provide three
pre-parameterized aliases:</p>
<ul>
<li><a href="type.CastError.html" title="type zerocopy::error::CastError"><code>CastError</code></a>: the error type of reference conversions</li>
<li><a href="type.TryCastError.html" title="type zerocopy::error::TryCastError"><code>TryCastError</code></a>: the error type of fallible reference conversions</li>
<li><a href="type.TryReadError.html" title="type zerocopy::error::TryReadError"><code>TryReadError</code></a>: the error type of fallible read conversions</li>
</ul>
</div></details><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Alignment" class="variant"><a href="#variant.Alignment" class="anchor">§</a><h3 class="code-header">Alignment(A)</h3></section><div class="docblock"><p>The conversion source was improperly aligned.</p>
</div><section id="variant.Size" class="variant"><a href="#variant.Size" class="anchor">§</a><h3 class="code-header">Size(S)</h3></section><div class="docblock"><p>The conversion source was of incorrect size.</p>
</div><section id="variant.Validity" class="variant"><a href="#variant.Validity" class="anchor">§</a><h3 class="code-header">Validity(V)</h3></section><div class="docblock"><p>The conversion source contained invalid data.</p>
</div></div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ConvertError%3CAlignmentError%3CSrc,+Dst%3E,+SizeError%3CSrc,+Dst%3E,+Infallible%3E" class="impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#729-790">Source</a><a href="#impl-ConvertError%3CAlignmentError%3CSrc,+Dst%3E,+SizeError%3CSrc,+Dst%3E,+Infallible%3E" class="anchor">§</a><h3 class="code-header">impl&lt;Src, Dst: ?<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="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;<a class="struct" href="struct.AlignmentError.html" title="struct zerocopy::error::AlignmentError">AlignmentError</a>&lt;Src, Dst&gt;, <a class="struct" href="struct.SizeError.html" title="struct zerocopy::error::SizeError">SizeError</a>&lt;Src, Dst&gt;, <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a>&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into_src" class="method"><a class="src rightside" href="../../src/zerocopy/error.rs.html#732-738">Source</a><h4 class="code-header">pub fn <a href="#method.into_src" class="fn">into_src</a>(self) -&gt; Src</h4></section></summary><div class="docblock"><p>Produces the source underlying the failed conversion.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.map_src" class="method"><a class="src rightside" href="../../src/zerocopy/error.rs.html#771-777">Source</a><h4 class="code-header">pub fn <a href="#method.map_src" class="fn">map_src</a>&lt;NewSrc&gt;(
self,
f: impl <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>(Src) -&gt; NewSrc,
) -&gt; <a class="type" href="type.CastError.html" title="type zerocopy::error::CastError">CastError</a>&lt;NewSrc, Dst&gt;</h4></section></summary><div class="docblock"><p>Maps the source value associated with the conversion error.</p>
<p>This can help mitigate <a href="index.html#send-sync-and-static" title="mod zerocopy::error">issues with <code>Send</code>, <code>Sync</code> and <code>'static</code>
bounds</a>.</p>
<h5 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples</h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>zerocopy::<span class="kw-2">*</span>;
<span class="kw">let </span>source: [u8; <span class="number">3</span>] = [<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
<span class="comment">// Try to read a `u32` from `source`. This will fail because there are insufficient
// bytes in `source`.
</span><span class="kw">let </span>maybe_u32: <span class="prelude-ty">Result</span>&lt;<span class="kw-2">&amp;</span>u32, CastError&lt;<span class="kw-2">&amp;</span>[u8], u32&gt;&gt; = u32::ref_from_bytes(<span class="kw-2">&amp;</span>source[..]);
<span class="comment">// Map the error's source to its size and address.
</span><span class="kw">let </span>maybe_u32: <span class="prelude-ty">Result</span>&lt;<span class="kw-2">&amp;</span>u32, CastError&lt;(usize, usize), u32&gt;&gt; = maybe_u32.map_err(|err| {
err.map_src(|src| (src.len(), src.as_ptr() <span class="kw">as </span>usize))
});</code></pre></div></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-ConvertError%3CAlignmentError%3CSrc,+Dst%3E,+SizeError%3CSrc,+Dst%3E,+ValidityError%3CSrc,+Dst%3E%3E" class="impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#873-915">Source</a><a href="#impl-ConvertError%3CAlignmentError%3CSrc,+Dst%3E,+SizeError%3CSrc,+Dst%3E,+ValidityError%3CSrc,+Dst%3E%3E" class="anchor">§</a><h3 class="code-header">impl&lt;Src, Dst: ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="../trait.TryFromBytes.html" title="trait zerocopy::TryFromBytes">TryFromBytes</a>&gt; <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;<a class="struct" href="struct.AlignmentError.html" title="struct zerocopy::error::AlignmentError">AlignmentError</a>&lt;Src, Dst&gt;, <a class="struct" href="struct.SizeError.html" title="struct zerocopy::error::SizeError">SizeError</a>&lt;Src, Dst&gt;, <a class="struct" href="struct.ValidityError.html" title="struct zerocopy::error::ValidityError">ValidityError</a>&lt;Src, Dst&gt;&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into_src-1" class="method"><a class="src rightside" href="../../src/zerocopy/error.rs.html#876-882">Source</a><h4 class="code-header">pub fn <a href="#method.into_src-1" class="fn">into_src</a>(self) -&gt; Src</h4></section></summary><div class="docblock"><p>Produces the source underlying the failed conversion.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.map_src-1" class="method"><a class="src rightside" href="../../src/zerocopy/error.rs.html#908-914">Source</a><h4 class="code-header">pub fn <a href="#method.map_src-1" class="fn">map_src</a>&lt;NewSrc&gt;(
self,
f: impl <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>(Src) -&gt; NewSrc,
) -&gt; <a class="type" href="type.TryCastError.html" title="type zerocopy::error::TryCastError">TryCastError</a>&lt;NewSrc, Dst&gt;</h4></section></summary><div class="docblock"><p>Maps the source value associated with the conversion error.</p>
<p>This can help mitigate <a href="index.html#send-sync-and-static" title="mod zerocopy::error">issues with <code>Send</code>, <code>Sync</code> and <code>'static</code>
bounds</a>.</p>
<h5 id="examples-1"><a class="doc-anchor" href="#examples-1">§</a>Examples</h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>core::num::NonZeroU32;
<span class="kw">use </span>zerocopy::<span class="kw-2">*</span>;
<span class="kw">let </span>source: [u8; <span class="number">3</span>] = [<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>];
<span class="comment">// Try to read a `NonZeroU32` from `source`.
</span><span class="kw">let </span>maybe_u32: <span class="prelude-ty">Result</span>&lt;<span class="kw-2">&amp;</span>NonZeroU32, TryCastError&lt;<span class="kw-2">&amp;</span>[u8], NonZeroU32&gt;&gt;
= NonZeroU32::try_ref_from_bytes(<span class="kw-2">&amp;</span>source[..]);
<span class="comment">// Map the error's source to its size and address.
</span><span class="kw">let </span>maybe_u32: <span class="prelude-ty">Result</span>&lt;<span class="kw-2">&amp;</span>NonZeroU32, TryCastError&lt;(usize, usize), NonZeroU32&gt;&gt; =
maybe_u32.map_err(|err| {
err.map_src(|src| (src.len(), src.as_ptr() <span class="kw">as </span>usize))
});</code></pre></div></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-ConvertError%3CInfallible,+SizeError%3CSrc,+Dst%3E,+ValidityError%3CSrc,+Dst%3E%3E" class="impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#939-981">Source</a><a href="#impl-ConvertError%3CInfallible,+SizeError%3CSrc,+Dst%3E,+ValidityError%3CSrc,+Dst%3E%3E" class="anchor">§</a><h3 class="code-header">impl&lt;Src, Dst: ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="../trait.TryFromBytes.html" title="trait zerocopy::TryFromBytes">TryFromBytes</a>&gt; <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.93.1/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a>, <a class="struct" href="struct.SizeError.html" title="struct zerocopy::error::SizeError">SizeError</a>&lt;Src, Dst&gt;, <a class="struct" href="struct.ValidityError.html" title="struct zerocopy::error::ValidityError">ValidityError</a>&lt;Src, Dst&gt;&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into_src-2" class="method"><a class="src rightside" href="../../src/zerocopy/error.rs.html#942-948">Source</a><h4 class="code-header">pub fn <a href="#method.into_src-2" class="fn">into_src</a>(self) -&gt; Src</h4></section></summary><div class="docblock"><p>Produces the source underlying the failed conversion.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.map_src-2" class="method"><a class="src rightside" href="../../src/zerocopy/error.rs.html#974-980">Source</a><h4 class="code-header">pub fn <a href="#method.map_src-2" class="fn">map_src</a>&lt;NewSrc&gt;(
self,
f: impl <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>(Src) -&gt; NewSrc,
) -&gt; <a class="type" href="type.TryReadError.html" title="type zerocopy::error::TryReadError">TryReadError</a>&lt;NewSrc, Dst&gt;</h4></section></summary><div class="docblock"><p>Maps the source value associated with the conversion error.</p>
<p>This can help mitigate <a href="index.html#send-sync-and-static" title="mod zerocopy::error">issues with <code>Send</code>, <code>Sync</code> and <code>'static</code>
bounds</a>.</p>
<h5 id="examples-2"><a class="doc-anchor" href="#examples-2">§</a>Examples</h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>core::num::NonZeroU32;
<span class="kw">use </span>zerocopy::<span class="kw-2">*</span>;
<span class="kw">let </span>source: [u8; <span class="number">3</span>] = [<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>];
<span class="comment">// Try to read a `NonZeroU32` from `source`.
</span><span class="kw">let </span>maybe_u32: <span class="prelude-ty">Result</span>&lt;NonZeroU32, TryReadError&lt;<span class="kw-2">&amp;</span>[u8], NonZeroU32&gt;&gt;
= NonZeroU32::try_read_from_bytes(<span class="kw-2">&amp;</span>source[..]);
<span class="comment">// Map the error's source to its size.
</span><span class="kw">let </span>maybe_u32: <span class="prelude-ty">Result</span>&lt;NonZeroU32, TryReadError&lt;usize, NonZeroU32&gt;&gt; =
maybe_u32.map_err(|err| {
err.map_src(|src| src.len())
});</code></pre></div></div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ConvertError%3CA,+S,+V%3E" class="impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#152">Source</a><a href="#impl-Clone-for-ConvertError%3CA,+S,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;A, S, V&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#152">Source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&amp;self) -&gt; <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;A, S, V&gt;</h4></section></summary><div class='docblock'>Returns a duplicate of the value. <a href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.93.1/src/core/clone.rs.html#245-247">Source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&amp;mut self, source: &amp;Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-ConvertError%3CA,+S,+V%3E" class="impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#210-219">Source</a><a href="#impl-Debug-for-ConvertError%3CA,+S,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>, S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>, V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;A, S, V&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#212-218">Source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.93.1/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/1.93.1/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Display-for-ConvertError%3CA,+S,+V%3E" class="impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#226-235">Source</a><a href="#impl-Display-for-ConvertError%3CA,+S,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>, S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>, V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;A, S, V&gt;</h3><div class="docblock"><p>Produces a human-readable error message.</p>
</div></section></summary><div class="docblock"><p>The message differs between debug and release builds. When
<code>debug_assertions</code> are enabled, this message is verbose and includes
potentially sensitive information.</p>
</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#228-234">Source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.93.1/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/1.93.1/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Error-for-ConvertError%3CA,+S,+V%3E" class="impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#239-245">Source</a><a href="#impl-Error-for-ConvertError%3CA,+S,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;A, S, V&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;A, S, V&gt;<div class="where">where
A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>,
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>,
V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>,</div></h3><span class="item-info"><div class="stab portability">Available on <strong>non-<code>no_zerocopy_core_error_1_81_0</code> or crate feature <code>std</code></strong> only.</div></span></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.source" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="src" href="https://doc.rust-lang.org/1.93.1/src/core/error.rs.html#111">Source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/error/trait.Error.html#method.source" class="fn">source</a>(&amp;self) -&gt; <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;&amp;(dyn <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)&gt;</h4></section></summary><div class='docblock'>Returns the lower-level source of this error, if any. <a href="https://doc.rust-lang.org/1.93.1/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.description" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.93.1/src/core/error.rs.html#137">Source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/error/trait.Error.html#method.description" class="fn">description</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.93.1/core/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/1.93.1/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.93.1/src/core/error.rs.html#147">Source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&amp;self) -&gt; <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;&amp;dyn <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/error/trait.Error.html" title="trait core::error::Error">Error</a>&gt;</h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/error.rs.html#210">Source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/error/trait.Error.html#method.provide" class="fn">provide</a>&lt;'a&gt;(&amp;'a self, request: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.93.1/core/error/struct.Request.html" title="struct core::error::Request">Request</a>&lt;'a&gt;)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type-based access to context intended for error reports. <a href="https://doc.rust-lang.org/1.93.1/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CAlignmentError%3CSrc,+Dst%3E%3E-for-ConvertError%3CAlignmentError%3CSrc,+Dst%3E,+S,+V%3E" class="impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#419-426">Source</a><a href="#impl-From%3CAlignmentError%3CSrc,+Dst%3E%3E-for-ConvertError%3CAlignmentError%3CSrc,+Dst%3E,+S,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;Src, Dst: ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, S, V&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.AlignmentError.html" title="struct zerocopy::error::AlignmentError">AlignmentError</a>&lt;Src, Dst&gt;&gt; for <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;<a class="struct" href="struct.AlignmentError.html" title="struct zerocopy::error::AlignmentError">AlignmentError</a>&lt;Src, Dst&gt;, S, V&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#423-425">Source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="struct" href="struct.AlignmentError.html" title="struct zerocopy::error::AlignmentError">AlignmentError</a>&lt;Src, Dst&gt;) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CConvertError%3CAlignmentError%3CSrc,+Dst%3E,+S,+V%3E%3E-for-ConvertError%3CInfallible,+S,+V%3E" class="impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#162-208">Source</a><a href="#impl-From%3CConvertError%3CAlignmentError%3CSrc,+Dst%3E,+S,+V%3E%3E-for-ConvertError%3CInfallible,+S,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;Src, Dst: ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="../trait.Unaligned.html" title="trait zerocopy::Unaligned">Unaligned</a>, S, V&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;<a class="struct" href="struct.AlignmentError.html" title="struct zerocopy::error::AlignmentError">AlignmentError</a>&lt;Src, Dst&gt;, S, V&gt;&gt; for <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.93.1/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a>, S, V&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#198-207">Source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(
err: <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;<a class="struct" href="struct.AlignmentError.html" title="struct zerocopy::error::AlignmentError">AlignmentError</a>&lt;Src, Dst&gt;, S, V&gt;,
) -&gt; <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.93.1/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a>, S, V&gt;</h4></section></summary><div class="docblock"><p>Infallibly discards the alignment error from this <code>ConvertError</code> since
<code>Dst</code> is unaligned.</p>
<p>Since <a href="../trait.Unaligned.html" title="trait zerocopy::Unaligned"><code>Dst: Unaligned</code></a>, it is impossible to encounter an alignment
error. This method permits discarding that alignment error infallibly
and replacing it with <a href="https://doc.rust-lang.org/1.93.1/core/convert/enum.Infallible.html" title="enum core::convert::Infallible"><code>Infallible</code></a>.</p>
<h5 id="examples-3"><a class="doc-anchor" href="#examples-3">§</a>Examples</h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>core::convert::Infallible;
<span class="kw">use </span>zerocopy::<span class="kw-2">*</span>;
<span class="attr">#[derive(TryFromBytes, KnownLayout, Unaligned, Immutable)]
#[repr(C, packed)]
</span><span class="kw">struct </span>Bools {
one: bool,
two: bool,
many: [bool],
}
<span class="kw">impl </span>Bools {
<span class="kw">fn </span>parse(bytes: <span class="kw-2">&amp;</span>[u8]) -&gt; <span class="prelude-ty">Result</span>&lt;<span class="kw-2">&amp;</span>Bools, AlignedTryCastError&lt;<span class="kw-2">&amp;</span>[u8], Bools&gt;&gt; {
<span class="comment">// Since `Bools: Unaligned`, we can infallibly discard
// the alignment error.
</span>Bools::try_ref_from_bytes(bytes).map_err(Into::into)
}
}</code></pre></div></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CConvertError%3CAlignmentError%3CSrc,+Dst%3E,+SizeError%3CSrc,+Dst%3E,+Infallible%3E%3E-for-ConvertError%3CAlignmentError%3CSrc,+Dst%3E,+SizeError%3CSrc,+Dst%3E,+ValidityError%3CSrc,+Dst%3E%3E" class="impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#917-926">Source</a><a href="#impl-From%3CConvertError%3CAlignmentError%3CSrc,+Dst%3E,+SizeError%3CSrc,+Dst%3E,+Infallible%3E%3E-for-ConvertError%3CAlignmentError%3CSrc,+Dst%3E,+SizeError%3CSrc,+Dst%3E,+ValidityError%3CSrc,+Dst%3E%3E" class="anchor">§</a><h3 class="code-header">impl&lt;Src, Dst: ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="../trait.TryFromBytes.html" title="trait zerocopy::TryFromBytes">TryFromBytes</a>&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;<a class="struct" href="struct.AlignmentError.html" title="struct zerocopy::error::AlignmentError">AlignmentError</a>&lt;Src, Dst&gt;, <a class="struct" href="struct.SizeError.html" title="struct zerocopy::error::SizeError">SizeError</a>&lt;Src, Dst&gt;, <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a>&gt;&gt; for <a class="type" href="type.TryCastError.html" title="type zerocopy::error::TryCastError">TryCastError</a>&lt;Src, Dst&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-5" class="method trait-impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#919-925">Source</a><a href="#method.from-5" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(value: <a class="type" href="type.CastError.html" title="type zerocopy::error::CastError">CastError</a>&lt;Src, Dst&gt;) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CConvertError%3CAlignmentError%3CSrc,+Dst%3E,+SizeError%3CSrc,+Dst%3E,+Infallible%3E%3E-for-SizeError%3CSrc,+Dst%3E" class="impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#808-857">Source</a><a href="#impl-From%3CConvertError%3CAlignmentError%3CSrc,+Dst%3E,+SizeError%3CSrc,+Dst%3E,+Infallible%3E%3E-for-SizeError%3CSrc,+Dst%3E" class="anchor">§</a><h3 class="code-header">impl&lt;Src, Dst: ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="../trait.Unaligned.html" title="trait zerocopy::Unaligned">Unaligned</a>&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;<a class="struct" href="struct.AlignmentError.html" title="struct zerocopy::error::AlignmentError">AlignmentError</a>&lt;Src, Dst&gt;, <a class="struct" href="struct.SizeError.html" title="struct zerocopy::error::SizeError">SizeError</a>&lt;Src, Dst&gt;, <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a>&gt;&gt; for <a class="struct" href="struct.SizeError.html" title="struct zerocopy::error::SizeError">SizeError</a>&lt;Src, Dst&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-4" class="method trait-impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#849-856">Source</a><a href="#method.from-4" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="type" href="type.CastError.html" title="type zerocopy::error::CastError">CastError</a>&lt;Src, Dst&gt;) -&gt; <a class="struct" href="struct.SizeError.html" title="struct zerocopy::error::SizeError">SizeError</a>&lt;Src, Dst&gt;</h4></section></summary><div class="docblock"><p>Infallibly extracts the <a href="struct.SizeError.html" title="struct zerocopy::error::SizeError"><code>SizeError</code></a> from this <code>CastError</code> since <code>Dst</code>
is unaligned.</p>
<p>Since <a href="../trait.Unaligned.html" title="trait zerocopy::Unaligned"><code>Dst: Unaligned</code></a>, it is impossible to encounter an alignment
error, and so the only error that can be encountered at runtime is a
<a href="struct.SizeError.html" title="struct zerocopy::error::SizeError"><code>SizeError</code></a>. This method permits extracting that <code>SizeError</code>
infallibly.</p>
<h5 id="examples-4"><a class="doc-anchor" href="#examples-4">§</a>Examples</h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>zerocopy::<span class="kw-2">*</span>;
<span class="attr">#[derive(FromBytes, IntoBytes, KnownLayout, Immutable, Unaligned)]
#[repr(C)]
</span><span class="kw">struct </span>UdpHeader {
src_port: [u8; <span class="number">2</span>],
dst_port: [u8; <span class="number">2</span>],
length: [u8; <span class="number">2</span>],
checksum: [u8; <span class="number">2</span>],
}
<span class="attr">#[derive(FromBytes, IntoBytes, KnownLayout, Immutable, Unaligned)]
#[repr(C, packed)]
</span><span class="kw">struct </span>UdpPacket {
header: UdpHeader,
body: [u8],
}
<span class="kw">impl </span>UdpPacket {
<span class="kw">pub fn </span>parse(bytes: <span class="kw-2">&amp;</span>[u8]) -&gt; <span class="prelude-ty">Result</span>&lt;<span class="kw-2">&amp;</span>UdpPacket, SizeError&lt;<span class="kw-2">&amp;</span>[u8], UdpPacket&gt;&gt; {
<span class="comment">// Since `UdpPacket: Unaligned`, we can map the `CastError` to a `SizeError`.
</span>UdpPacket::ref_from_bytes(bytes).map_err(Into::into)
}
}</code></pre></div></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CSizeError%3CSrc,+Dst%3E%3E-for-ConvertError%3CA,+SizeError%3CSrc,+Dst%3E,+V%3E" class="impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#580-585">Source</a><a href="#impl-From%3CSizeError%3CSrc,+Dst%3E%3E-for-ConvertError%3CA,+SizeError%3CSrc,+Dst%3E,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;Src, Dst: ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, A, V&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.SizeError.html" title="struct zerocopy::error::SizeError">SizeError</a>&lt;Src, Dst&gt;&gt; for <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;A, <a class="struct" href="struct.SizeError.html" title="struct zerocopy::error::SizeError">SizeError</a>&lt;Src, Dst&gt;, V&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#582-584">Source</a><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="struct" href="struct.SizeError.html" title="struct zerocopy::error::SizeError">SizeError</a>&lt;Src, Dst&gt;) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CValidityError%3CSrc,+Dst%3E%3E-for-ConvertError%3CA,+S,+ValidityError%3CSrc,+Dst%3E%3E" class="impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#710-717">Source</a><a href="#impl-From%3CValidityError%3CSrc,+Dst%3E%3E-for-ConvertError%3CA,+S,+ValidityError%3CSrc,+Dst%3E%3E" class="anchor">§</a><h3 class="code-header">impl&lt;Src, Dst: ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="../trait.TryFromBytes.html" title="trait zerocopy::TryFromBytes">TryFromBytes</a>, A, S&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ValidityError.html" title="struct zerocopy::error::ValidityError">ValidityError</a>&lt;Src, Dst&gt;&gt; for <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;A, S, <a class="struct" href="struct.ValidityError.html" title="struct zerocopy::error::ValidityError">ValidityError</a>&lt;Src, Dst&gt;&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-3" class="method trait-impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#714-716">Source</a><a href="#method.from-3" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="struct" href="struct.ValidityError.html" title="struct zerocopy::error::ValidityError">ValidityError</a>&lt;Src, Dst&gt;) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialEq-for-ConvertError%3CA,+S,+V%3E" class="impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#152">Source</a><a href="#impl-PartialEq-for-ConvertError%3CA,+S,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>, S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>, V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a> for <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;A, S, V&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#152">Source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&amp;self, other: &amp;<a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;A, S, V&gt;) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/core/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests for <code>self</code> and <code>other</code> values to be equal, and is used by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.93.1/src/core/cmp.rs.html#264">Source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/core/primitive.reference.html">&amp;Rhs</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/core/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests for <code>!=</code>. The default implementation is almost always sufficient,
and should not be overridden without very good reason.</div></details></div></details><section id="impl-Eq-for-ConvertError%3CA,+S,+V%3E" class="impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#152">Source</a><a href="#impl-Eq-for-ConvertError%3CA,+S,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a>, S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a>, V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a>&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;A, S, V&gt;</h3></section><section id="impl-StructuralPartialEq-for-ConvertError%3CA,+S,+V%3E" class="impl"><a class="src rightside" href="../../src/zerocopy/error.rs.html#152">Source</a><a href="#impl-StructuralPartialEq-for-ConvertError%3CA,+S,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;A, S, V&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;A, S, V&gt;</h3></section></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-ConvertError%3CA,+S,+V%3E" class="impl"><a href="#impl-Freeze-for-ConvertError%3CA,+S,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;A, S, V&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;A, S, V&gt;<div class="where">where
A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a>,
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a>,
V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a>,</div></h3></section><section id="impl-RefUnwindSafe-for-ConvertError%3CA,+S,+V%3E" class="impl"><a href="#impl-RefUnwindSafe-for-ConvertError%3CA,+S,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;A, S, V&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;A, S, V&gt;<div class="where">where
A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,
V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</div></h3></section><section id="impl-Send-for-ConvertError%3CA,+S,+V%3E" class="impl"><a href="#impl-Send-for-ConvertError%3CA,+S,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;A, S, V&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;A, S, V&gt;<div class="where">where
A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section><section id="impl-Sync-for-ConvertError%3CA,+S,+V%3E" class="impl"><a href="#impl-Sync-for-ConvertError%3CA,+S,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;A, S, V&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;A, S, V&gt;<div class="where">where
A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,
V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</div></h3></section><section id="impl-Unpin-for-ConvertError%3CA,+S,+V%3E" class="impl"><a href="#impl-Unpin-for-ConvertError%3CA,+S,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;A, S, V&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;A, S, V&gt;<div class="where">where
A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,
V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</div></h3></section><section id="impl-UnwindSafe-for-ConvertError%3CA,+S,+V%3E" class="impl"><a href="#impl-UnwindSafe-for-ConvertError%3CA,+S,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;A, S, V&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.ConvertError.html" title="enum zerocopy::error::ConvertError">ConvertError</a>&lt;A, S, V&gt;<div class="where">where
A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,
V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</div></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/any.rs.html#138">Source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<div class="where">where
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>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.93.1/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/1.93.1/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/borrow.rs.html#212">Source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<div class="where">where
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>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/borrow.rs.html#214">Source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/core/primitive.reference.html">&amp;T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/borrow.rs.html#221">Source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<div class="where">where
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>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/borrow.rs.html#222">Source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/core/primitive.reference.html">&amp;mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-CloneToUninit-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/clone.rs.html#547">Source</a><a href="#impl-CloneToUninit-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.CloneToUninit.html" title="trait core::clone::CloneToUninit">CloneToUninit</a> for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone_to_uninit" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/clone.rs.html#549">Source</a><a href="#method.clone_to_uninit" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="https://doc.rust-lang.org/1.93.1/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit" class="fn">clone_to_uninit</a>(&amp;self, dest: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/core/primitive.pointer.html">*mut </a><a class="primitive" href="https://doc.rust-lang.org/1.93.1/core/primitive.u8.html">u8</a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>clone_to_uninit</code>)</span></div></span><div class='docblock'>Performs copy-assignment from <code>self</code> to <code>dest</code>. <a href="https://doc.rust-lang.org/1.93.1/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#785">Source</a><a href="#impl-From%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-6" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#788">Source</a><a href="#method.from-6" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#767-769">Source</a><a href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#777">Source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code><a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#827-829">Source</a><a href="#impl-TryFrom%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#831">Source</a><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#834">Source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#811-813">Source</a><a href="#impl-TryInto%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#815">Source</a><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#818">Source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details></div></section></div></main></body></html>