pub trait BinaryFlavor: Encoding {
    // Required methods
    fn visit_f32(&self, data: [u8; 4]) -> f32;
    fn visit_f64(&self, data: [u8; 8]) -> f64;

    // Provided methods
    fn deserializer(&self) -> BinaryDeserializerBuilder<&Self>
       where Self: Sized { ... }
    fn deserialize_slice<'de, 'res: 'de, T, RES>(
        &self,
        data: &'de [u8],
        resolver: &'res RES
    ) -> Result<T, Error>
       where T: Deserialize<'de>,
             RES: TokenResolver,
             Self: Sized { ... }
    fn deserialize_reader<T, RES, R>(
        &self,
        reader: R,
        resolver: &RES
    ) -> Result<T, Error>
       where T: DeserializeOwned,
             RES: TokenResolver,
             R: Read,
             Self: Sized { ... }
}
Expand description

Trait customizing decoding values from binary data

How binary data is encoded differs between games and even between patches!

Required Methods§

source

fn visit_f32(&self, data: [u8; 4]) -> f32

Decode a f32 from 4 bytes of data

source

fn visit_f64(&self, data: [u8; 8]) -> f64

Decode a f64 from 8 bytes of data

Provided Methods§

source

fn deserializer(&self) -> BinaryDeserializerBuilder<&Self>
where Self: Sized,

Create binary deserializer from this binary flavor

source

fn deserialize_slice<'de, 'res: 'de, T, RES>( &self, data: &'de [u8], resolver: &'res RES ) -> Result<T, Error>
where T: Deserialize<'de>, RES: TokenResolver, Self: Sized,

Deserialize value from slice of data with this binary flavor

source

fn deserialize_reader<T, RES, R>( &self, reader: R, resolver: &RES ) -> Result<T, Error>
where T: DeserializeOwned, RES: TokenResolver, R: Read, Self: Sized,

Deserialize value from stream of data with this binary flavor

Implementations on Foreign Types§

source§

impl<T: BinaryFlavor + ?Sized> BinaryFlavor for &T

source§

fn visit_f32(&self, data: [u8; 4]) -> f32

source§

fn visit_f64(&self, data: [u8; 8]) -> f64

source§

impl<T: BinaryFlavor + ?Sized> BinaryFlavor for Box<T>

source§

fn visit_f32(&self, data: [u8; 4]) -> f32

source§

fn visit_f64(&self, data: [u8; 8]) -> f64

Implementors§