1<!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="Userspace process identifier."><title>ProcessId in kernel::process - Rust</title>
1<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>
1<link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-ddecd707.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="kernel" data-themes="" data-resource-suffix="" data-rustdoc-version="1.99.0-nightly (87e5904f5 2026-07-20)" data-channel="nightly" data-search-js="search-cf4fc35e.js" data-stringdex-js="stringdex-b5109af9.js" data-settings-js="settings-170eb4bf.js" >
1<script src="../../static.files/storage-41dd4d93.js"></script>
1<script defer src="sidebar-items.js"></script>
1<script defer src="../../static.files/main-417ebf0a.js"></script>
1<noscript><link rel="stylesheet" href="../../static.files/noscript-f7c3ffd8.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 struct"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">ProcessId</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href='/kernel/'>kernel</a><span class="version">0.2.4-dev</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Process<wbr>Id</a></h2><h3><a href="#implementations">Associated Functions</a></h3><ul class="block method"><li><a href="#method.new_external" title="new_external">new_external</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.get_editable_flash_range" title="get_editable_flash_range">get_editable_flash_range</a></li><li><a href="#method.get_storage_permissions" title="get_storage_permissions">get_storage_permissions</a></li><li><a href="#method.id" title="id">id</a></li><li><a href="#method.short_app_id" title="short_app_id">short_app_id</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Clone-for-ProcessId" title="Clone">Clone</a></li><li><a href="#impl-Copy-for-ProcessId" title="Copy">Copy</a></li><li><a href="#impl-Debug-for-ProcessId" title="Debug">Debug</a></li><li><a href="#impl-Eq-for-ProcessId" title="Eq">Eq</a></li><li><a href="#impl-PartialEq-for-ProcessId" title="PartialEq">PartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-RefUnwindSafe-for-ProcessId" title="!RefUnwindSafe">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-ProcessId" title="!Send">!Send</a></li><li><a href="#impl-Sync-for-ProcessId" title="!Sync">!Sync</a></li><li><a href="#impl-UnwindSafe-for-ProcessId" title="!UnwindSafe">!UnwindSafe</a></li><li><a href="#impl-Freeze-for-ProcessId" title="Freeze">Freeze</a></li><li><a href="#impl-Unpin-for-ProcessId" title="Unpin">Unpin</a></li><li><a href="#impl-UnsafeUnpin-for-ProcessId" title="UnsafeUnpin">UnsafeUnpin</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<T>">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut<T>">BorrowMut<T></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<T>">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into<U>">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom<U>">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto<U>">TryInto<U></a></li></ul></section><div id="rustdoc-modnav"><h2><a href='/kernel/process/'>In kernel::<wbr>process</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href='/kernel/'>kernel</a>::<wbr><a href='/kernel/process/'>process</a></div><h1>Struct <span class="struct">Process<wbr>Id</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/kernel/process.rs#71-95'>Source</a> </span></div><pre class="rust item-decl"><code>pub struct ProcessId { <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>Userspace process identifier.</p> 2<p>This is an opaque type that can be used to represent a running process on 3the board without requiring an actual reference to a <code>Process</code> object. 4Having this <code>ProcessId</code> reference type is useful for managing ownership and 5type issues in Rust, but more importantly <code>ProcessId</code> serves as a tool for 6capsules to hold pointers to applications.</p> 7<p>Since <code>ProcessId</code> implements <code>Copy</code>, having an <code>ProcessId</code> does <em>not</em> ensure 8that the process the <code>ProcessId</code> refers to is still valid. The process may 9have been removed, terminated, or restarted as a new process. Therefore, all 10uses of <code>ProcessId</code> in the kernel must check that the <code>ProcessId</code> is still 11valid. This check happens automatically when <code>.index()</code> is called, as noted 12by the return type: <code>Option<usize></code>. <code>.index()</code> will return the index of the 13process in the processes array, but if the process no longer exists then 14<code>None</code> is returned.</p> 15<p>Outside of the kernel crate, holders of an <code>ProcessId</code> may want to use 16<code>.id()</code> to retrieve a simple identifier for the process that can be 17communicated over a UART bus or syscall interface. This call is guaranteed 18to return a suitable identifier for the <code>ProcessId</code>, but does not check that 19the corresponding application still exists.</p> 20<p>This type also provides capsules an interface for interacting with processes 21since they otherwise would have no reference to a <code>Process</code>. Very limited 22operations are available through this interface since capsules should not 23need to know the details of any given process. However, certain information 24makes certain capsules possible to implement. For example, capsules can use 25the <code>get_editable_flash_range()</code> function so they can safely allow an app to 26modify its own flash.</p> 27</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-ProcessId" class="impl"><a class='src rightside' href='/src/kernel/process.rs#128-223'>Source</a><a href="#impl-ProcessId" class="anchor">§</a><h3 class="code-header">impl <a class='struct' href='/kernel/process/struct.processid' title='struct kernel::process::ProcessId'>ProcessId</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new_external" class="method"><a class='src rightside' href='/src/kernel/process.rs#144-155'>Source</a><h4 class="code-header">pub fn <a href="#method.new_external" class="fn">new_external</a>( 28 kernel: &'static <a class='struct' href='/kernel/struct.kernel' title='struct kernel::Kernel'>
28Kernel</a>, 29 identifier: <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a>, 30 index: <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a>, 31 _capability: &dyn <a class='trait' href='/kernel/capabilities/trait.externalprocesscapability' title='trait kernel::capabilities::ExternalProcessCapability'>ExternalProcessCapability</a>, 32) -> <a class='struct' href='/kernel/process/struct.processid' title='struct kernel::process::ProcessId'>ProcessId</a></h4></section></summary><div class="docblock"><p>Create a new <code>ProcessId</code> object based on the app identifier and its 33index in the processes array.</p> 34<p>This constructor is public but protected with a capability so that 35external implementations of <code>Process</code> can use it.</p> 36</div></details><details class="toggle method-toggle" open><summary><section id="method.id" class="method"><a class='src rightside' href='/src/kernel/process.rs#185-187'>Source</a><h4 class="code-header">pub fn <a href="#method.id" class="fn">id</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Get a <code>usize</code> unique identifier for the app this <code>ProcessId</code> refers to.</p> 37<p>This function should not generally be used, instead code should just use 38the <code>ProcessId</code> object itself to refer to various apps on the system. 39However, getting just a <code>usize</code> identifier is particularly useful when 40referring to a specific app with things outside of the kernel, say for 41userspace (e.g. IPC) or tockloader (e.g. for debugging) where a concrete 42number is required.</p> 43<p>Note, this will always return the saved unique identifier for the app 44originally referred to, even if that app no longer exists. For example, 45the app may have restarted, or may have been ended or removed by the 46kernel. Therefore, calling <code>id()</code> is <em>not</em> a valid way to check that an 47application still exists.</p> 48</div></details><details class="toggle method-toggle" open><summary><section id="method.short_app_id" class="method"><a class='src rightside' href='/src/kernel/process.rs#197-202'>Source</a><h4 class="code-header">pub fn <a href="#method.short_app_id" class="fn">short_app_id</a>(&self) -> <a class='enum' href='/kernel/process/enum.shortid' title='enum kernel::process::ShortId'>ShortId</a></h4></section></summary><div class="docblock"><p>Get the <code>ShortId</code> for this application this process is an execution of.</p> 49<p>The <code>ShortId</code> is an identifier for the <em>application</em>, not the particular 50execution (i.e. the currently running process). This makes <code>ShortId</code> 51distinct from <code>ProcessId</code>.</p> 52<p>This function is a helper function as capsules typically use <code>ProcessId</code> 53as a handle to the running process and corresponding app.</p> 54</div></details><details class="toggle method-toggle" open><summary><section id="method.get_editable_flash_range" class="method"><a class='src rightside' href='/src/kernel/process.rs#208-213'>Source</a><h4 class="code-header">pub fn <a href="#method.get_editable_flash_range" class="fn">get_editable_flash_range</a>(&self) -> (<a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a>)</h4></section></summary><div class="docblock"><p>Returns the full address of the start and end of the flash region that 55the app owns and can write to. This includes the appâs code and data and 56any padding at the end of the app. It does not include the TBF header, 57or any space that the kernel is using for any potential bookkeeping.</p> 58</div></details><details class="toggle method-toggle" open><summary><section id="method.get_storage_permissions" class="method"><a class='src rightside' href='/src/kernel/process.rs#218-222'>Source</a><h4 class="code-header">pub fn <a href="#method.get_storage_permissions" class="fn">get_storage_permissions</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class='struct' href='/kernel/storage_permissions/struct.storagepermissions' title='struct kernel::storage_permissions::StoragePermissions'>StoragePermissions</a>></h4></section></summary><div class="docblock"><p>Get the storage permissions for the process. These permissions indicate 59what the process is allowed to read and write. Returns <code>None</code> if the 60process has no storage permissions.</p> 61</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-ProcessId" class="impl"><a class='src rightside' href='/src/kernel/process.rs#70'>Source</a><a href="#impl-Clone-for-ProcessId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class='struct' href='/kernel/process/struct.processid' title='struct kernel::process::ProcessId'>ProcessId</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/kernel/process.rs#70'>Source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class='struct' href='/kernel/process/struct.processid' title='struct kernel::process::ProcessId'>ProcessId</a></h4></section></summary><div class='docblock'>Returns a duplicate of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details>
61<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, const unstable">1.0.0 (const: <a href="https://github.com/rust-lang/rust/issues/142757" title="Tracking issue for const_clone">unstable</a>)</span> · <a class="src" href="https://doc.rust-lang.org/nightly/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/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: &Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><section id="impl-Copy-for-ProcessId" class="impl"><a class='src rightside' href='/src/kernel/process.rs#70'>Source</a><a href="#impl-Copy-for-ProcessId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class='struct' href='/kernel/process/struct.processid' title='struct kernel::process::ProcessId'>ProcessId</a></h3></section><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-ProcessId" class="impl"><a class='src rightside' href='/src/kernel/process.rs#105-126'>Source</a><a href="#impl-Debug-for-ProcessId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class='struct' href='/kernel/process/struct.processid' title='struct kernel::process::ProcessId'>ProcessId</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/kernel/process.rs#106-125'>Source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, formatter: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/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/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><section id="impl-Eq-for-ProcessId" class="impl"><a class='src rightside' href='/src/kernel/process.rs#103'>Source</a><a href="#impl-Eq-for-ProcessId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class='struct' href='/kernel/process/struct.processid' title='struct kernel::process::ProcessId'>ProcessId</a></h3></section><details class="toggle implementors-toggle" open><summary><section id="impl-PartialEq-for-ProcessId" class="impl"><a class='src rightside' href='/src/kernel/process.rs#97-101'>Source</a><a href="#impl-PartialEq-for-ProcessId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a> for <a class='struct' href='/kernel/process/struct.processid' title='struct kernel::process::ProcessId'>ProcessId</a></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/kernel/process.rs#98-100'>Source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class='struct' href='/kernel/process/struct.processid' title='struct kernel::process::ProcessId'>ProcessId</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Equality operator <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details>
61<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, const unstable">1.0.0 (const: <a href="https://github.com/rust-lang/rust/issues/143800" title="Tracking issue for const_cmp">unstable</a>)</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#275">Source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.reference.html">&Rhs</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Inequality operator <code>!=</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">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-RefUnwindSafe-for-ProcessId" class="impl"><a href="#impl-RefUnwindSafe-for-ProcessId" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class='struct' href='/kernel/process/struct.processid' title='struct kernel::process::ProcessId'>ProcessId</a></h3></section><section id="impl-Send-for-ProcessId" class="impl"><a href="#impl-Send-for-ProcessId" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class='struct' href='/kernel/process/struct.processid' title='struct kernel::process::ProcessId'>ProcessId</a></h3></section><section id="impl-Sync-for-ProcessId" class="impl"><a href="#impl-Sync-for-ProcessId" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class='struct' href='/kernel/process/struct.processid' title='struct kernel::process::ProcessId'>ProcessId</a></h3></section><section id="impl-UnwindSafe-for-ProcessId" class="impl"><a href="#impl-UnwindSafe-for-ProcessId" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class='struct' href='/kernel/process/struct.processid' title='struct kernel::process::ProcessId'>ProcessId</a></h3></section><section id="impl-Freeze-for-ProcessId" class="impl"><a href="#impl-Freeze-for-ProcessId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class='struct' href='/kernel/process/struct.processid' title='struct kernel::process::ProcessId'>ProcessId</a></h3></section><section id="impl-Unpin-for-ProcessId" class="impl"><a href="#impl-Unpin-for-ProcessId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class='struct' href='/kernel/process/struct.processid' title='struct kernel::process::ProcessId'>ProcessId</a></h3></section><section id="impl-UnsafeUnpin-for-ProcessId" class="impl"><a href="#impl-UnsafeUnpin-for-ProcessId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.UnsafeUnpin.html" title="trait core::marker::UnsafeUnpin">UnsafeUnpin</a> for <a class='struct' href='/kernel/process/struct.processid' title='struct kernel::process::ProcessId'>ProcessId</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/nightly/src/core/any.rs.html#141">Source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<div class="where">where 62 T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/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/nightly/src/core/any.rs.html#142">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/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/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details>
62<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/nightly/src/core/borrow.rs.html#212">Source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<div class="where">where 63 T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/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/nightly/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/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.reference.html">&T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/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/nightly/src/core/borrow.rs.html#221">Source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<div class="where">where 64 T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/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/nightly/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/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.reference.html">&mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/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/nightly/src/core/clone.rs.html#648">Source</a><a href="#impl-CloneToUninit-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.CloneToUninit.html" title="trait core::clone::CloneToUninit">CloneToUninit</a> for T<div class="where">where 65 T: <a class="trait" href="https://doc.rust-lang.org/nightly/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/nightly/src/core/clone.rs.html#650">Source</a><a href="#method.clone_to_uninit" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit" class="fn">clone_to_uninit</a>(&self, dest: <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.pointer.html">*mut </a><a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.u8.html">u8</a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">
65ð¬</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/nightly/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/nightly/src/core/convert/mod.rs.html#787">Source</a><a href="#impl-From%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> 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/nightly/src/core/convert/mod.rs.html#790">Source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p> 66</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/nightly/src/core/convert/mod.rs.html#769-771">Source</a><a href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<div class="where">where 67 U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</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/nightly/src/core/convert/mod.rs.html#779">Source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p> 68<p>That is, this conversion is whatever the implementation of 69<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for U</code> chooses to do.</p> 70</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/nightly/src/core/convert/mod.rs.html#829-831">Source</a><a href="#impl-TryFrom%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<div class="where">where 71 U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</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/nightly/src/core/convert/mod.rs.html#833">Source</a><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/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>
71<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/nightly/src/core/convert/mod.rs.html#836">Source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></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/nightly/src/core/convert/mod.rs.html#813-815">Source</a><a href="#impl-TryInto%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<div class="where">where 72 U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</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/nightly/src/core/convert/mod.rs.html#817">Source</a><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/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/nightly/src/core/convert/mod.rs.html#820">Source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details></div></section></div></main></body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.