edlang/object/read/trait.ObjectSymbol.html
2024-03-02 09:26:34 +00:00

48 lines
22 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A symbol table entry in an `Object`."><title>ObjectSymbol in object::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="object" 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 trait"><!--[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="../../object/index.html">object</a><span class="version">0.32.2</span></h2></div><h2 class="location"><a href="#">ObjectSymbol</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.address">address</a></li><li><a href="#tymethod.flags">flags</a></li><li><a href="#tymethod.index">index</a></li><li><a href="#tymethod.is_common">is_common</a></li><li><a href="#tymethod.is_definition">is_definition</a></li><li><a href="#tymethod.is_global">is_global</a></li><li><a href="#tymethod.is_local">is_local</a></li><li><a href="#tymethod.is_undefined">is_undefined</a></li><li><a href="#tymethod.is_weak">is_weak</a></li><li><a href="#tymethod.kind">kind</a></li><li><a href="#tymethod.name">name</a></li><li><a href="#tymethod.name_bytes">name_bytes</a></li><li><a href="#tymethod.scope">scope</a></li><li><a href="#tymethod.section">section</a></li><li><a href="#tymethod.size">size</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.section_index">section_index</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In object::read</a></h2></div></nav><div class="sidebar-resizer"></div>
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../../object/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>Trait <a href="../index.html">object</a>::<wbr><a href="index.html">read</a>::<wbr><a class="trait" href="#">ObjectSymbol</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/object/read/traits.rs.html#477-538">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code>pub trait ObjectSymbol&lt;'data&gt;: Sealed {
<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 16 methods</span></summary> // Required methods
fn <a href="#tymethod.index" class="fn">index</a>(&amp;self) -&gt; <a class="struct" href="struct.SymbolIndex.html" title="struct object::read::SymbolIndex">SymbolIndex</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.name_bytes" class="fn">name_bytes</a>(&amp;self) -&gt; <a class="type" href="type.Result.html" title="type object::read::Result">Result</a>&lt;&amp;'data [<a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.u8.html">u8</a>]&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.name" class="fn">name</a>(&amp;self) -&gt; <a class="type" href="type.Result.html" title="type object::read::Result">Result</a>&lt;&amp;'data <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.str.html">str</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.address" class="fn">address</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.u64.html">u64</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.size" class="fn">size</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.u64.html">u64</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.kind" class="fn">kind</a>(&amp;self) -&gt; <a class="enum" href="../enum.SymbolKind.html" title="enum object::SymbolKind">SymbolKind</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.section" class="fn">section</a>(&amp;self) -&gt; <a class="enum" href="enum.SymbolSection.html" title="enum object::read::SymbolSection">SymbolSection</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.is_undefined" class="fn">is_undefined</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.bool.html">bool</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.is_definition" class="fn">is_definition</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.bool.html">bool</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.is_common" class="fn">is_common</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.bool.html">bool</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.is_weak" class="fn">is_weak</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.bool.html">bool</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.scope" class="fn">scope</a>(&amp;self) -&gt; <a class="enum" href="../enum.SymbolScope.html" title="enum object::SymbolScope">SymbolScope</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.is_global" class="fn">is_global</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.bool.html">bool</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.is_local" class="fn">is_local</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.bool.html">bool</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.flags" class="fn">flags</a>(&amp;self) -&gt; <a class="enum" href="../enum.SymbolFlags.html" title="enum object::SymbolFlags">SymbolFlags</a>&lt;<a class="struct" href="struct.SectionIndex.html" title="struct object::read::SectionIndex">SectionIndex</a>, <a class="struct" href="struct.SymbolIndex.html" title="struct object::read::SymbolIndex">SymbolIndex</a>&gt;;
// Provided method
fn <a href="#method.section_index" class="fn">section_index</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.76.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.SectionIndex.html" title="struct object::read::SectionIndex">SectionIndex</a>&gt; { ... }
</details>}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A symbol table entry in an <a href="trait.Object.html" title="trait object::read::Object"><code>Object</code></a>.</p>
<p>This trait is part of the unified read API.</p>
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.index" class="method"><a class="src rightside" href="../../src/object/read/traits.rs.html#479">source</a><h4 class="code-header">fn <a href="#tymethod.index" class="fn">index</a>(&amp;self) -&gt; <a class="struct" href="struct.SymbolIndex.html" title="struct object::read::SymbolIndex">SymbolIndex</a></h4></section></summary><div class="docblock"><p>The index of the symbol.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.name_bytes" class="method"><a class="src rightside" href="../../src/object/read/traits.rs.html#482">source</a><h4 class="code-header">fn <a href="#tymethod.name_bytes" class="fn">name_bytes</a>(&amp;self) -&gt; <a class="type" href="type.Result.html" title="type object::read::Result">Result</a>&lt;&amp;'data [<a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.u8.html">u8</a>]&gt;</h4></section></summary><div class="docblock"><p>The name of the symbol.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.name" class="method"><a class="src rightside" href="../../src/object/read/traits.rs.html#487">source</a><h4 class="code-header">fn <a href="#tymethod.name" class="fn">name</a>(&amp;self) -&gt; <a class="type" href="type.Result.html" title="type object::read::Result">Result</a>&lt;&amp;'data <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.str.html">str</a>&gt;</h4></section></summary><div class="docblock"><p>The name of the symbol.</p>
<p>Returns an error if the name is not UTF-8.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.address" class="method"><a class="src rightside" href="../../src/object/read/traits.rs.html#490">source</a><h4 class="code-header">fn <a href="#tymethod.address" class="fn">address</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.u64.html">u64</a></h4></section></summary><div class="docblock"><p>The address of the symbol. May be zero if the address is unknown.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.size" class="method"><a class="src rightside" href="../../src/object/read/traits.rs.html#493">source</a><h4 class="code-header">fn <a href="#tymethod.size" class="fn">size</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.u64.html">u64</a></h4></section></summary><div class="docblock"><p>The size of the symbol. May be zero if the size is unknown.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.kind" class="method"><a class="src rightside" href="../../src/object/read/traits.rs.html#496">source</a><h4 class="code-header">fn <a href="#tymethod.kind" class="fn">kind</a>(&amp;self) -&gt; <a class="enum" href="../enum.SymbolKind.html" title="enum object::SymbolKind">SymbolKind</a></h4></section></summary><div class="docblock"><p>Return the kind of this symbol.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.section" class="method"><a class="src rightside" href="../../src/object/read/traits.rs.html#499">source</a><h4 class="code-header">fn <a href="#tymethod.section" class="fn">section</a>(&amp;self) -&gt; <a class="enum" href="enum.SymbolSection.html" title="enum object::read::SymbolSection">SymbolSection</a></h4></section></summary><div class="docblock"><p>Returns the section where the symbol is defined.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.is_undefined" class="method"><a class="src rightside" href="../../src/object/read/traits.rs.html#509">source</a><h4 class="code-header">fn <a href="#tymethod.is_undefined" class="fn">is_undefined</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return true if the symbol is undefined.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.is_definition" class="method"><a class="src rightside" href="../../src/object/read/traits.rs.html#515">source</a><h4 class="code-header">fn <a href="#tymethod.is_definition" class="fn">is_definition</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return true if the symbol is a definition of a function or data object
that has a known address.</p>
<p>This is primarily used to implement <a href="trait.Object.html#method.symbol_map" title="method object::read::Object::symbol_map"><code>Object::symbol_map</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.is_common" class="method"><a class="src rightside" href="../../src/object/read/traits.rs.html#520">source</a><h4 class="code-header">fn <a href="#tymethod.is_common" class="fn">is_common</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return true if the symbol is common data.</p>
<p>Note: does not check for <a href="enum.SymbolSection.html#variant.Section" title="variant object::read::SymbolSection::Section"><code>SymbolSection::Section</code></a> with <a href="../enum.SectionKind.html#variant.Common" title="variant object::SectionKind::Common"><code>SectionKind::Common</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.is_weak" class="method"><a class="src rightside" href="../../src/object/read/traits.rs.html#523">source</a><h4 class="code-header">fn <a href="#tymethod.is_weak" class="fn">is_weak</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return true if the symbol is weak.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.scope" class="method"><a class="src rightside" href="../../src/object/read/traits.rs.html#526">source</a><h4 class="code-header">fn <a href="#tymethod.scope" class="fn">scope</a>(&amp;self) -&gt; <a class="enum" href="../enum.SymbolScope.html" title="enum object::SymbolScope">SymbolScope</a></h4></section></summary><div class="docblock"><p>Returns the symbol scope.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.is_global" class="method"><a class="src rightside" href="../../src/object/read/traits.rs.html#531">source</a><h4 class="code-header">fn <a href="#tymethod.is_global" class="fn">is_global</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return true if the symbol visible outside of the compilation unit.</p>
<p>This treats <a href="../enum.SymbolScope.html#variant.Unknown" title="variant object::SymbolScope::Unknown"><code>SymbolScope::Unknown</code></a> as global.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.is_local" class="method"><a class="src rightside" href="../../src/object/read/traits.rs.html#534">source</a><h4 class="code-header">fn <a href="#tymethod.is_local" class="fn">is_local</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return true if the symbol is only visible within the compilation unit.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.flags" class="method"><a class="src rightside" href="../../src/object/read/traits.rs.html#537">source</a><h4 class="code-header">fn <a href="#tymethod.flags" class="fn">flags</a>(&amp;self) -&gt; <a class="enum" href="../enum.SymbolFlags.html" title="enum object::SymbolFlags">SymbolFlags</a>&lt;<a class="struct" href="struct.SectionIndex.html" title="struct object::read::SectionIndex">SectionIndex</a>, <a class="struct" href="struct.SymbolIndex.html" title="struct object::read::SymbolIndex">SymbolIndex</a>&gt;</h4></section></summary><div class="docblock"><p>Symbol flags that are specific to each file format.</p>
</div></details></div><h2 id="provided-methods" class="section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="method.section_index" class="method"><a class="src rightside" href="../../src/object/read/traits.rs.html#504-506">source</a><h4 class="code-header">fn <a href="#method.section_index" class="fn">section_index</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.76.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.SectionIndex.html" title="struct object::read::SectionIndex">SectionIndex</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the section index for the section containing this symbol.</p>
<p>May return <code>None</code> if the symbol is not defined in a section.</p>
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-ObjectSymbol%3C'data%3E-for-ElfSymbol%3C'data,+'file,+Elf,+R%3E" class="impl"><a class="src rightside" href="../../src/object/read/elf/symbol.rs.html#329-448">source</a><a href="#impl-ObjectSymbol%3C'data%3E-for-ElfSymbol%3C'data,+'file,+Elf,+R%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'data, 'file, Elf: <a class="trait" href="elf/trait.FileHeader.html" title="trait object::read::elf::FileHeader">FileHeader</a>, R: <a class="trait" href="trait.ReadRef.html" title="trait object::read::ReadRef">ReadRef</a>&lt;'data&gt;&gt; <a class="trait" href="trait.ObjectSymbol.html" title="trait object::read::ObjectSymbol">ObjectSymbol</a>&lt;'data&gt; for <a class="struct" href="elf/struct.ElfSymbol.html" title="struct object::read::elf::ElfSymbol">ElfSymbol</a>&lt;'data, 'file, Elf, R&gt;</h3></section><section id="impl-ObjectSymbol%3C'data%3E-for-MachOSymbol%3C'data,+'file,+Mach,+R%3E" class="impl"><a class="src rightside" href="../../src/object/read/macho/symbol.rs.html#284-399">source</a><a href="#impl-ObjectSymbol%3C'data%3E-for-MachOSymbol%3C'data,+'file,+Mach,+R%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'data, 'file, Mach, R&gt; <a class="trait" href="trait.ObjectSymbol.html" title="trait object::read::ObjectSymbol">ObjectSymbol</a>&lt;'data&gt; for <a class="struct" href="macho/struct.MachOSymbol.html" title="struct object::read::macho::MachOSymbol">MachOSymbol</a>&lt;'data, 'file, Mach, R&gt;<div class="where">where
Mach: <a class="trait" href="macho/trait.MachHeader.html" title="trait object::read::macho::MachHeader">MachHeader</a>,
R: <a class="trait" href="trait.ReadRef.html" title="trait object::read::ReadRef">ReadRef</a>&lt;'data&gt;,</div></h3></section><section id="impl-ObjectSymbol%3C'data%3E-for-Symbol%3C'data,+'file,+R%3E" class="impl"><a class="src rightside" href="../../src/object/read/any.rs.html#1191-1251">source</a><a href="#impl-ObjectSymbol%3C'data%3E-for-Symbol%3C'data,+'file,+R%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'data, 'file, R: <a class="trait" href="trait.ReadRef.html" title="trait object::read::ReadRef">ReadRef</a>&lt;'data&gt;&gt; <a class="trait" href="trait.ObjectSymbol.html" title="trait object::read::ObjectSymbol">ObjectSymbol</a>&lt;'data&gt; for <a class="struct" href="struct.Symbol.html" title="struct object::read::Symbol">Symbol</a>&lt;'data, 'file, R&gt;</h3></section><section id="impl-ObjectSymbol%3C'data%3E-for-CoffSymbol%3C'data,+'file,+R,+Coff%3E" class="impl"><a class="src rightside" href="../../src/object/read/coff/symbol.rs.html#309-506">source</a><a href="#impl-ObjectSymbol%3C'data%3E-for-CoffSymbol%3C'data,+'file,+R,+Coff%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'data, 'file, R: <a class="trait" href="trait.ReadRef.html" title="trait object::read::ReadRef">ReadRef</a>&lt;'data&gt;, Coff: <a class="trait" href="coff/trait.CoffHeader.html" title="trait object::read::coff::CoffHeader">CoffHeader</a>&gt; <a class="trait" href="trait.ObjectSymbol.html" title="trait object::read::ObjectSymbol">ObjectSymbol</a>&lt;'data&gt; for <a class="struct" href="coff/struct.CoffSymbol.html" title="struct object::read::coff::CoffSymbol">CoffSymbol</a>&lt;'data, 'file, R, Coff&gt;</h3></section></div><script src="../../trait.impl/object/read/traits/trait.ObjectSymbol.js" async></script></section></div></main></body></html>