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

98 lines
50 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 font database."><title>Database in fontdb - 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="fontdb" 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="../fontdb/index.html">fontdb</a><span class="version">0.16.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Database</a></h2><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.face" title="face">face</a></li><li><a href="#method.face_source" title="face_source">face_source</a></li><li><a href="#method.faces" title="faces">faces</a></li><li><a href="#method.family_name" title="family_name">family_name</a></li><li><a href="#method.is_empty" title="is_empty">is_empty</a></li><li><a href="#method.len" title="len">len</a></li><li><a href="#method.load_font_data" title="load_font_data">load_font_data</a></li><li><a href="#method.load_font_file" title="load_font_file">load_font_file</a></li><li><a href="#method.load_font_source" title="load_font_source">load_font_source</a></li><li><a href="#method.load_fonts_dir" title="load_fonts_dir">load_fonts_dir</a></li><li><a href="#method.load_system_fonts" title="load_system_fonts">load_system_fonts</a></li><li><a href="#method.make_face_data_unshared" title="make_face_data_unshared">make_face_data_unshared</a></li><li><a href="#method.make_shared_face_data" title="make_shared_face_data">make_shared_face_data</a></li><li><a href="#method.new" title="new">new</a></li><li><a href="#method.push_face_info" title="push_face_info">push_face_info</a></li><li><a href="#method.query" title="query">query</a></li><li><a href="#method.remove_face" title="remove_face">remove_face</a></li><li><a href="#method.set_cursive_family" title="set_cursive_family">set_cursive_family</a></li><li><a href="#method.set_fantasy_family" title="set_fantasy_family">set_fantasy_family</a></li><li><a href="#method.set_monospace_family" title="set_monospace_family">set_monospace_family</a></li><li><a href="#method.set_sans_serif_family" title="set_sans_serif_family">set_sans_serif_family</a></li><li><a href="#method.set_serif_family" title="set_serif_family">set_serif_family</a></li><li><a href="#method.with_face_data" title="with_face_data">with_face_data</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Clone-for-Database" title="Clone">Clone</a></li><li><a href="#impl-Debug-for-Database" title="Debug">Debug</a></li><li><a href="#impl-Default-for-Database" title="Default">Default</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-RefUnwindSafe-for-Database" title="!RefUnwindSafe">!RefUnwindSafe</a></li><li><a href="#impl-UnwindSafe-for-Database" title="!UnwindSafe">!UnwindSafe</a></li><li><a href="#impl-Freeze-for-Database" title="Freeze">Freeze</a></li><li><a href="#impl-Send-for-Database" title="Send">Send</a></li><li><a href="#impl-Sync-for-Database" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-Database" title="Unpin">Unpin</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-ToOwned-for-T" title="ToOwned">ToOwned</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 fontdb</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">fontdb</a></span><h1>Struct <span class="struct">Database</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/fontdb/lib.rs.html#152-159">Source</a> </span></div><pre class="rust item-decl"><code>pub struct Database { <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 font database.</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-Database" class="impl"><a class="src rightside" href="../src/fontdb/lib.rs.html#167-717">Source</a><a href="#impl-Database" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Database.html" title="struct fontdb::Database">Database</a></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/fontdb/lib.rs.html#178-190">Source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>() -&gt; Self</h4></section></summary><div class="docblock"><p>Create a new, empty <code>Database</code>.</p>
<p>Generic font families would be set to:</p>
<ul>
<li><code>serif</code> - Times New Roman</li>
<li><code>sans-serif</code> - Arial</li>
<li><code>cursive</code> - Comic Sans MS</li>
<li><code>fantasy</code> - Impact (Papyrus on macOS)</li>
<li><code>monospace</code> - Courier New</li>
</ul>
</div></details><details class="toggle method-toggle" open><summary><section id="method.load_font_data" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#195-197">Source</a><h4 class="code-header">pub fn <a href="#method.load_font_data" class="fn">load_font_data</a>(&amp;mut self, data: <a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u8.html">u8</a>&gt;)</h4></section></summary><div class="docblock"><p>Loads a font data into the <code>Database</code>.</p>
<p>Will load all font faces in case of a font collection.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.load_font_source" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#203-229">Source</a><h4 class="code-header">pub fn <a href="#method.load_font_source" class="fn">load_font_source</a>(&amp;mut self, source: <a class="enum" href="enum.Source.html" title="enum fontdb::Source">Source</a>) -&gt; <a class="enum" href="../tinyvec/tinyvec/enum.TinyVec.html" title="enum tinyvec::tinyvec::TinyVec">TinyVec</a>&lt;[<a class="struct" href="struct.ID.html" title="struct fontdb::ID">ID</a>; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.array.html">8</a>]&gt;</h4></section></summary><div class="docblock"><p>Loads a font from the given source into the <code>Database</code> and returns
the ID of the loaded font.</p>
<p>Will load all font faces in case of a font collection.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.load_font_file" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#256-261">Source</a><h4 class="code-header">pub fn <a href="#method.load_font_file" class="fn">load_font_file</a>&lt;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;&gt;(&amp;mut self, path: P) -&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;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.unit.html">()</a>, <a class="struct" href="https://doc.rust-lang.org/1.84.0/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Loads a font file into the <code>Database</code>.</p>
<p>Will load all font faces in case of a font collection.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.load_fonts_dir" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#302-304">Source</a><h4 class="code-header">pub fn <a href="#method.load_fonts_dir" class="fn">load_fonts_dir</a>&lt;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;&gt;(&amp;mut self, dir: P)</h4></section></summary><div class="docblock"><p>Loads font files from the selected directory into the <code>Database</code>.</p>
<p>This method will scan directories recursively.</p>
<p>Will load <code>ttf</code>, <code>otf</code>, <code>ttc</code> and <code>otc</code> fonts.</p>
<p>Unlike other <code>load_*</code> methods, this one doesnt return an error.
It will simply skip malformed fonts and will print a warning into the log for each of them.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.load_system_fonts" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#345-416">Source</a><h4 class="code-header">pub fn <a href="#method.load_system_fonts" class="fn">load_system_fonts</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Attempts to load system fonts.</p>
<p>Supports Windows, Linux and macOS.</p>
<p>System fonts loading is a surprisingly complicated task,
mostly unsolvable without interacting with system libraries.
And since <code>fontdb</code> tries to be small and portable, this method
will simply scan some predefined directories.
Which means that fonts that are not in those directories must
be added manually.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.push_face_info" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#501-506">Source</a><h4 class="code-header">pub fn <a href="#method.push_face_info" class="fn">push_face_info</a>(&amp;mut self, info: <a class="struct" href="struct.FaceInfo.html" title="struct fontdb::FaceInfo">FaceInfo</a>)</h4></section></summary><div class="docblock"><p>Pushes a user-provided <code>FaceInfo</code> to the database.</p>
<p>In some cases, a caller might want to ignore the fonts metadata and provide their own.
This method doesnt parse the <code>source</code> font.</p>
<p>The <code>id</code> field should be set to <a href="struct.ID.html#method.dummy" title="associated function fontdb::ID::dummy"><code>ID::dummy()</code></a> and will be then overwritten by this method.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.remove_face" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#515-517">Source</a><h4 class="code-header">pub fn <a href="#method.remove_face" class="fn">remove_face</a>(&amp;mut self, id: <a class="struct" href="struct.ID.html" title="struct fontdb::ID">ID</a>)</h4></section></summary><div class="docblock"><p>Removes a font face by <code>id</code> from the database.</p>
<p>Returns <code>false</code> while attempting to remove a non-existing font face.</p>
<p>Useful when you want to ignore some specific font face(s)
after loading a large directory with fonts.
Or a specific face from a font.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_empty" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#521-523">Source</a><h4 class="code-header">pub fn <a href="#method.is_empty" class="fn">is_empty</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns <code>true</code> if the <code>Database</code> contains no font faces.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.len" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#531-533">Source</a><h4 class="code-header">pub fn <a href="#method.len" class="fn">len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Returns the number of font faces in the <code>Database</code>.</p>
<p>Note that <code>Database</code> stores font faces, not fonts.
For example, if a caller will try to load a font collection (<code>*.ttc</code>) that contains 5 faces,
then the <code>Database</code> will load 5 font faces and this method will return 5, not 1.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_serif_family" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#536-538">Source</a><h4 class="code-header">pub fn <a href="#method.set_serif_family" class="fn">set_serif_family</a>&lt;S: <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;<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;&gt;(&amp;mut self, family: S)</h4></section></summary><div class="docblock"><p>Sets the family that will be used by <code>Family::Serif</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_sans_serif_family" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#541-543">Source</a><h4 class="code-header">pub fn <a href="#method.set_sans_serif_family" class="fn">set_sans_serif_family</a>&lt;S: <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;<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;&gt;(&amp;mut self, family: S)</h4></section></summary><div class="docblock"><p>Sets the family that will be used by <code>Family::SansSerif</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_cursive_family" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#546-548">Source</a><h4 class="code-header">pub fn <a href="#method.set_cursive_family" class="fn">set_cursive_family</a>&lt;S: <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;<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;&gt;(&amp;mut self, family: S)</h4></section></summary><div class="docblock"><p>Sets the family that will be used by <code>Family::Cursive</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_fantasy_family" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#551-553">Source</a><h4 class="code-header">pub fn <a href="#method.set_fantasy_family" class="fn">set_fantasy_family</a>&lt;S: <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;<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;&gt;(&amp;mut self, family: S)</h4></section></summary><div class="docblock"><p>Sets the family that will be used by <code>Family::Fantasy</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_monospace_family" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#556-558">Source</a><h4 class="code-header">pub fn <a href="#method.set_monospace_family" class="fn">set_monospace_family</a>&lt;S: <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;<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;&gt;(&amp;mut self, family: S)</h4></section></summary><div class="docblock"><p>Sets the family that will be used by <code>Family::Monospace</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.family_name" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#563-572">Source</a><h4 class="code-header">pub fn <a href="#method.family_name" class="fn">family_name</a>&lt;'a&gt;(&amp;'a self, family: &amp;'a <a class="enum" href="enum.Family.html" title="enum fontdb::Family">Family</a>&lt;'_&gt;) -&gt; &amp;'a <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Returns the generic family name or the <code>Family::Name</code> itself.</p>
<p>Generic family names should be set via <code>Database::set_*_family</code> methods.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.query" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#575-593">Source</a><h4 class="code-header">pub fn <a href="#method.query" class="fn">query</a>(&amp;self, query: &amp;<a class="struct" href="struct.Query.html" title="struct fontdb::Query">Query</a>&lt;'_&gt;) -&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="struct" href="struct.ID.html" title="struct fontdb::ID">ID</a>&gt;</h4></section></summary><div class="docblock"><p>Performs a CSS-like query and returns the best matched font face.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.faces" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#599-601">Source</a><h4 class="code-header">pub fn <a href="#method.faces" class="fn">faces</a>(&amp;self) -&gt; impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a>&lt;Item = &amp;<a class="struct" href="struct.FaceInfo.html" title="struct fontdb::FaceInfo">FaceInfo</a>&gt; + '_</h4></section></summary><div class="docblock"><p>Returns an iterator over the internal storage.</p>
<p>This can be used for manual font matching.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.face" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#607-609">Source</a><h4 class="code-header">pub fn <a href="#method.face" class="fn">face</a>(&amp;self, id: <a class="struct" href="struct.ID.html" title="struct fontdb::ID">ID</a>) -&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;&amp;<a class="struct" href="struct.FaceInfo.html" title="struct fontdb::FaceInfo">FaceInfo</a>&gt;</h4></section></summary><div class="docblock"><p>Selects a <code>FaceInfo</code> by <code>id</code>.</p>
<p>Returns <code>None</code> if a face with such ID was already removed,
or this ID belong to the other <code>Database</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.face_source" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#612-614">Source</a><h4 class="code-header">pub fn <a href="#method.face_source" class="fn">face_source</a>(&amp;self, id: <a class="struct" href="struct.ID.html" title="struct fontdb::ID">ID</a>) -&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.Source.html" title="enum fontdb::Source">Source</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>Returns font face storage and the face index by <code>ID</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.with_face_data" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#635-641">Source</a><h4 class="code-header">pub fn <a href="#method.with_face_data" class="fn">with_face_data</a>&lt;P, T&gt;(&amp;self, id: <a class="struct" href="struct.ID.html" title="struct fontdb::ID">ID</a>, p: P) -&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;T&gt;<div class="where">where
P: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;[<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u8.html">u8</a>], <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u32.html">u32</a>) -&gt; T,</div></h4></section></summary><div class="docblock"><p>Executes a closure with a fonts data.</p>
<p>We cant return a reference to a font binary data because of lifetimes.
So instead, you can use this method to process fonts data.</p>
<p>The closure accepts raw font data and font face index.</p>
<p>In case of <code>Source::File</code>, the font file will be memory mapped.</p>
<p>Returns <code>None</code> when font file loading failed.</p>
<h5 id="example"><a class="doc-anchor" href="#example">§</a>Example</h5>
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested"></a><pre class="rust rust-example-rendered"><code><span class="kw">let </span>is_variable = db.with_face_data(id, |font_data, face_index| {
<span class="kw">let </span>font = ttf_parser::Face::from_slice(font_data, face_index).unwrap();
font.is_variable()
})<span class="question-mark">?</span>;</code></pre></div>
</div></details><details class="toggle method-toggle" open><summary><section id="method.make_shared_face_data" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#656-689">Source</a><h4 class="code-header">pub unsafe fn <a href="#method.make_shared_face_data" class="fn">make_shared_face_data</a>(
&amp;mut self,
id: <a class="struct" href="struct.ID.html" title="struct fontdb::ID">ID</a>,
) -&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="struct" href="https://doc.rust-lang.org/1.84.0/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;dyn <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="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u8.html">u8</a>]&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> + <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>&gt;, <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>Makes the font data that backs the specified face id shared so that the application can
hold a reference to it.</p>
<h5 id="safety"><a class="doc-anchor" href="#safety">§</a>Safety</h5>
<p>If the face originates from a file from disk, then the file is mapped from disk. This is unsafe as
another process may make changes to the file on disk, which may become visible in this process
mapping and possibly cause crashes.</p>
<p>If the underlying font provides multiple faces, then all faces are updated to participate in
the data sharing. If the face was previously marked for data sharing, then this function will
return a clone of the existing reference.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.make_face_data_unshared" class="method"><a class="src rightside" href="../src/fontdb/lib.rs.html#695-716">Source</a><h4 class="code-header">pub fn <a href="#method.make_face_data_unshared" class="fn">make_face_data_unshared</a>(&amp;mut self, id: <a class="struct" href="struct.ID.html" title="struct fontdb::ID">ID</a>)</h4></section></summary><div class="docblock"><p>Transfers ownership of shared font data back to the font database. This is the reverse operation
of <a href="struct.Database.html#method.make_shared_face_data" title="method fontdb::Database::make_shared_face_data"><code>Self::make_shared_face_data</code></a>. If the font data belonging to the specified face is mapped
from a file on disk, then that mapping is closed and the data becomes private to the process again.</p>
</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-Database" class="impl"><a class="src rightside" href="../src/fontdb/lib.rs.html#151">Source</a><a href="#impl-Clone-for-Database" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.Database.html" title="struct fontdb::Database">Database</a></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/fontdb/lib.rs.html#151">Source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&amp;self) -&gt; <a class="struct" href="struct.Database.html" title="struct fontdb::Database">Database</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/1.84.0/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.84.0/src/core/clone.rs.html#174">Source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/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.84.0/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-Database" class="impl"><a class="src rightside" href="../src/fontdb/lib.rs.html#151">Source</a><a href="#impl-Debug-for-Database" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Database.html" title="struct fontdb::Database">Database</a></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/fontdb/lib.rs.html#151">Source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/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.84.0/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.84.0/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.84.0/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Default-for-Database" class="impl"><a class="src rightside" href="../src/fontdb/lib.rs.html#161-165">Source</a><a href="#impl-Default-for-Database" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.Database.html" title="struct fontdb::Database">Database</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.default" class="method trait-impl"><a class="src rightside" href="../src/fontdb/lib.rs.html#162-164">Source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -&gt; Self</h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/1.84.0/core/default/trait.Default.html#tymethod.default">Read more</a></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-Database" class="impl"><a href="#impl-Freeze-for-Database" class="anchor">§</a><h3 class="code-header">impl <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.Database.html" title="struct fontdb::Database">Database</a></h3></section><section id="impl-RefUnwindSafe-for-Database" class="impl"><a href="#impl-RefUnwindSafe-for-Database" class="anchor">§</a><h3 class="code-header">impl !<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.Database.html" title="struct fontdb::Database">Database</a></h3></section><section id="impl-Send-for-Database" class="impl"><a href="#impl-Send-for-Database" class="anchor">§</a><h3 class="code-header">impl <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.Database.html" title="struct fontdb::Database">Database</a></h3></section><section id="impl-Sync-for-Database" class="impl"><a href="#impl-Sync-for-Database" class="anchor">§</a><h3 class="code-header">impl <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.Database.html" title="struct fontdb::Database">Database</a></h3></section><section id="impl-Unpin-for-Database" class="impl"><a href="#impl-Unpin-for-Database" class="anchor">§</a><h3 class="code-header">impl <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.Database.html" title="struct fontdb::Database">Database</a></h3></section><section id="impl-UnwindSafe-for-Database" class="impl"><a href="#impl-UnwindSafe-for-Database" class="anchor">§</a><h3 class="code-header">impl !<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.Database.html" title="struct fontdb::Database">Database</a></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-CloneToUninit-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/clone.rs.html#273">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.84.0/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.84.0/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.84.0/src/core/clone.rs.html#275">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.84.0/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit" class="fn">clone_to_uninit</a>(&amp;self, dst: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.pointer.html">*mut </a><a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/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>dst</code>. <a href="https://doc.rust-lang.org/1.84.0/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.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-ToOwned-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/alloc/borrow.rs.html#82-84">Source</a><a href="#impl-ToOwned-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/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/alloc/borrow.rs.html#86">Source</a><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/alloc/borrow.rs.html#87">Source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&amp;self) -&gt; T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/1.84.0/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/alloc/borrow.rs.html#91">Source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&amp;self, target: <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'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/1.84.0/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></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>