edlang/gimli/read/trait.Reader.html
2024-02-13 06:38:44 +00:00

131 lines
52 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 trait for reading the data from a DWARF section."><title>Reader 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 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="../../gimli/index.html">gimli</a><span class="version">0.28.1</span></h2></div><h2 class="location"><a href="#">Reader</a></h2><div class="sidebar-elems"><section><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.Endian">Endian</a></li><li><a href="#associatedtype.Offset">Offset</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.empty">empty</a></li><li><a href="#tymethod.endian">endian</a></li><li><a href="#tymethod.find">find</a></li><li><a href="#tymethod.len">len</a></li><li><a href="#tymethod.lookup_offset_id">lookup_offset_id</a></li><li><a href="#tymethod.offset_from">offset_from</a></li><li><a href="#tymethod.offset_id">offset_id</a></li><li><a href="#tymethod.read_slice">read_slice</a></li><li><a href="#tymethod.skip">skip</a></li><li><a href="#tymethod.split">split</a></li><li><a href="#tymethod.to_slice">to_slice</a></li><li><a href="#tymethod.to_string">to_string</a></li><li><a href="#tymethod.to_string_lossy">to_string_lossy</a></li><li><a href="#tymethod.truncate">truncate</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.is_empty">is_empty</a></li><li><a href="#method.read_address">read_address</a></li><li><a href="#method.read_f32">read_f32</a></li><li><a href="#method.read_f64">read_f64</a></li><li><a href="#method.read_i16">read_i16</a></li><li><a href="#method.read_i32">read_i32</a></li><li><a href="#method.read_i64">read_i64</a></li><li><a href="#method.read_i8">read_i8</a></li><li><a href="#method.read_initial_length">read_initial_length</a></li><li><a href="#method.read_length">read_length</a></li><li><a href="#method.read_null_terminated_slice">read_null_terminated_slice</a></li><li><a href="#method.read_offset">read_offset</a></li><li><a href="#method.read_sized_offset">read_sized_offset</a></li><li><a href="#method.read_sleb128">read_sleb128</a></li><li><a href="#method.read_u16">read_u16</a></li><li><a href="#method.read_u32">read_u32</a></li><li><a href="#method.read_u64">read_u64</a></li><li><a href="#method.read_u8">read_u8</a></li><li><a href="#method.read_u8_array">read_u8_array</a></li><li><a href="#method.read_uint">read_uint</a></li><li><a href="#method.read_uleb128">read_uleb128</a></li><li><a href="#method.read_uleb128_u16">read_uleb128_u16</a></li><li><a href="#method.read_uleb128_u32">read_uleb128_u32</a></li><li><a href="#method.read_word">read_word</a></li><li><a href="#method.skip_leb128">skip_leb128</a></li></ul><h3><a href="#object-safety">Object Safety</a></h3><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In gimli::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="../../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>Trait <a href="../index.html">gimli</a>::<wbr><a href="index.html">read</a>::<wbr><a class="trait" href="#">Reader</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/reader.rs.html#215-502">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 Reader: <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="https://doc.rust-lang.org/1.76.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> {
type <a href="#associatedtype.Endian" class="associatedtype">Endian</a>: <a class="trait" href="../trait.Endianity.html" title="trait gimli::Endianity">Endianity</a>;
type <a href="#associatedtype.Offset" class="associatedtype">Offset</a>: <a class="trait" href="trait.ReaderOffset.html" title="trait gimli::read::ReaderOffset">ReaderOffset</a>;
<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 39 methods</span></summary> // Required methods
fn <a href="#tymethod.endian" class="fn">endian</a>(&amp;self) -&gt; Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Endian" title="type gimli::read::Reader::Endian">Endian</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.len" class="fn">len</a>(&amp;self) -&gt; Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.empty" class="fn">empty</a>(&amp;mut self);
<span class="item-spacer"></span> fn <a href="#tymethod.truncate" class="fn">truncate</a>(&amp;mut self, len: Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.unit.html">()</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.offset_from" class="fn">offset_from</a>(&amp;self, base: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.reference.html">&amp;Self</a>) -&gt; Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.offset_id" class="fn">offset_id</a>(&amp;self) -&gt; <a class="struct" href="struct.ReaderOffsetId.html" title="struct gimli::read::ReaderOffsetId">ReaderOffsetId</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.lookup_offset_id" class="fn">lookup_offset_id</a>(&amp;self, id: <a class="struct" href="struct.ReaderOffsetId.html" title="struct gimli::read::ReaderOffsetId">ReaderOffsetId</a>) -&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;Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.find" class="fn">find</a>(&amp;self, byte: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u8.html">u8</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.skip" class="fn">skip</a>(&amp;mut self, len: Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.unit.html">()</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.split" class="fn">split</a>(&amp;mut self, len: Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;Self&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.to_slice" class="fn">to_slice</a>(&amp;self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.76.0/alloc/borrow/enum.Cow.html" title="enum alloc::borrow::Cow">Cow</a>&lt;'_, [<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u8.html">u8</a>]&gt;&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.to_string" class="fn">to_string</a>(&amp;self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.76.0/alloc/borrow/enum.Cow.html" title="enum alloc::borrow::Cow">Cow</a>&lt;'_, <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.str.html">str</a>&gt;&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.to_string_lossy" class="fn">to_string_lossy</a>(&amp;self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.76.0/alloc/borrow/enum.Cow.html" title="enum alloc::borrow::Cow">Cow</a>&lt;'_, <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.str.html">str</a>&gt;&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.read_slice" class="fn">read_slice</a>(&amp;mut self, buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u8.html">u8</a>]) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.unit.html">()</a>&gt;;
// Provided methods
fn <a href="#method.read_u8_array" class="fn">read_u8_array</a>&lt;A&gt;(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;A&gt;
<span class="where">where A: <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a>&lt;[<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u8.html">u8</a>]&gt;</span> { ... }
<span class="item-spacer"></span> fn <a href="#method.is_empty" class="fn">is_empty</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.bool.html">bool</a> { ... }
<span class="item-spacer"></span> fn <a href="#method.read_u8" class="fn">read_u8</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u8.html">u8</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_i8" class="fn">read_i8</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i8.html">i8</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_u16" class="fn">read_u16</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u16.html">u16</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_i16" class="fn">read_i16</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i16.html">i16</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_u32" class="fn">read_u32</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u32.html">u32</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_i32" class="fn">read_i32</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i32.html">i32</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_u64" class="fn">read_u64</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_i64" class="fn">read_i64</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i64.html">i64</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_f32" class="fn">read_f32</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.f32.html">f32</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_f64" class="fn">read_f64</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.f64.html">f64</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_uint" class="fn">read_uint</a>(&amp;mut self, n: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.usize.html">usize</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_null_terminated_slice" class="fn">read_null_terminated_slice</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;Self&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.skip_leb128" class="fn">skip_leb128</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.unit.html">()</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_uleb128" class="fn">read_uleb128</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_uleb128_u32" class="fn">read_uleb128_u32</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u32.html">u32</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_uleb128_u16" class="fn">read_uleb128_u16</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u16.html">u16</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_sleb128" class="fn">read_sleb128</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i64.html">i64</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_initial_length" class="fn">read_initial_length</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;(Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>, <a class="enum" href="../enum.Format.html" title="enum gimli::Format">Format</a>)&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_address" class="fn">read_address</a>(&amp;mut self, address_size: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u8.html">u8</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_word" class="fn">read_word</a>(&amp;mut self, format: <a class="enum" href="../enum.Format.html" title="enum gimli::Format">Format</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_length" class="fn">read_length</a>(&amp;mut self, format: <a class="enum" href="../enum.Format.html" title="enum gimli::Format">Format</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_offset" class="fn">read_offset</a>(&amp;mut self, format: <a class="enum" href="../enum.Format.html" title="enum gimli::Format">Format</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.read_sized_offset" class="fn">read_sized_offset</a>(&amp;mut self, size: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u8.html">u8</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>&gt; { ... }
</details>}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A trait for reading the data from a DWARF section.</p>
<p>All read operations advance the section offset of the reader
unless specified otherwise.</p>
<h3 id="choosing-a-reader-implementation"><a href="#choosing-a-reader-implementation">Choosing a <code>Reader</code> Implementation</a></h3>
<p><code>gimli</code> comes with a few different <code>Reader</code> implementations and lets you
choose the one that is right for your use case. A <code>Reader</code> is essentially a
view into the raw bytes that make up some DWARF, but this view might borrow
the underlying data or use reference counting ownership, and it might be
thread safe or not.</p>
<div><table><thead><tr><th style="text-align: left">Implementation</th><th style="text-align: left">Ownership</th><th style="text-align: left">Thread Safe</th><th style="text-align: left">Notes</th></tr></thead><tbody>
<tr><td style="text-align: left"><a href="./struct.EndianSlice.html"><code>EndianSlice</code></a></td><td style="text-align: left">Borrowed</td><td style="text-align: left">Yes</td><td style="text-align: left">Fastest, but requires that all of your code work with borrows.</td></tr>
<tr><td style="text-align: left"><a href="./struct.EndianRcSlice.html"><code>EndianRcSlice</code></a></td><td style="text-align: left">Reference counted</td><td style="text-align: left">No</td><td style="text-align: left">Shared ownership via reference counting, which alleviates the borrow restrictions of <code>EndianSlice</code> but imposes reference counting increments and decrements. Cannot be sent across threads, because the reference count is not atomic.</td></tr>
<tr><td style="text-align: left"><a href="./struct.EndianArcSlice.html"><code>EndianArcSlice</code></a></td><td style="text-align: left">Reference counted</td><td style="text-align: left">Yes</td><td style="text-align: left">The same as <code>EndianRcSlice</code>, but uses atomic reference counting, and therefore reference counting operations are slower but <code>EndianArcSlice</code>s may be sent across threads.</td></tr>
<tr><td style="text-align: left"><a href="./struct.EndianReader.html"><code>EndianReader&lt;T&gt;</code></a></td><td style="text-align: left">Same as <code>T</code></td><td style="text-align: left">Same as <code>T</code></td><td style="text-align: left">Escape hatch for easily defining your own type of <code>Reader</code>.</td></tr>
</tbody></table>
</div></div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="toggle" open><summary><section id="associatedtype.Endian" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#217">source</a><h4 class="code-header">type <a href="#associatedtype.Endian" class="associatedtype">Endian</a>: <a class="trait" href="../trait.Endianity.html" title="trait gimli::Endianity">Endianity</a></h4></section></summary><div class="docblock"><p>The endianity of bytes that are read.</p>
</div></details><details class="toggle" open><summary><section id="associatedtype.Offset" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#220">source</a><h4 class="code-header">type <a href="#associatedtype.Offset" class="associatedtype">Offset</a>: <a class="trait" href="trait.ReaderOffset.html" title="trait gimli::read::ReaderOffset">ReaderOffset</a></h4></section></summary><div class="docblock"><p>The type used for offsets and lengths.</p>
</div></details></div><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.endian" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#223">source</a><h4 class="code-header">fn <a href="#tymethod.endian" class="fn">endian</a>(&amp;self) -&gt; Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Endian" title="type gimli::read::Reader::Endian">Endian</a></h4></section></summary><div class="docblock"><p>Return the endianity of bytes that are read.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.len" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#226">source</a><h4 class="code-header">fn <a href="#tymethod.len" class="fn">len</a>(&amp;self) -&gt; Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a></h4></section></summary><div class="docblock"><p>Return the number of bytes remaining.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.empty" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#229">source</a><h4 class="code-header">fn <a href="#tymethod.empty" class="fn">empty</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Set the number of bytes remaining to zero.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.truncate" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#232">source</a><h4 class="code-header">fn <a href="#tymethod.truncate" class="fn">truncate</a>(&amp;mut self, len: Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.unit.html">()</a>&gt;</h4></section></summary><div class="docblock"><p>Set the number of bytes remaining to the specified length.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.offset_from" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#239">source</a><h4 class="code-header">fn <a href="#tymethod.offset_from" class="fn">offset_from</a>(&amp;self, base: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.reference.html">&amp;Self</a>) -&gt; Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a></h4></section></summary><div class="docblock"><p>Return the offset of this readers data relative to the start of
the given base readers data.</p>
<p>May panic if this readers data is not contained within the given
base readers data.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.offset_id" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#242">source</a><h4 class="code-header">fn <a href="#tymethod.offset_id" class="fn">offset_id</a>(&amp;self) -&gt; <a class="struct" href="struct.ReaderOffsetId.html" title="struct gimli::read::ReaderOffsetId">ReaderOffsetId</a></h4></section></summary><div class="docblock"><p>Return an identifier for the current reader offset.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.lookup_offset_id" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#246">source</a><h4 class="code-header">fn <a href="#tymethod.lookup_offset_id" class="fn">lookup_offset_id</a>(&amp;self, id: <a class="struct" href="struct.ReaderOffsetId.html" title="struct gimli::read::ReaderOffsetId">ReaderOffsetId</a>) -&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;Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>&gt;</h4></section></summary><div class="docblock"><p>Return the offset corresponding to the given <code>id</code> if
it is associated with this reader.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.find" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#250">source</a><h4 class="code-header">fn <a href="#tymethod.find" class="fn">find</a>(&amp;self, byte: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u8.html">u8</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>&gt;</h4></section></summary><div class="docblock"><p>Find the index of the first occurrence of the given byte.
The offset of the reader is not changed.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.skip" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#253">source</a><h4 class="code-header">fn <a href="#tymethod.skip" class="fn">skip</a>(&amp;mut self, len: Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.unit.html">()</a>&gt;</h4></section></summary><div class="docblock"><p>Discard the specified number of bytes.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.split" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#259">source</a><h4 class="code-header">fn <a href="#tymethod.split" class="fn">split</a>(&amp;mut self, len: Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;Self&gt;</h4></section></summary><div class="docblock"><p>Split a reader in two.</p>
<p>A new reader is returned that can be used to read the next
<code>len</code> bytes, and <code>self</code> is advanced so that it reads the remainder.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.to_slice" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#277">source</a><h4 class="code-header">fn <a href="#tymethod.to_slice" class="fn">to_slice</a>(&amp;self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.76.0/alloc/borrow/enum.Cow.html" title="enum alloc::borrow::Cow">Cow</a>&lt;'_, [<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u8.html">u8</a>]&gt;&gt;</h4></section></summary><div class="docblock"><p>Return all remaining data as a clone-on-write slice.</p>
<p>The slice will be borrowed where possible, but some readers may
always return an owned vector.</p>
<p>Does not advance the reader.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.to_string" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#288">source</a><h4 class="code-header">fn <a href="#tymethod.to_string" class="fn">to_string</a>(&amp;self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.76.0/alloc/borrow/enum.Cow.html" title="enum alloc::borrow::Cow">Cow</a>&lt;'_, <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.str.html">str</a>&gt;&gt;</h4></section></summary><div class="docblock"><p>Convert all remaining data to a clone-on-write string.</p>
<p>The string will be borrowed where possible, but some readers may
always return an owned string.</p>
<p>Does not advance the reader.</p>
<p>Returns an error if the data contains invalid characters.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.to_string_lossy" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#297">source</a><h4 class="code-header">fn <a href="#tymethod.to_string_lossy" class="fn">to_string_lossy</a>(&amp;self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.76.0/alloc/borrow/enum.Cow.html" title="enum alloc::borrow::Cow">Cow</a>&lt;'_, <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.str.html">str</a>&gt;&gt;</h4></section></summary><div class="docblock"><p>Convert all remaining data to a clone-on-write string, including invalid characters.</p>
<p>The string will be borrowed where possible, but some readers may
always return an owned string.</p>
<p>Does not advance the reader.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.read_slice" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#300">source</a><h4 class="code-header">fn <a href="#tymethod.read_slice" class="fn">read_slice</a>(&amp;mut self, buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u8.html">u8</a>]) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.unit.html">()</a>&gt;</h4></section></summary><div class="docblock"><p>Read exactly <code>buf.len()</code> bytes into <code>buf</code>.</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.read_u8_array" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#304-311">source</a><h4 class="code-header">fn <a href="#method.read_u8_array" class="fn">read_u8_array</a>&lt;A&gt;(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;A&gt;<div class="where">where
A: <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a>&lt;[<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u8.html">u8</a>]&gt;,</div></h4></section></summary><div class="docblock"><p>Read a u8 array.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_empty" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#315-317">source</a><h4 class="code-header">fn <a href="#method.is_empty" class="fn">is_empty</a>(&amp;self) -&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"><p>Return true if the number of bytes remaining is zero.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_u8" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#321-324">source</a><h4 class="code-header">fn <a href="#method.read_u8" class="fn">read_u8</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u8.html">u8</a>&gt;</h4></section></summary><div class="docblock"><p>Read a u8.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_i8" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#328-331">source</a><h4 class="code-header">fn <a href="#method.read_i8" class="fn">read_i8</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i8.html">i8</a>&gt;</h4></section></summary><div class="docblock"><p>Read an i8.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_u16" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#335-338">source</a><h4 class="code-header">fn <a href="#method.read_u16" class="fn">read_u16</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u16.html">u16</a>&gt;</h4></section></summary><div class="docblock"><p>Read a u16.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_i16" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#342-345">source</a><h4 class="code-header">fn <a href="#method.read_i16" class="fn">read_i16</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i16.html">i16</a>&gt;</h4></section></summary><div class="docblock"><p>Read an i16.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_u32" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#349-352">source</a><h4 class="code-header">fn <a href="#method.read_u32" class="fn">read_u32</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u32.html">u32</a>&gt;</h4></section></summary><div class="docblock"><p>Read a u32.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_i32" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#356-359">source</a><h4 class="code-header">fn <a href="#method.read_i32" class="fn">read_i32</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i32.html">i32</a>&gt;</h4></section></summary><div class="docblock"><p>Read an i32.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_u64" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#363-366">source</a><h4 class="code-header">fn <a href="#method.read_u64" class="fn">read_u64</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a>&gt;</h4></section></summary><div class="docblock"><p>Read a u64.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_i64" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#370-373">source</a><h4 class="code-header">fn <a href="#method.read_i64" class="fn">read_i64</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i64.html">i64</a>&gt;</h4></section></summary><div class="docblock"><p>Read an i64.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_f32" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#377-380">source</a><h4 class="code-header">fn <a href="#method.read_f32" class="fn">read_f32</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.f32.html">f32</a>&gt;</h4></section></summary><div class="docblock"><p>Read a f32.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_f64" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#384-387">source</a><h4 class="code-header">fn <a href="#method.read_f64" class="fn">read_f64</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.f64.html">f64</a>&gt;</h4></section></summary><div class="docblock"><p>Read a f64.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_uint" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#395-399">source</a><h4 class="code-header">fn <a href="#method.read_uint" class="fn">read_uint</a>(&amp;mut self, n: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.usize.html">usize</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a>&gt;</h4></section></summary><div class="docblock"><p>Read an unsigned n-bytes integer u64.</p>
<h5 id="panics"><a href="#panics">Panics</a></h5>
<p>Panics when nbytes &lt; 1 or nbytes &gt; 8</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_null_terminated_slice" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#402-407">source</a><h4 class="code-header">fn <a href="#method.read_null_terminated_slice" class="fn">read_null_terminated_slice</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;Self&gt;</h4></section></summary><div class="docblock"><p>Read a null-terminated slice, and return it (excluding the null).</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.skip_leb128" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#410-412">source</a><h4 class="code-header">fn <a href="#method.skip_leb128" class="fn">skip_leb128</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.unit.html">()</a>&gt;</h4></section></summary><div class="docblock"><p>Skip a LEB128 encoded integer.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_uleb128" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#415-417">source</a><h4 class="code-header">fn <a href="#method.read_uleb128" class="fn">read_uleb128</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a>&gt;</h4></section></summary><div class="docblock"><p>Read an unsigned LEB128 encoded integer.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_uleb128_u32" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#420-424">source</a><h4 class="code-header">fn <a href="#method.read_uleb128_u32" class="fn">read_uleb128_u32</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u32.html">u32</a>&gt;</h4></section></summary><div class="docblock"><p>Read an unsigned LEB128 encoded u32.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_uleb128_u16" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#427-429">source</a><h4 class="code-header">fn <a href="#method.read_uleb128_u16" class="fn">read_uleb128_u16</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u16.html">u16</a>&gt;</h4></section></summary><div class="docblock"><p>Read an unsigned LEB128 encoded u16.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_sleb128" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#432-434">source</a><h4 class="code-header">fn <a href="#method.read_sleb128" class="fn">read_sleb128</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.i64.html">i64</a>&gt;</h4></section></summary><div class="docblock"><p>Read a signed LEB128 encoded integer.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_initial_length" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#440-453">source</a><h4 class="code-header">fn <a href="#method.read_initial_length" class="fn">read_initial_length</a>(&amp;mut self) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;(Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>, <a class="enum" href="../enum.Format.html" title="enum gimli::Format">Format</a>)&gt;</h4></section></summary><div class="docblock"><p>Read an initial length field.</p>
<p>This field is encoded as either a 32-bit length or
a 64-bit length, and the returned <code>Format</code> indicates which.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_address" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#456-464">source</a><h4 class="code-header">fn <a href="#method.read_address" class="fn">read_address</a>(&amp;mut self, address_size: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u8.html">u8</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u64.html">u64</a>&gt;</h4></section></summary><div class="docblock"><p>Read an address-sized integer, and return it as a <code>u64</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_word" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#470-475">source</a><h4 class="code-header">fn <a href="#method.read_word" class="fn">read_word</a>(&amp;mut self, format: <a class="enum" href="../enum.Format.html" title="enum gimli::Format">Format</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>&gt;</h4></section></summary><div class="docblock"><p>Parse a word-sized integer according to the DWARF format.</p>
<p>These are always used to encode section offsets or lengths,
and so have a type of <code>Self::Offset</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_length" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#479-481">source</a><h4 class="code-header">fn <a href="#method.read_length" class="fn">read_length</a>(&amp;mut self, format: <a class="enum" href="../enum.Format.html" title="enum gimli::Format">Format</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>&gt;</h4></section></summary><div class="docblock"><p>Parse a word-sized section length according to the DWARF format.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_offset" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#485-487">source</a><h4 class="code-header">fn <a href="#method.read_offset" class="fn">read_offset</a>(&amp;mut self, format: <a class="enum" href="../enum.Format.html" title="enum gimli::Format">Format</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>&gt;</h4></section></summary><div class="docblock"><p>Parse a word-sized section offset according to the DWARF format.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_sized_offset" class="method"><a class="src rightside" href="../../src/gimli/read/reader.rs.html#492-501">source</a><h4 class="code-header">fn <a href="#method.read_sized_offset" class="fn">read_sized_offset</a>(&amp;mut self, size: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.u8.html">u8</a>) -&gt; <a class="type" href="type.Result.html" title="type gimli::read::Result">Result</a>&lt;Self::<a class="associatedtype" href="trait.Reader.html#associatedtype.Offset" title="type gimli::read::Reader::Offset">Offset</a>&gt;</h4></section></summary><div class="docblock"><p>Parse a section offset of the given size.</p>
<p>This is used for <code>DW_FORM_ref_addr</code> values in DWARF version 2.</p>
</div></details></div><h2 id="object-safety" class="section-header">Object Safety<a href="#object-safety" class="anchor">§</a></h2><div class="object-safety-info">This trait is <b>not</b> <a href="https://doc.rust-lang.org/1.76.0/reference/items/traits.html#object-safety">object safe</a>.</div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section id="impl-Reader-for-EndianSlice%3C'input,+Endian%3E" class="impl"><a class="src rightside" href="../../src/gimli/read/endian_slice.rs.html#219-332">source</a><a href="#impl-Reader-for-EndianSlice%3C'input,+Endian%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'input, Endian&gt; <a class="trait" href="trait.Reader.html" title="trait gimli::read::Reader">Reader</a> for <a class="struct" href="struct.EndianSlice.html" title="struct gimli::read::EndianSlice">EndianSlice</a>&lt;'input, Endian&gt;<div class="where">where
Endian: <a class="trait" href="../trait.Endianity.html" title="trait gimli::Endianity">Endianity</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Endian-1" class="associatedtype trait-impl"><a href="#associatedtype.Endian-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Endian" class="associatedtype">Endian</a> = Endian</h4></section><section id="associatedtype.Offset-1" class="associatedtype trait-impl"><a href="#associatedtype.Offset-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Offset" class="associatedtype">Offset</a> = <a class="primitive" href="https://doc.rust-lang.org/1.76.0/core/primitive.usize.html">usize</a></h4></section></div></details></div><script src="../../trait.impl/gimli/read/reader/trait.Reader.js" async></script></section></div></main></body></html>