edlang/gimli/read/enum.CallFrameInstruction.html

348 lines
62 KiB
HTML
Raw Normal View History

<!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 parsed call frame instruction."><title>CallFrameInstruction in gimli::read - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-ac92e1bbe349e143.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="gimli" data-themes="" data-resource-suffix="" data-rustdoc-version="1.76.0 (07dca489a 2024-02-04)" data-channel="1.76.0" data-search-js="search-2b6ce74ff89ae146.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-f2adc0d6ca4d09fb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-305769736d49e732.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-feafe1bb7466e4bd.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../gimli/index.html">gimli</a><span class="version">0.28.1</span></h2></div><h2 class="location"><a href="#">CallFrameInstruction</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block variant"><li><a href="#variant.AdvanceLoc">AdvanceLoc</a></li><li><a href="#variant.ArgsSize">ArgsSize</a></li><li><a href="#variant.DefCfa">DefCfa</a></li><li><a href="#variant.DefCfaExpression">DefCfaExpression</a></li><li><a href="#variant.DefCfaOffset">DefCfaOffset</a></li><li><a href="#variant.DefCfaOffsetSf">DefCfaOffsetSf</a></li><li><a href="#variant.DefCfaRegister">DefCfaRegister</a></li><li><a href="#variant.DefCfaSf">DefCfaSf</a></li><li><a href="#variant.Expression">Expression</a></li><li><a href="#variant.NegateRaState">NegateRaState</a></li><li><a href="#variant.Nop">Nop</a></li><li><a href="#variant.Offset">Offset</a></li><li><a href="#variant.OffsetExtendedSf">OffsetExtendedSf</a></li><li><a href="#variant.Register">Register</a></li><li><a href="#variant.RememberState">RememberState</a></li><li><a href="#variant.Restore">Restore</a></li><li><a href="#variant.RestoreState">RestoreState</a></li><li><a href="#variant.SameValue">SameValue</a></li><li><a href="#variant.SetLoc">SetLoc</a></li><li><a href="#variant.Undefined">Undefined</a></li><li><a href="#variant.ValExpression">ValExpression</a></li><li><a href="#variant.ValOffset">ValOffset</a></li><li><a href="#variant.ValOffsetSf">ValOffsetSf</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Clone-for-CallFrameInstruction%3CR%3E">Clone</a></li><li><a href="#impl-Debug-for-CallFrameInstruction%3CR%3E">Debug</a></li><li><a href="#impl-Eq-for-Call
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../../gimli/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Enum <a href="../index.html">gimli</a>::<wbr><a href="index.html">read</a>::<wbr><a class="enum" href="#">CallFrameInstruction</a><button id="copy-path" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="src" href="../../src/gimli/read/cfi.rs.html#2883-3177">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code><div class="code-attribute">#[non_exhaustive]</div>pub enum CallFrameInstruction&lt;R: <a class="trait" href="trait.Reader.html" title="trait gimli::read::Reader">Reader</a>&gt; {
<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 23 variants</span></summary> SetLoc {
address: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a>,
},
AdvanceLoc {
delta: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u32.html">u32</a>,
},
DefCfa {
register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a>,
offset: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a>,
},
DefCfaSf {
register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a>,
factored_offset: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i64.html">i64</a>,
},
DefCfaRegister {
register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a>,
},
DefCfaOffset {
offset: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a>,
},
DefCfaOffsetSf {
factored_offset: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i64.html">i64</a>,
},
DefCfaExpression {
expression: <a class="struct" href="struct.Expression.html" title="struct gimli::read::Expression">Expression</a>&lt;R&gt;,
},
Undefined {
register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a>,
},
SameValue {
register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a>,
},
Offset {
register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a>,
factored_offset: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a>,
},
OffsetExtendedSf {
register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a>,
factored_offset: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i64.html">i64</a>,
},
ValOffset {
register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a>,
factored_offset: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a>,
},
ValOffsetSf {
register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a>,
factored_offset: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i64.html">i64</a>,
},
Register {
dest_register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a>,
src_register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a>,
},
Expression {
register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a>,
expression: <a class="struct" href="struct.Expression.html" title="struct gimli::read::Expression">Expression</a>&lt;R&gt;,
},
ValExpression {
register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a>,
expression: <a class="struct" href="struct.Expression.html" title="struct gimli::read::Expression">Expression</a>&lt;R&gt;,
},
Restore {
register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a>,
},
RememberState,
RestoreState,
ArgsSize {
size: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a>,
},
NegateRaState,
Nop,
</details>}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A parsed call frame instruction.</p>
</div></details><h2 id="variants" class="variants section-header">Variants (Non-exhaustive)<a href="#variants" class="anchor">§</a></h2><details class="toggle non-exhaustive"><summary class="hideme"><span>This enum is marked as non-exhaustive</span></summary><div class="docblock">Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.</div></details><div class="variants"><section id="variant.SetLoc" class="variant"><a href="#variant.SetLoc" class="anchor">§</a><h3 class="code-header">SetLoc</h3></section><div class="sub-variant" id="variant.SetLoc.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.SetLoc.field.address" class="section-header"><a href="#variant.SetLoc.field.address" class="anchor field">§</a><code>address: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a></code></span><div class="docblock"><p>The target address.</p>
</div></div></div><div class="docblock"><blockquote>
<ol>
<li>DW_CFA_set_loc</li>
</ol>
<p>The DW_CFA_set_loc instruction takes a single operand that represents
a target address. The required action is to create a new table row
using the specified address as the location. All other values in the
new row are initially identical to the current row. The new location
value is always greater than the current one. If the segment_size
field of this FDEs CIE is non- zero, the initial location is preceded
by a segment selector of the given length.</p>
</blockquote>
</div><section id="variant.AdvanceLoc" class="variant"><a href="#variant.AdvanceLoc" class="anchor">§</a><h3 class="code-header">AdvanceLoc</h3></section><div class="sub-variant" id="variant.AdvanceLoc.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.AdvanceLoc.field.delta" class="section-header"><a href="#variant.AdvanceLoc.field.delta" class="anchor field">§</a><code>delta: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u32.html">u32</a></code></span><div class="docblock"><p>The delta to be added to the current address.</p>
</div></div></div><div class="docblock"><p>The <code>AdvanceLoc</code> instruction is used for all of <code>DW_CFA_advance_loc</code> and
<code>DW_CFA_advance_loc{1,2,4}</code>.</p>
<blockquote>
<ol start="2">
<li>DW_CFA_advance_loc</li>
</ol>
<p>The DW_CFA_advance instruction takes a single operand (encoded with
the opcode) that represents a constant delta. The required action is
to create a new table row with a location value that is computed by
taking the current entrys location value and adding the value of
delta * code_alignment_factor. All other values in the new row are
initially identical to the current row.</p>
</blockquote>
</div><section id="variant.DefCfa" class="variant"><a href="#variant.DefCfa" class="anchor">§</a><h3 class="code-header">DefCfa</h3></section><div class="sub-variant" id="variant.DefCfa.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.DefCfa.field.register" class="section-header"><a href="#variant.DefCfa.field.register" class="anchor field">§</a><code>register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a></code></span><div class="docblock"><p>The target registers number.</p>
</div></div><div class="sub-variant-field"><span id="variant.DefCfa.field.offset" class="section-header"><a href="#variant.DefCfa.field.offset" class="anchor field">§</a><code>offset: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a></code></span><div class="docblock"><p>The non-factored offset.</p>
</div></div></div><div class="docblock"><blockquote>
<ol>
<li>DW_CFA_def_cfa</li>
</ol>
<p>The DW_CFA_def_cfa instruction takes two unsigned LEB128 operands
representing a register number and a (non-factored) offset. The
required action is to define the current CFA rule to use the provided
register and offset.</p>
</blockquote>
</div><section id="variant.DefCfaSf" class="variant"><a href="#variant.DefCfaSf" class="anchor">§</a><h3 class="code-header">DefCfaSf</h3></section><div class="sub-variant" id="variant.DefCfaSf.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.DefCfaSf.field.register" class="section-header"><a href="#variant.DefCfaSf.field.register" class="anchor field">§</a><code>register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a></code></span><div class="docblock"><p>The target registers number.</p>
</div></div><div class="sub-variant-field"><span id="variant.DefCfaSf.field.factored_offset" class="section-header"><a href="#variant.DefCfaSf.field.factored_offset" class="anchor field">§</a><code>factored_offset: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i64.html">i64</a></code></span><div class="docblock"><p>The factored offset.</p>
</div></div></div><div class="docblock"><blockquote>
<ol start="2">
<li>DW_CFA_def_cfa_sf</li>
</ol>
<p>The DW_CFA_def_cfa_sf instruction takes two operands: an unsigned
LEB128 value representing a register number and a signed LEB128
factored offset. This instruction is identical to DW_CFA_def_cfa
except that the second operand is signed and factored. The resulting
offset is factored_offset * data_alignment_factor.</p>
</blockquote>
</div><section id="variant.DefCfaRegister" class="variant"><a href="#variant.DefCfaRegister" class="anchor">§</a><h3 class="code-header">DefCfaRegister</h3></section><div class="sub-variant" id="variant.DefCfaRegister.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.DefCfaRegister.field.register" class="section-header"><a href="#variant.DefCfaRegister.field.register" class="anchor field">§</a><code>register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a></code></span><div class="docblock"><p>The target registers number.</p>
</div></div></div><div class="docblock"><blockquote>
<ol start="3">
<li>DW_CFA_def_cfa_register</li>
</ol>
<p>The DW_CFA_def_cfa_register instruction takes a single unsigned LEB128
operand representing a register number. The required action is to
define the current CFA rule to use the provided register (but to keep
the old offset). This operation is valid only if the current CFA rule
is defined to use a register and offset.</p>
</blockquote>
</div><section id="variant.DefCfaOffset" class="variant"><a href="#variant.DefCfaOffset" class="anchor">§</a><h3 class="code-header">DefCfaOffset</h3></section><div class="sub-variant" id="variant.DefCfaOffset.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.DefCfaOffset.field.offset" class="section-header"><a href="#variant.DefCfaOffset.field.offset" class="anchor field">§</a><code>offset: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a></code></span><div class="docblock"><p>The non-factored offset.</p>
</div></div></div><div class="docblock"><blockquote>
<ol start="4">
<li>DW_CFA_def_cfa_offset</li>
</ol>
<p>The DW_CFA_def_cfa_offset instruction takes a single unsigned LEB128
operand representing a (non-factored) offset. The required action is
to define the current CFA rule to use the provided offset (but to keep
the old register). This operation is valid only if the current CFA
rule is defined to use a register and offset.</p>
</blockquote>
</div><section id="variant.DefCfaOffsetSf" class="variant"><a href="#variant.DefCfaOffsetSf" class="anchor">§</a><h3 class="code-header">DefCfaOffsetSf</h3></section><div class="sub-variant" id="variant.DefCfaOffsetSf.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.DefCfaOffsetSf.field.factored_offset" class="section-header"><a href="#variant.DefCfaOffsetSf.field.factored_offset" class="anchor field">§</a><code>factored_offset: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i64.html">i64</a></code></span><div class="docblock"><p>The factored offset.</p>
</div></div></div><div class="docblock"><blockquote>
<ol start="5">
<li>DW_CFA_def_cfa_offset_sf</li>
</ol>
<p>The DW_CFA_def_cfa_offset_sf instruction takes a signed LEB128 operand
representing a factored offset. This instruction is identical to
DW_CFA_def_cfa_offset except that the operand is signed and
factored. The resulting offset is factored_offset *
data_alignment_factor. This operation is valid only if the current CFA
rule is defined to use a register and offset.</p>
</blockquote>
</div><section id="variant.DefCfaExpression" class="variant"><a href="#variant.DefCfaExpression" class="anchor">§</a><h3 class="code-header">DefCfaExpression</h3></section><div class="sub-variant" id="variant.DefCfaExpression.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.DefCfaExpression.field.expression" class="section-header"><a href="#variant.DefCfaExpression.field.expression" class="anchor field">§</a><code>expression: <a class="struct" href="struct.Expression.html" title="struct gimli::read::Expression">Expression</a>&lt;R&gt;</code></span><div class="docblock"><p>The DWARF expression.</p>
</div></div></div><div class="docblock"><blockquote>
<ol start="6">
<li>DW_CFA_def_cfa_expression</li>
</ol>
<p>The DW_CFA_def_cfa_expression instruction takes a single operand
encoded as a DW_FORM_exprloc value representing a DWARF
expression. The required action is to establish that expression as the
means by which the current CFA is computed.</p>
</blockquote>
</div><section id="variant.Undefined" class="variant"><a href="#variant.Undefined" class="anchor">§</a><h3 class="code-header">Undefined</h3></section><div class="sub-variant" id="variant.Undefined.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Undefined.field.register" class="section-header"><a href="#variant.Undefined.field.register" class="anchor field">§</a><code>register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a></code></span><div class="docblock"><p>The target registers number.</p>
</div></div></div><div class="docblock"><blockquote>
<ol>
<li>DW_CFA_undefined</li>
</ol>
<p>The DW_CFA_undefined instruction takes a single unsigned LEB128
operand that represents a register number. The required action is to
set the rule for the specified register to “undefined.”</p>
</blockquote>
</div><section id="variant.SameValue" class="variant"><a href="#variant.SameValue" class="anchor">§</a><h3 class="code-header">SameValue</h3></section><div class="sub-variant" id="variant.SameValue.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.SameValue.field.register" class="section-header"><a href="#variant.SameValue.field.register" class="anchor field">§</a><code>register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a></code></span><div class="docblock"><p>The target registers number.</p>
</div></div></div><div class="docblock"><blockquote>
<ol start="2">
<li>DW_CFA_same_value</li>
</ol>
<p>The DW_CFA_same_value instruction takes a single unsigned LEB128
operand that represents a register number. The required action is to
set the rule for the specified register to “same value.”</p>
</blockquote>
</div><section id="variant.Offset" class="variant"><a href="#variant.Offset" class="anchor">§</a><h3 class="code-header">Offset</h3></section><div class="sub-variant" id="variant.Offset.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Offset.field.register" class="section-header"><a href="#variant.Offset.field.register" class="anchor field">§</a><code>register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a></code></span><div class="docblock"><p>The target registers number.</p>
</div></div><div class="sub-variant-field"><span id="variant.Offset.field.factored_offset" class="section-header"><a href="#variant.Offset.field.factored_offset" class="anchor field">§</a><code>factored_offset: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a></code></span><div class="docblock"><p>The factored offset.</p>
</div></div></div><div class="docblock"><p>The <code>Offset</code> instruction represents both <code>DW_CFA_offset</code> and
<code>DW_CFA_offset_extended</code>.</p>
<blockquote>
<ol start="3">
<li>DW_CFA_offset</li>
</ol>
<p>The DW_CFA_offset instruction takes two operands: a register number
(encoded with the opcode) and an unsigned LEB128 constant representing
a factored offset. The required action is to change the rule for the
register indicated by the register number to be an offset(N) rule
where the value of N is factored offset * data_alignment_factor.</p>
</blockquote>
</div><section id="variant.OffsetExtendedSf" class="variant"><a href="#variant.OffsetExtendedSf" class="anchor">§</a><h3 class="code-header">OffsetExtendedSf</h3></section><div class="sub-variant" id="variant.OffsetExtendedSf.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.OffsetExtendedSf.field.register" class="section-header"><a href="#variant.OffsetExtendedSf.field.register" class="anchor field">§</a><code>register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a></code></span><div class="docblock"><p>The target registers number.</p>
</div></div><div class="sub-variant-field"><span id="variant.OffsetExtendedSf.field.factored_offset" class="section-header"><a href="#variant.OffsetExtendedSf.field.factored_offset" class="anchor field">§</a><code>factored_offset: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i64.html">i64</a></code></span><div class="docblock"><p>The factored offset.</p>
</div></div></div><div class="docblock"><blockquote>
<ol start="5">
<li>DW_CFA_offset_extended_sf</li>
</ol>
<p>The DW_CFA_offset_extended_sf instruction takes two operands: an
unsigned LEB128 value representing a register number and a signed
LEB128 factored offset. This instruction is identical to
DW_CFA_offset_extended except that the second operand is signed and
factored. The resulting offset is factored_offset *
data_alignment_factor.</p>
</blockquote>
</div><section id="variant.ValOffset" class="variant"><a href="#variant.ValOffset" class="anchor">§</a><h3 class="code-header">ValOffset</h3></section><div class="sub-variant" id="variant.ValOffset.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.ValOffset.field.register" class="section-header"><a href="#variant.ValOffset.field.register" class="anchor field">§</a><code>register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a></code></span><div class="docblock"><p>The target registers number.</p>
</div></div><div class="sub-variant-field"><span id="variant.ValOffset.field.factored_offset" class="section-header"><a href="#variant.ValOffset.field.factored_offset" class="anchor field">§</a><code>factored_offset: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a></code></span><div class="docblock"><p>The factored offset.</p>
</div></div></div><div class="docblock"><blockquote>
<ol start="6">
<li>DW_CFA_val_offset</li>
</ol>
<p>The DW_CFA_val_offset instruction takes two unsigned LEB128 operands
representing a register number and a factored offset. The required
action is to change the rule for the register indicated by the
register number to be a val_offset(N) rule where the value of N is
factored_offset * data_alignment_factor.</p>
</blockquote>
</div><section id="variant.ValOffsetSf" class="variant"><a href="#variant.ValOffsetSf" class="anchor">§</a><h3 class="code-header">ValOffsetSf</h3></section><div class="sub-variant" id="variant.ValOffsetSf.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.ValOffsetSf.field.register" class="section-header"><a href="#variant.ValOffsetSf.field.register" class="anchor field">§</a><code>register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a></code></span><div class="docblock"><p>The target registers number.</p>
</div></div><div class="sub-variant-field"><span id="variant.ValOffsetSf.field.factored_offset" class="section-header"><a href="#variant.ValOffsetSf.field.factored_offset" class="anchor field">§</a><code>factored_offset: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i64.html">i64</a></code></span><div class="docblock"><p>The factored offset.</p>
</div></div></div><div class="docblock"><blockquote>
<ol start="7">
<li>DW_CFA_val_offset_sf</li>
</ol>
<p>The DW_CFA_val_offset_sf instruction takes two operands: an unsigned
LEB128 value representing a register number and a signed LEB128
factored offset. This instruction is identical to DW_CFA_val_offset
except that the second operand is signed and factored. The resulting
offset is factored_offset * data_alignment_factor.</p>
</blockquote>
</div><section id="variant.Register" class="variant"><a href="#variant.Register" class="anchor">§</a><h3 class="code-header">Register</h3></section><div class="sub-variant" id="variant.Register.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Register.field.dest_register" class="section-header"><a href="#variant.Register.field.dest_register" class="anchor field">§</a><code>dest_register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a></code></span><div class="docblock"><p>The number of the register whose rule is being changed.</p>
</div></div><div class="sub-variant-field"><span id="variant.Register.field.src_register" class="section-header"><a href="#variant.Register.field.src_register" class="anchor field">§</a><code>src_register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a></code></span><div class="docblock"><p>The number of the register where the other registers value can be
found.</p>
</div></div></div><div class="docblock"><blockquote>
<ol start="8">
<li>DW_CFA_register</li>
</ol>
<p>The DW_CFA_register instruction takes two unsigned LEB128 operands
representing register numbers. The required action is to set the rule
for the first register to be register(R) where R is the second
register.</p>
</blockquote>
</div><section id="variant.Expression" class="variant"><a href="#variant.Expression" class="anchor">§</a><h3 class="code-header">Expression</h3></section><div class="sub-variant" id="variant.Expression.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Expression.field.register" class="section-header"><a href="#variant.Expression.field.register" class="anchor field">§</a><code>register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a></code></span><div class="docblock"><p>The target registers number.</p>
</div></div><div class="sub-variant-field"><span id="variant.Expression.field.expression" class="section-header"><a href="#variant.Expression.field.expression" class="anchor field">§</a><code>expression: <a class="struct" href="struct.Expression.html" title="struct gimli::read::Expression">Expression</a>&lt;R&gt;</code></span><div class="docblock"><p>The DWARF expression.</p>
</div></div></div><div class="docblock"><blockquote>
<ol start="9">
<li>DW_CFA_expression</li>
</ol>
<p>The DW_CFA_expression instruction takes two operands: an unsigned
LEB128 value representing a register number, and a DW_FORM_block value
representing a DWARF expression. The required action is to change the
rule for the register indicated by the register number to be an
expression(E) rule where E is the DWARF expression. That is, the DWARF
expression computes the address. The value of the CFA is pushed on the
DWARF evaluation stack prior to execution of the DWARF expression.</p>
</blockquote>
</div><section id="variant.ValExpression" class="variant"><a href="#variant.ValExpression" class="anchor">§</a><h3 class="code-header">ValExpression</h3></section><div class="sub-variant" id="variant.ValExpression.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.ValExpression.field.register" class="section-header"><a href="#variant.ValExpression.field.register" class="anchor field">§</a><code>register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a></code></span><div class="docblock"><p>The target registers number.</p>
</div></div><div class="sub-variant-field"><span id="variant.ValExpression.field.expression" class="section-header"><a href="#variant.ValExpression.field.expression" class="anchor field">§</a><code>expression: <a class="struct" href="struct.Expression.html" title="struct gimli::read::Expression">Expression</a>&lt;R&gt;</code></span><div class="docblock"><p>The DWARF expression.</p>
</div></div></div><div class="docblock"><blockquote>
<ol start="10">
<li>DW_CFA_val_expression</li>
</ol>
<p>The DW_CFA_val_expression instruction takes two operands: an unsigned
LEB128 value representing a register number, and a DW_FORM_block value
representing a DWARF expression. The required action is to change the
rule for the register indicated by the register number to be a
val_expression(E) rule where E is the DWARF expression. That is, the
DWARF expression computes the value of the given register. The value
of the CFA is pushed on the DWARF evaluation stack prior to execution
of the DWARF expression.</p>
</blockquote>
</div><section id="variant.Restore" class="variant"><a href="#variant.Restore" class="anchor">§</a><h3 class="code-header">Restore</h3></section><div class="sub-variant" id="variant.Restore.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Restore.field.register" class="section-header"><a href="#variant.Restore.field.register" class="anchor field">§</a><code>register: <a class="struct" href="../struct.Register.html" title="struct gimli::Register">Register</a></code></span><div class="docblock"><p>The register to be reset.</p>
</div></div></div><div class="docblock"><p>The <code>Restore</code> instruction represents both <code>DW_CFA_restore</code> and
<code>DW_CFA_restore_extended</code>.</p>
<blockquote>
<ol start="11">
<li>DW_CFA_restore</li>
</ol>
<p>The DW_CFA_restore instruction takes a single operand (encoded with
the opcode) that represents a register number. The required action is
to change the rule for the indicated register to the rule assigned it
by the initial_instructions in the CIE.</p>
</blockquote>
</div><section id="variant.RememberState" class="variant"><a href="#variant.RememberState" class="anchor">§</a><h3 class="code-header">RememberState</h3></section><div class="docblock"><blockquote>
<ol>
<li>DW_CFA_remember_state</li>
</ol>
<p>The DW_CFA_remember_state instruction takes no operands. The required
action is to push the set of rules for every register onto an implicit
stack.</p>
</blockquote>
</div><section id="variant.RestoreState" class="variant"><a href="#variant.RestoreState" class="anchor">§</a><h3 class="code-header">RestoreState</h3></section><div class="docblock"><blockquote>
<ol start="2">
<li>DW_CFA_restore_state</li>
</ol>
<p>The DW_CFA_restore_state instruction takes no operands. The required
action is to pop the set of rules off the implicit stack and place
them in the current row.</p>
</blockquote>
</div><section id="variant.ArgsSize" class="variant"><a href="#variant.ArgsSize" class="anchor">§</a><h3 class="code-header">ArgsSize</h3></section><div class="sub-variant" id="variant.ArgsSize.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.ArgsSize.field.size" class="section-header"><a href="#variant.ArgsSize.field.size" class="anchor field">§</a><code>size: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a></code></span><div class="docblock"><p>The size of the arguments which have been pushed onto the stack</p>
</div></div></div><div class="docblock"><blockquote>
<p>DW_CFA_GNU_args_size</p>
<p>GNU Extension</p>
<p>The DW_CFA_GNU_args_size instruction takes an unsigned LEB128 operand
representing an argument size. This instruction specifies the total of
the size of the arguments which have been pushed onto the stack.</p>
</blockquote>
</div><section id="variant.NegateRaState" class="variant"><a href="#variant.NegateRaState" class="anchor">§</a><h3 class="code-header">NegateRaState</h3></section><div class="docblock"><blockquote>
<p>DW_CFA_AARCH64_negate_ra_state</p>
<p>AArch64 Extension</p>
<p>The DW_CFA_AARCH64_negate_ra_state operation negates bit 0 of the
RA_SIGN_STATE pseudo-register. It does not take any operands. The
DW_CFA_AARCH64_negate_ra_state must not be mixed with other DWARF Register
Rule Instructions on the RA_SIGN_STATE pseudo-register in one Common
Information Entry (CIE) and Frame Descriptor Entry (FDE) program sequence.</p>
</blockquote>
</div><section id="variant.Nop" class="variant"><a href="#variant.Nop" class="anchor">§</a><h3 class="code-header">Nop</h3></section><div class="docblock"><blockquote>
<ol>
<li>DW_CFA_nop</li>
</ol>
<p>The DW_CFA_nop instruction has no operands and no required actions. It
is used as padding to make a CIE or FDE an appropriate size.</p>
</blockquote>
</div></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-CallFrameInstruction%3CR%3E" class="impl"><a class="src rightside" href="../../src/gimli/read/cfi.rs.html#2881">source</a><a href="#impl-Clone-for-CallFrameInstruction%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R: <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="trait.Reader.html" title="trait gimli::read::Reader">Reader</a>&gt; <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.CallFrameInstruction.html" title="enum gimli::read::CallFrameInstruction">CallFrameInstruction</a>&lt;R&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl"><a class="src rightside" href="../../src/gimli/read/cfi.rs.html#2881">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&amp;self) -&gt; <a class="enum" href="enum.CallFrameInstruction.html" title="enum gimli::read::CallFrameInstruction">CallFrameInstruction</a>&lt;R&gt;</h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/1.76.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.76.0/src/core/clone.rs.html#169">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&amp;mut self, source: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.reference.html">&amp;Self</a>)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/1.76.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-CallFrameInstruction%3CR%3E" class="impl"><a class="src rightside" href="../../src/gimli/read/cfi.rs.html#2881">source</a><a href="#impl-Debug-for-CallFrameInstruction%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R: <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="trait.Reader.html" title="trait gimli::read::Reader">Reader</a>&gt; <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.CallFrameInstruction.html" title="enum gimli::read::CallFrameInstruction">CallFrameInstruction</a>&lt;R&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../../src/gimli/read/cfi.rs.html#2881">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.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.76.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.76.0/core/fmt/type.Result.html" title="type core::fmt::Result"
by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.76.0/src/core/cmp.rs.html#242">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.reference.html">&amp;Rhs</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Eq-for-CallFrameInstruction%3CR%3E" class="impl"><a class="src rightside" href="../../src/gimli/read/cfi.rs.html#2881">source</a><a href="#impl-Eq-for-CallFrameInstruction%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R: <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="trait.Reader.html" title="trait gimli::read::Reader">Reader</a>&gt; <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.CallFrameInstruction.html" title="enum gimli::read::CallFrameInstruction">CallFrameInstruction</a>&lt;R&gt;</h3></section><section id="impl-StructuralEq-for-CallFrameInstruction%3CR%3E" class="impl"><a class="src rightside" href="../../src/gimli/read/cfi.rs.html#2881">source</a><a href="#impl-StructuralEq-for-CallFrameInstruction%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R: <a class="trait" href="trait.Reader.html" title="trait gimli::read::Reader">Reader</a>&gt; <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.CallFrameInstruction.html" title="enum gimli::read::CallFrameInstruction">CallFrameInstruction</a>&lt;R&gt;</h3></section><section id="impl-StructuralPartialEq-for-CallFrameInstruction%3CR%3E" class="impl"><a class="src rightside" href="../../src/gimli/read/cfi.rs.html#2881">source</a><a href="#impl-StructuralPartialEq-for-CallFrameInstruction%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R: <a class="trait" href="trait.Reader.html" title="trait gimli::read::Reader">Reader</a>&gt; <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.CallFrameInstruction.html" title="enum gimli::read::CallFrameInstruction">CallFrameInstruction</a>&lt;R&gt;</h3></section></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-CallFrameInstruction%3CR%3E" class="impl"><a href="#impl-RefUnwindSafe-for-CallFrameInstruction%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.CallFrameInstruction.html" title="enum gimli::read::CallFrameInstruction">CallFrameInstruction</a>&lt;R&gt;<div class="where">where
R: <a class="trait" href="https://doc.rust-lang.org/1.76.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-CallFrameInstruction%3CR%3E" class="impl"><a href="#impl-Send-for-CallFrameInstruction%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.CallFrameInstruction.html" title="enum gimli::read::CallFrameInstruction">CallFrameInstruction</a>&lt;R&gt;<div class="where">where
R: <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section><section id="impl-Sync-for-CallFrameInstruction%3CR%3E" class="impl"><a href="#impl-Sync-for-CallFrameInstruction%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.CallFrameInstruction.html" title="enum gimli::read::CallFrameInstruction">CallFrameInstruction</a>&lt;R&gt;<div class="where">where
R: <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</div></h3></section><section id="impl-Unpin-for-CallFrameInstruction%3CR%3E" class="impl"><a href="#impl-Unpin-for-CallFrameInstruction%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.CallFrameInstruction.html" title="enum gimli::read::CallFrameInstruction">CallFrameInstruction</a>&lt;R&gt;<div class="where">where
R: <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</div></h3></section><section id="impl-UnwindSafe-for-CallFrameInstruction%3CR%3E" class="impl"><a href="#impl-UnwindSafe-for-CallFrameInstruction%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.CallFrameInstruction.html" title="enum gimli::read::CallFrameInstruction">CallFrameInstruction</a>&lt;R&gt;<div class="where">where
R: <a class="trait" href="https://doc.rust-lang.org/1.76.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.76.0/src/core/any.rs.html#140">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.76.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.76.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.76.0/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.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.76.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.76.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.76.0/src/core/borrow.rs.html#208">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.76.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.76.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.76.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.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.76.0/core/primitive.reference.html">&amp;T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.76.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.76.0/src/core/borrow.rs.html#216">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.76.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.76.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.76.0/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.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.76.0/core/primitive.reference.html">&amp;mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.76.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.76.0/src/core/convert/mod.rs.html#763">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.76.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.76.0/src/core/convert/mod.rs.html#766">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.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.76.0/src/core/convert/mod.rs.html#747-749">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.76.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.76.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.76.0/src/core/convert/mod.rs.html#756">source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.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.76.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.76.0/src/alloc/borrow.rs.html#83-85">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.76.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.76.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 href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.76.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.76.0/src/alloc/borrow.rs.html#88">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.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.76.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.76.0/src/alloc/borrow.rs.html#92">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.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.76.0/core/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.76.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.76.0/src/core/convert/mod.rs.html#803-805">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.76.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.76.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" class="associatedtype trait-impl"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.76.0/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.76.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.76.0/src/core/convert/mod.rs.html#810">source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.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.76.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.76.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.76.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.76.0/src/core/convert/mod.rs.html#788-790">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.76.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.76.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-1" class="associatedtype trait-impl"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.76.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.76.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.76.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.76.0/src/core/convert/mod.rs.html#795">source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.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.76.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.76.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.76.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>