UnpackFrom

Trait UnpackFrom 

Source
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§

Source

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§

Source

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]);
Source

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]);
Source

fn unpack_multiple_into<E: ByteOrder, R: Read + ?Sized>( src: &mut R, dst: &mut [Self], ) -> IoResult<()>

Unpack multiple values from src.

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.

Implementations on Foreign Types§

Source§

impl UnpackFrom for f32

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

fn unpack_multiple_into<E: ByteOrder, R: Read + ?Sized>( src: &mut R, dst: &mut [Self], ) -> IoResult<()>

Source§

impl UnpackFrom for f64

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

fn unpack_multiple_into<E: ByteOrder, R: Read + ?Sized>( src: &mut R, dst: &mut [Self], ) -> IoResult<()>

Source§

impl UnpackFrom for i8

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

fn unpack_multiple_into<E: ByteOrder, R: Read + ?Sized>( src: &mut R, dst: &mut [Self], ) -> IoResult<()>

Source§

impl UnpackFrom for i16

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

fn unpack_multiple_into<E: ByteOrder, R: Read + ?Sized>( src: &mut R, dst: &mut [Self], ) -> IoResult<()>

Source§

impl UnpackFrom for i32

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

fn unpack_multiple_into<E: ByteOrder, R: Read + ?Sized>( src: &mut R, dst: &mut [Self], ) -> IoResult<()>

Source§

impl UnpackFrom for i64

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

fn unpack_multiple_into<E: ByteOrder, R: Read + ?Sized>( src: &mut R, dst: &mut [Self], ) -> IoResult<()>

Source§

impl UnpackFrom for i128

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

fn unpack_multiple_into<E: ByteOrder, R: Read + ?Sized>( src: &mut R, dst: &mut [Self], ) -> IoResult<()>

Source§

impl UnpackFrom for u8

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

fn unpack_multiple_into<E: ByteOrder, R: Read + ?Sized>( src: &mut R, dst: &mut [Self], ) -> IoResult<()>

Source§

impl UnpackFrom for u16

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

fn unpack_multiple_into<E: ByteOrder, R: Read + ?Sized>( src: &mut R, dst: &mut [Self], ) -> IoResult<()>

Source§

impl UnpackFrom for u32

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

fn unpack_multiple_into<E: ByteOrder, R: Read + ?Sized>( src: &mut R, dst: &mut [Self], ) -> IoResult<()>

Source§

impl UnpackFrom for u64

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

fn unpack_multiple_into<E: ByteOrder, R: Read + ?Sized>( src: &mut R, dst: &mut [Self], ) -> IoResult<()>

Source§

impl UnpackFrom for u128

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

fn unpack_multiple_into<E: ByteOrder, R: Read + ?Sized>( src: &mut R, dst: &mut [Self], ) -> IoResult<()>

Source§

impl<T1: UnpackFrom> UnpackFrom for (T1,)

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

impl<T1: UnpackFrom, T2: UnpackFrom> UnpackFrom for (T1, T2)

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

impl<T1: UnpackFrom, T2: UnpackFrom, T3: UnpackFrom> UnpackFrom for (T1, T2, T3)

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

impl<T1: UnpackFrom, T2: UnpackFrom, T3: UnpackFrom, T4: UnpackFrom> UnpackFrom for (T1, T2, T3, T4)

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

impl<T1: UnpackFrom, T2: UnpackFrom, T3: UnpackFrom, T4: UnpackFrom, T5: UnpackFrom> UnpackFrom for (T1, T2, T3, T4, T5)

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

impl<T1: UnpackFrom, T2: UnpackFrom, T3: UnpackFrom, T4: UnpackFrom, T5: UnpackFrom, T6: UnpackFrom> UnpackFrom for (T1, T2, T3, T4, T5, T6)

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

impl<T1: UnpackFrom, T2: UnpackFrom, T3: UnpackFrom, T4: UnpackFrom, T5: UnpackFrom, T6: UnpackFrom, T7: UnpackFrom> UnpackFrom for (T1, T2, T3, T4, T5, T6, T7)

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

impl<T1: UnpackFrom, T2: UnpackFrom, T3: UnpackFrom, T4: UnpackFrom, T5: UnpackFrom, T6: UnpackFrom, T7: UnpackFrom, T8: UnpackFrom> UnpackFrom for (T1, T2, T3, T4, T5, T6, T7, T8)

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

impl<T1: UnpackFrom, T2: UnpackFrom, T3: UnpackFrom, T4: UnpackFrom, T5: UnpackFrom, T6: UnpackFrom, T7: UnpackFrom, T8: UnpackFrom, T9: UnpackFrom> UnpackFrom for (T1, T2, T3, T4, T5, T6, T7, T8, T9)

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

impl<T1: UnpackFrom, T2: UnpackFrom, T3: UnpackFrom, T4: UnpackFrom, T5: UnpackFrom, T6: UnpackFrom, T7: UnpackFrom, T8: UnpackFrom, T9: UnpackFrom, T10: UnpackFrom> UnpackFrom for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

impl<T1: UnpackFrom, T2: UnpackFrom, T3: UnpackFrom, T4: UnpackFrom, T5: UnpackFrom, T6: UnpackFrom, T7: UnpackFrom, T8: UnpackFrom, T9: UnpackFrom, T10: UnpackFrom, T11: UnpackFrom> UnpackFrom for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

impl<T1: UnpackFrom, T2: UnpackFrom, T3: UnpackFrom, T4: UnpackFrom, T5: UnpackFrom, T6: UnpackFrom, T7: UnpackFrom, T8: UnpackFrom, T9: UnpackFrom, T10: UnpackFrom, T11: UnpackFrom, T12: UnpackFrom> UnpackFrom for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Source§

impl<T: UnpackFrom + Default + Copy, const N: usize> UnpackFrom for [T; N]

Source§

fn unpack_from<E: ByteOrder, R: Read + ?Sized>(src: &mut R) -> IoResult<Self>

Implementors§