pnmixer-rust/byteorder/index.html

210 lines
11 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="API documentation for the Rust `byteorder` crate.">
<meta name="keywords" content="rust, rustlang, rust-lang, byteorder">
<title>byteorder - Rust</title>
<link rel="stylesheet" type="text/css" href="../normalize.css">
<link rel="stylesheet" type="text/css" href="../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../main.css">
</head>
<body class="rustdoc mod">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
<p class='location'>Crate byteorder</p><div class="block items"><ul><li><a href="#enums">Enums</a></li><li><a href="#traits">Traits</a></li><li><a href="#types">Type Definitions</a></li></ul></div><p class='location'></p><script>window.sidebarCurrent = {name: 'byteorder', ty: 'mod', relpath: '../'};</script>
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content">
<h1 class='fqn'><span class='in-band'>Crate <a class="mod" href=''>byteorder</a></span><span class='out-of-band'><span id='render-detail'>
<a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">
[<span class='inner'>&#x2212;</span>]
</a>
</span><a class='srclink' href='../src/byteorder/lib.rs.html#1-3191' title='goto source code'>[src]</a></span></h1>
<div class='docblock'><p>This crate provides convenience methods for encoding and decoding numbers
in either big-endian or little-endian order.</p>
<p>The organization of the crate is pretty simple. A trait, <code>ByteOrder</code>, specifies
byte conversion methods for each type of number in Rust (sans numbers that have
a platform dependent size like <code>usize</code> and <code>isize</code>). Two types, <code>BigEndian</code>
and <code>LittleEndian</code> implement these methods. Finally, <code>ReadBytesExt</code> and
<code>WriteBytesExt</code> provide convenience methods available to all types that
implement <code>Read</code> and <code>Write</code>.</p>
<h1 id='examples' class='section-header'><a href='#examples'>Examples</a></h1>
<p>Read unsigned 16 bit big-endian integers from a <code>Read</code> type:</p>
<pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>::<span class="ident">Cursor</span>;
<span class="kw">use</span> <span class="ident">byteorder</span>::{<span class="ident">BigEndian</span>, <span class="ident">ReadBytesExt</span>};
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">rdr</span> <span class="op">=</span> <span class="ident">Cursor</span>::<span class="ident">new</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="number">2</span>, <span class="number">5</span>, <span class="number">3</span>, <span class="number">0</span>]);
<span class="comment">// Note that we use type parameters to indicate which kind of byte order</span>
<span class="comment">// we want!</span>
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="number">517</span>, <span class="ident">rdr</span>.<span class="ident">read_u16</span>::<span class="op">&lt;</span><span class="ident">BigEndian</span><span class="op">&gt;</span>().<span class="ident">unwrap</span>());
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="number">768</span>, <span class="ident">rdr</span>.<span class="ident">read_u16</span>::<span class="op">&lt;</span><span class="ident">BigEndian</span><span class="op">&gt;</span>().<span class="ident">unwrap</span>());</pre>
<p>Write unsigned 16 bit little-endian integers to a <code>Write</code> type:</p>
<pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">byteorder</span>::{<span class="ident">LittleEndian</span>, <span class="ident">WriteBytesExt</span>};
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">wtr</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[];
<span class="ident">wtr</span>.<span class="ident">write_u16</span>::<span class="op">&lt;</span><span class="ident">LittleEndian</span><span class="op">&gt;</span>(<span class="number">517</span>).<span class="ident">unwrap</span>();
<span class="ident">wtr</span>.<span class="ident">write_u16</span>::<span class="op">&lt;</span><span class="ident">LittleEndian</span><span class="op">&gt;</span>(<span class="number">768</span>).<span class="ident">unwrap</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">wtr</span>, <span class="macro">vec</span><span class="macro">!</span>[<span class="number">5</span>, <span class="number">2</span>, <span class="number">0</span>, <span class="number">3</span>]);</pre>
</div><h2 id='enums' class='section-header'><a href="#enums">Enums</a></h2>
<table>
<tr class=' module-item'>
<td><a class="enum" href="enum.BigEndian.html"
title='enum byteorder::BigEndian'>BigEndian</a></td>
<td class='docblock-short'>
<p>Defines big-endian serialization.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="enum" href="enum.LittleEndian.html"
title='enum byteorder::LittleEndian'>LittleEndian</a></td>
<td class='docblock-short'>
<p>Defines little-endian serialization.</p>
</td>
</tr></table><h2 id='traits' class='section-header'><a href="#traits">Traits</a></h2>
<table>
<tr class=' module-item'>
<td><a class="trait" href="trait.ByteOrder.html"
title='trait byteorder::ByteOrder'>ByteOrder</a></td>
<td class='docblock-short'>
<p>ByteOrder describes types that can serialize integers as bytes.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="trait" href="trait.ReadBytesExt.html"
title='trait byteorder::ReadBytesExt'>ReadBytesExt</a></td>
<td class='docblock-short'>
<p>Extends <code>Read</code> with methods for reading numbers. (For <code>std::io</code>.)</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="trait" href="trait.WriteBytesExt.html"
title='trait byteorder::WriteBytesExt'>WriteBytesExt</a></td>
<td class='docblock-short'>
<p>Extends <code>Write</code> with methods for writing numbers. (For <code>std::io</code>.)</p>
</td>
</tr></table><h2 id='types' class='section-header'><a href="#types">Type Definitions</a></h2>
<table>
<tr class=' module-item'>
<td><a class="type" href="type.BE.html"
title='type byteorder::BE'>BE</a></td>
<td class='docblock-short'>
<p>A type alias for <code>BigEndian</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="type" href="type.LE.html"
title='type byteorder::LE'>LE</a></td>
<td class='docblock-short'>
<p>A type alias for <code>LittleEndian</code>.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="type" href="type.NativeEndian.html"
title='type byteorder::NativeEndian'>NativeEndian</a></td>
<td class='docblock-short'>
<p>Defines system native-endian serialization.</p>
</td>
</tr>
<tr class=' module-item'>
<td><a class="type" href="type.NetworkEndian.html"
title='type byteorder::NetworkEndian'>NetworkEndian</a></td>
<td class='docblock-short'>
<p>Defines network byte order serialization.</p>
</td>
</tr></table></section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt>&larrb;</dt>
<dd>Move up in search results</dd>
<dt>&rarrb;</dt>
<dd>Move down in search results</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt>+</dt>
<dd>Collapse/expand all sections</dd>
</dl>
</div>
<div class="infos">
<h2>Search Tricks</h2>
<p>
Prefix searches with a type followed by a colon (e.g.
<code>fn:</code>) to restrict the search to a given type.
</p>
<p>
Accepted types are: <code>fn</code>, <code>mod</code>,
<code>struct</code>, <code>enum</code>,
<code>trait</code>, <code>type</code>, <code>macro</code>,
and <code>const</code>.
</p>
<p>
Search functions by type signature (e.g.
<code>vec -> usize</code> or <code>* -> vec</code>)
</p>
</div>
</div>
</aside>
<script>
window.rootPath = "../";
window.currentCrate = "byteorder";
</script>
<script src="../main.js"></script>
<script defer src="../search-index.js"></script>
</body>
</html>