pub trait UnpackFrom: Sized {
// Required method
fn unpack_from<E: ByteOrder, R: Read + ?Sized>(
src: &mut R,
) -> IoResult<Self>;
// Provided methods
fn unpack_from_be<R: Read + ?Sized>(src: &mut R) -> IoResult<Self> { ... }
fn unpack_from_le<R: Read + ?Sized>(src: &mut R) -> IoResult<Self> { ... }
fn unpack_multiple_into<E: ByteOrder, R: Read + ?Sized>(
src: &mut R,
dst: &mut [Self],
) -> IoResult<()> { ... }
}Expand description
Read a value from a Read.
Required Methods§
Sourcefn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>
fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>
Unpack a single value from src.
§Example
use std::io::Cursor;
use byteorder::BigEndian;
use byteorder_pack::UnpackFrom;
let mut cursor = Cursor::new(vec![0x01, 0x02, 0x00, 0x03, 0x00, 0x04]);
let (a, b, cd) = <(u8, u8, [u16; 2])>::unpack_from::<BigEndian, _>(&mut cursor).unwrap();
assert_eq!(a, 1);
assert_eq!(b, 2);
assert_eq!(cd, [3, 4]);Provided Methods§
Sourcefn unpack_from_be<R: Read + ?Sized>(src: &mut R) -> IoResult<Self>
fn unpack_from_be<R: Read + ?Sized>(src: &mut R) -> IoResult<Self>
Unpack binary data contained in src to a tuple, in BigEndian order.
§Example
use std::io::Cursor;
use byteorder_pack::{UnpackFrom};
let mut cursor = Cursor::new(vec![0x01, 0x02, 0x00, 0x03, 0x00, 0x04]);
let (a, b, cd) = <(u8, u8, [u16; 2])>::unpack_from_be(&mut cursor).unwrap();
assert_eq!(a, 1);
assert_eq!(b, 2);
assert_eq!(cd, [3, 4]);Sourcefn unpack_from_le<R: Read + ?Sized>(src: &mut R) -> IoResult<Self>
fn unpack_from_le<R: Read + ?Sized>(src: &mut R) -> IoResult<Self>
Unpack binary data contained in src to a tuple, in LittleEndian order.
§Example
use std::io::Cursor;
use byteorder_pack::UnpackFrom;
let mut cursor = Cursor::new(vec![0x01, 0x02, 0x03, 0x00, 0x04, 0x00]);
let (a, b, cd) = <(u8, u8, [u16; 2])>::unpack_from_le(&mut cursor).unwrap();
assert_eq!(a, 1);
assert_eq!(b, 2);
assert_eq!(cd, [3, 4]);Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.