]>
Commit | Line | Data |
---|---|---|
5869c6ff XL |
1 | byteorder |
2 | ========= | |
e1599b0c XL |
3 | This crate provides convenience methods for encoding and decoding |
4 | numbers in either big-endian or little-endian order. | |
ff7c6d11 | 5 | |
5869c6ff | 6 | [![Build status](https://github.com/BurntSushi/byteorder/workflows/ci/badge.svg)](https://github.com/BurntSushi/byteorder/actions) |
6a06907d | 7 | [![](https://meritbadge.herokuapp.com/byteorder)](https://crates.io/crates/byteorder) |
ff7c6d11 | 8 | |
6a06907d | 9 | Dual-licensed under MIT or the [UNLICENSE](https://unlicense.org/). |
ff7c6d11 XL |
10 | |
11 | ||
12 | ### Documentation | |
13 | ||
14 | https://docs.rs/byteorder | |
15 | ||
16 | ||
17 | ### Installation | |
18 | ||
19 | This crate works with Cargo and is on | |
20 | [crates.io](https://crates.io/crates/byteorder). Add it to your `Cargo.toml` | |
21 | like so: | |
22 | ||
23 | ```toml | |
24 | [dependencies] | |
25 | byteorder = "1" | |
26 | ``` | |
27 | ||
28 | If you want to augment existing `Read` and `Write` traits, then import the | |
29 | extension methods like so: | |
30 | ||
31 | ```rust | |
ff7c6d11 XL |
32 | use byteorder::{ReadBytesExt, WriteBytesExt, BigEndian, LittleEndian}; |
33 | ``` | |
34 | ||
35 | For example: | |
36 | ||
37 | ```rust | |
38 | use std::io::Cursor; | |
39 | use byteorder::{BigEndian, ReadBytesExt}; | |
40 | ||
41 | let mut rdr = Cursor::new(vec![2, 5, 3, 0]); | |
42 | // Note that we use type parameters to indicate which kind of byte order | |
43 | // we want! | |
44 | assert_eq!(517, rdr.read_u16::<BigEndian>().unwrap()); | |
45 | assert_eq!(768, rdr.read_u16::<BigEndian>().unwrap()); | |
46 | ``` | |
47 | ||
48 | ### `no_std` crates | |
49 | ||
50 | This crate has a feature, `std`, that is enabled by default. To use this crate | |
51 | in a `no_std` context, add the following to your `Cargo.toml`: | |
52 | ||
53 | ```toml | |
54 | [dependencies] | |
55 | byteorder = { version = "1", default-features = false } | |
56 | ``` | |
e1599b0c XL |
57 | |
58 | ||
59 | ### Alternatives | |
60 | ||
61 | Note that as of Rust 1.32, the standard numeric types provide built-in methods | |
62 | like `to_le_bytes` and `from_le_bytes`, which support some of the same use | |
63 | cases. |