Crate byteorder_lite
source ·Expand description
This crate is a fork of the byteorder
crate which sets
#![forbid(unsafe_code)]
. It includes all traits and most methods from the
original crate, but the ReadBytesExt::read_*_into
family of methods had to be
removed because they currently cannot be implemented without unsafe code.
The organization of the crate is pretty simple. A trait, ByteOrder
, specifies
byte conversion methods for each type of number in Rust (sans numbers that have
a platform dependent size like usize
and isize
). Two types, BigEndian
and LittleEndian
implement these methods. Finally, ReadBytesExt
and
WriteBytesExt
provide convenience methods available to all types that
implement Read
and Write
.
An alias, NetworkEndian
, for BigEndian
is provided to help improve
code clarity.
An additional alias, NativeEndian
, is provided for the endianness of the
local platform. This is convenient when serializing data for use and
conversions are not desired.
§Examples
Read unsigned 16 bit big-endian integers from a Read
type:
use std::io::Cursor;
use byteorder_lite::{BigEndian, ReadBytesExt};
let mut rdr = Cursor::new(vec![2, 5, 3, 0]);
// Note that we use type parameters to indicate which kind of byte order
// we want!
assert_eq!(517, rdr.read_u16::<BigEndian>().unwrap());
assert_eq!(768, rdr.read_u16::<BigEndian>().unwrap());
Write unsigned 16 bit little-endian integers to a Write
type:
use byteorder_lite::{LittleEndian, WriteBytesExt};
let mut wtr = vec![];
wtr.write_u16::<LittleEndian>(517).unwrap();
wtr.write_u16::<LittleEndian>(768).unwrap();
assert_eq!(wtr, vec![5, 2, 0, 3]);
§Optional Features
This crate can also be used without the standard library.
§Alternatives
The standard numeric types provide built-in methods like to_le_bytes
and
from_le_bytes
, which support some of the same use cases.
Enums§
- Defines big-endian serialization.
- Defines little-endian serialization.
Traits§
ByteOrder
describes types that can serialize integers as bytes.- Extends
Read
with methods for reading numbers. (Forstd::io
.) - Extends
Write
with methods for writing numbers. (Forstd::io
.)
Type Aliases§
- A type alias for
BigEndian
. - A type alias for
LittleEndian
. - Defines system native-endian serialization.
- Defines network byte order serialization.