Files
phy/image/struct.ImageReader.html
Orion Kindel 0ce894e6b0 doc
2025-03-18 10:30:23 -05:00

90 lines
34 KiB
HTML
Raw Permalink 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="A multi-format image reader."><title>ImageReader in image - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.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" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-42caa33d.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="image" data-themes="" data-resource-suffix="" data-rustdoc-version="1.84.0 (9fc6b4312 2025-01-07)" data-channel="1.84.0" data-search-js="search-92e6798f.js" data-settings-js="settings-0f613d39.js" ><script src="../static.files/storage-59e33391.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-5f194d8c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-893ab5e7.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../image/index.html">image</a><span class="version">0.25.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Image<wbr>Reader</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#usage" title="Usage">Usage</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.clear_format" title="clear_format">clear_format</a></li><li><a href="#method.decode" title="decode">decode</a></li><li><a href="#method.format" title="format">format</a></li><li><a href="#method.into_decoder" title="into_decoder">into_decoder</a></li><li><a href="#method.into_dimensions" title="into_dimensions">into_dimensions</a></li><li><a href="#method.into_inner" title="into_inner">into_inner</a></li><li><a href="#method.limits" title="limits">limits</a></li><li><a href="#method.new" title="new">new</a></li><li><a href="#method.no_limits" title="no_limits">no_limits</a></li><li><a href="#method.open" title="open">open</a></li><li><a href="#method.set_format" title="set_format">set_format</a></li><li><a href="#method.with_format" title="with_format">with_format</a></li><li><a href="#method.with_guessed_format" title="with_guessed_format">with_guessed_format</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-ImageReader%3CR%3E" title="Freeze">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-ImageReader%3CR%3E" title="RefUnwindSafe">RefUnwindSafe</a></li><li><a href="#impl-Send-for-ImageReader%3CR%3E" title="Send">Send</a></li><li><a href="#impl-Sync-for-ImageReader%3CR%3E" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-ImageReader%3CR%3E" title="Unpin">Unpin</a></li><li><a href="#impl-UnwindSafe-for-ImageReader%3CR%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-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 class="in-crate"><a href="index.html">In crate image</a></h2></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">image</a></span><h1>Struct <span class="struct">ImageReader</span><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/image/image_reader/image_reader_type.rs.html#61-68">Source</a> </span></div><pre class="rust item-decl"><code>pub struct ImageReader&lt;R: <a class="trait" href="https://doc.rust-lang.org/1.84.0/std/io/trait.Read.html" title="trait std::io::Read">Read</a> + <a class="trait" href="https://doc.rust-lang.org/1.84.0/std/io/trait.Seek.html" title="trait std::io::Seek">Seek</a>&gt; { <span class="comment">/* private fields */</span> }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A multi-format image reader.</p>
<p>Wraps an input reader to facilitate automatic detection of an images format, appropriate
decoding method, and dispatches into the set of supported <a href="../trait.ImageDecoder.html"><code>ImageDecoder</code></a> implementations.</p>
<h3 id="usage"><a class="doc-anchor" href="#usage">§</a>Usage</h3>
<p>Opening a file, deducing the format based on the file path automatically, and trying to decode
the image contained can be performed by constructing the reader and immediately consuming it.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>image = ImageReader::open(<span class="string">"path/to/image.png"</span>)<span class="question-mark">?
</span>.decode()<span class="question-mark">?</span>;</code></pre></div>
<p>It is also possible to make a guess based on the content. This is especially handy if the
source is some blob in memory and you have constructed the reader in another way. Here is an
example with a <code>pnm</code> black-and-white subformat that encodes its pixel matrix with ascii values.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::io::Cursor;
<span class="kw">use </span>image::ImageFormat;
<span class="kw">let </span>raw_data = <span class="string">b"P1 2 2\n\
0 1\n\
1 0\n"</span>;
<span class="kw">let </span><span class="kw-2">mut </span>reader = ImageReader::new(Cursor::new(raw_data))
.with_guessed_format()
.expect(<span class="string">"Cursor io never fails"</span>);
<span class="macro">assert_eq!</span>(reader.format(), <span class="prelude-val">Some</span>(ImageFormat::Pnm));
<span class="kw">let </span>image = reader.decode()<span class="question-mark">?</span>;</code></pre></div>
<p>As a final fallback or if only a specific format must be used, the reader always allows manual
specification of the supposed image format with <a href="#method.set_format"><code>set_format</code></a>.</p>
</div></details><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-ImageReader%3CR%3E" class="impl"><a class="src rightside" href="../src/image/image_reader/image_reader_type.rs.html#70-282">Source</a><a href="#impl-ImageReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a, R: 'a + <a class="trait" href="https://doc.rust-lang.org/1.84.0/std/io/trait.BufRead.html" title="trait std::io::BufRead">BufRead</a> + <a class="trait" href="https://doc.rust-lang.org/1.84.0/std/io/trait.Seek.html" title="trait std::io::Seek">Seek</a>&gt; <a class="struct" href="struct.ImageReader.html" title="struct image::ImageReader">ImageReader</a>&lt;R&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../src/image/image_reader/image_reader_type.rs.html#81-87">Source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(buffered_reader: R) -&gt; Self</h4></section></summary><div class="docblock"><p>Create a new image reader without a preset format.</p>
<p>Assumes the reader is already buffered. For optimal performance,
consider wrapping the reader with a <code>BufReader::new()</code>.</p>
<p>It is possible to guess the format based on the content of the read object with
<a href="#method.with_guessed_format"><code>with_guessed_format</code></a>, or to set the format directly with <a href="method.set_format"><code>set_format</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.with_format" class="method"><a class="src rightside" href="../src/image/image_reader/image_reader_type.rs.html#93-99">Source</a><h4 class="code-header">pub fn <a href="#method.with_format" class="fn">with_format</a>(buffered_reader: R, format: <a class="enum" href="enum.ImageFormat.html" title="enum image::ImageFormat">ImageFormat</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Construct a reader with specified format.</p>
<p>Assumes the reader is already buffered. For optimal performance,
consider wrapping the reader with a <code>BufReader::new()</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.format" class="method"><a class="src rightside" href="../src/image/image_reader/image_reader_type.rs.html#102-104">Source</a><h4 class="code-header">pub fn <a href="#method.format" class="fn">format</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.ImageFormat.html" title="enum image::ImageFormat">ImageFormat</a>&gt;</h4></section></summary><div class="docblock"><p>Get the currently determined format.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_format" class="method"><a class="src rightside" href="../src/image/image_reader/image_reader_type.rs.html#107-109">Source</a><h4 class="code-header">pub fn <a href="#method.set_format" class="fn">set_format</a>(&amp;mut self, format: <a class="enum" href="enum.ImageFormat.html" title="enum image::ImageFormat">ImageFormat</a>)</h4></section></summary><div class="docblock"><p>Supply the format as which to interpret the read image.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.clear_format" class="method"><a class="src rightside" href="../src/image/image_reader/image_reader_type.rs.html#115-117">Source</a><h4 class="code-header">pub fn <a href="#method.clear_format" class="fn">clear_format</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Remove the current information on the image format.</p>
<p>Note that many operations require format information to be present and will return e.g. an
<code>ImageError::Unsupported</code> when the image format has not been set.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.no_limits" class="method"><a class="src rightside" href="../src/image/image_reader/image_reader_type.rs.html#120-122">Source</a><h4 class="code-header">pub fn <a href="#method.no_limits" class="fn">no_limits</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Disable all decoding limits.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.limits" class="method"><a class="src rightside" href="../src/image/image_reader/image_reader_type.rs.html#125-127">Source</a><h4 class="code-header">pub fn <a href="#method.limits" class="fn">limits</a>(&amp;mut self, limits: <a class="struct" href="struct.Limits.html" title="struct image::Limits">Limits</a>)</h4></section></summary><div class="docblock"><p>Set a custom set of decoding limits.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.into_inner" class="method"><a class="src rightside" href="../src/image/image_reader/image_reader_type.rs.html#130-132">Source</a><h4 class="code-header">pub fn <a href="#method.into_inner" class="fn">into_inner</a>(self) -&gt; R</h4></section></summary><div class="docblock"><p>Unwrap the reader.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.into_decoder" class="method"><a class="src rightside" href="../src/image/image_reader/image_reader_type.rs.html#189-194">Source</a><h4 class="code-header">pub fn <a href="#method.into_decoder" class="fn">into_decoder</a>(self) -&gt; <a class="type" href="error/type.ImageResult.html" title="type image::error::ImageResult">ImageResult</a>&lt;impl <a class="trait" href="trait.ImageDecoder.html" title="trait image::ImageDecoder">ImageDecoder</a> + 'a&gt;</h4></section></summary><div class="docblock"><p>Convert the reader into a decoder.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.with_guessed_format" class="method"><a class="src rightside" href="../src/image/image_reader/image_reader_type.rs.html#224-229">Source</a><h4 class="code-header">pub fn <a href="#method.with_guessed_format" class="fn">with_guessed_format</a>(self) -&gt; <a class="type" href="https://doc.rust-lang.org/1.84.0/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;Self&gt;</h4></section></summary><div class="docblock"><p>Make a format guess based on the content, replacing it on success.</p>
<p>Returns <code>Ok</code> with the guess if no io error occurs. Additionally, replaces the current
format if the guess was successful. If the guess was unable to determine a format then
the current format of the reader is unchanged.</p>
<p>Returns an error if the underlying reader fails. The format is unchanged. The error is a
<code>std::io::Error</code> and not <code>ImageError</code> since the only error case is an error when the
underlying reader seeks.</p>
<p>When an error occurs, the reader may not have been properly reset and it is potentially
hazardous to continue with more io.</p>
<h6 id="usage-1"><a class="doc-anchor" href="#usage-1">§</a>Usage</h6>
<p>This supplements the path based type deduction from <a href="struct.ImageReader.html#method.open" title="associated function image::ImageReader::open"><code>ImageReader::open()</code></a> with content based deduction.
This is more common in Linux and UNIX operating systems and also helpful if the path can
not be directly controlled.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>image = ImageReader::open(<span class="string">"image.unknown"</span>)<span class="question-mark">?
</span>.with_guessed_format()<span class="question-mark">?
</span>.decode()<span class="question-mark">?</span>;</code></pre></div>
</div></details><details class="toggle method-toggle" open><summary><section id="method.into_dimensions" class="method"><a class="src rightside" href="../src/image/image_reader/image_reader_type.rs.html#251-253">Source</a><h4 class="code-header">pub fn <a href="#method.into_dimensions" class="fn">into_dimensions</a>(self) -&gt; <a class="type" href="error/type.ImageResult.html" title="type image::error::ImageResult">ImageResult</a>&lt;(<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u32.html">u32</a>, <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u32.html">u32</a>)&gt;</h4></section></summary><div class="docblock"><p>Read the image dimensions.</p>
<p>Uses the current format to construct the correct reader for the format.</p>
<p>If no format was determined, returns an <code>ImageError::Unsupported</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.decode" class="method"><a class="src rightside" href="../src/image/image_reader/image_reader_type.rs.html#260-272">Source</a><h4 class="code-header">pub fn <a href="#method.decode" class="fn">decode</a>(self) -&gt; <a class="type" href="error/type.ImageResult.html" title="type image::error::ImageResult">ImageResult</a>&lt;<a class="enum" href="enum.DynamicImage.html" title="enum image::DynamicImage">DynamicImage</a>&gt;</h4></section></summary><div class="docblock"><p>Read the image (replaces <code>load</code>).</p>
<p>Uses the current format to construct the correct reader for the format.</p>
<p>If no format was determined, returns an <code>ImageError::Unsupported</code>.</p>
</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-ImageReader%3CBufReader%3CFile%3E%3E" class="impl"><a class="src rightside" href="../src/image/image_reader/image_reader_type.rs.html#284-307">Source</a><a href="#impl-ImageReader%3CBufReader%3CFile%3E%3E" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.ImageReader.html" title="struct image::ImageReader">ImageReader</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.84.0/std/io/buffered/bufreader/struct.BufReader.html" title="struct std::io::buffered::bufreader::BufReader">BufReader</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.84.0/std/fs/struct.File.html" title="struct std::fs::File">File</a>&gt;&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.open" class="method"><a class="src rightside" href="../src/image/image_reader/image_reader_type.rs.html#293-298">Source</a><h4 class="code-header">pub fn <a href="#method.open" class="fn">open</a>&lt;P&gt;(path: P) -&gt; <a class="type" href="https://doc.rust-lang.org/1.84.0/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;Self&gt;<div class="where">where
P: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.84.0/std/path/struct.Path.html" title="struct std::path::Path">Path</a>&gt;,</div></h4></section></summary><div class="docblock"><p>Open a file to read, format will be guessed from path.</p>
<p>This will not attempt any io operation on the opened file.</p>
<p>If you want to inspect the content for a better guess on the format, which does not depend
on file extensions, follow this call with a call to <a href="#method.with_guessed_format"><code>with_guessed_format</code></a>.</p>
</div></details></div></details></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-ImageReader%3CR%3E" class="impl"><a href="#impl-Freeze-for-ImageReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="struct" href="struct.ImageReader.html" title="struct image::ImageReader">ImageReader</a>&lt;R&gt;<div class="where">where
R: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a>,</div></h3></section><section id="impl-RefUnwindSafe-for-ImageReader%3CR%3E" class="impl"><a href="#impl-RefUnwindSafe-for-ImageReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.ImageReader.html" title="struct image::ImageReader">ImageReader</a>&lt;R&gt;<div class="where">where
R: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</div></h3></section><section id="impl-Send-for-ImageReader%3CR%3E" class="impl"><a href="#impl-Send-for-ImageReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.ImageReader.html" title="struct image::ImageReader">ImageReader</a>&lt;R&gt;<div class="where">where
R: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section><section id="impl-Sync-for-ImageReader%3CR%3E" class="impl"><a href="#impl-Sync-for-ImageReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.ImageReader.html" title="struct image::ImageReader">ImageReader</a>&lt;R&gt;<div class="where">where
R: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</div></h3></section><section id="impl-Unpin-for-ImageReader%3CR%3E" class="impl"><a href="#impl-Unpin-for-ImageReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.ImageReader.html" title="struct image::ImageReader">ImageReader</a>&lt;R&gt;<div class="where">where
R: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</div></h3></section><section id="impl-UnwindSafe-for-ImageReader%3CR%3E" class="impl"><a href="#impl-UnwindSafe-for-ImageReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.ImageReader.html" title="struct image::ImageReader">ImageReader</a>&lt;R&gt;<div class="where">where
R: <a class="trait" href="https://doc.rust-lang.org/1.84.0/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.84.0/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.84.0/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.84.0/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.84.0/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.84.0/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.84.0/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.84.0/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.84.0/src/core/borrow.rs.html#209">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.84.0/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.84.0/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.84.0/src/core/borrow.rs.html#211">Source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/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.84.0/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.84.0/src/core/borrow.rs.html#217">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.84.0/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.84.0/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.84.0/src/core/borrow.rs.html#218">Source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/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.84.0/std/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.84.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">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.84.0/src/core/convert/mod.rs.html#765">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.84.0/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" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#768">Source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/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.84.0/src/core/convert/mod.rs.html#748-750">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.84.0/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.84.0/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.84.0/src/core/convert/mod.rs.html#758">Source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/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.84.0/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.84.0/src/core/convert/mod.rs.html#805-807">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.84.0/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.84.0/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.84.0/src/core/convert/mod.rs.html#809">Source</a><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.84.0/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.84.0/src/core/convert/mod.rs.html#812">Source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/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.84.0/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.84.0/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.84.0/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.84.0/src/core/convert/mod.rs.html#790-792">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.84.0/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.84.0/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.84.0/src/core/convert/mod.rs.html#794">Source</a><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.84.0/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.84.0/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.84.0/src/core/convert/mod.rs.html#797">Source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/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.84.0/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.84.0/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.84.0/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>