Deserializable

Trait Deserializable 

Source
pub trait Deserializable:
    Sized
    + From<Option<Self>>
    + From<bool>
    + From<Binary>
    + From<f32>
    + From<f64>
    + From<u8>
    + From<u16>
    + From<u32>
    + From<u64>
    + From<i8>
    + From<i16>
    + From<i32>
    + From<i64>
    + From<String>
    + From<Vec<Self>>
    + From<BTreeMap<String, Self>>
    + From<Extension>
    + From<DateTime<Utc>> {
    // Provided methods
    fn deserialize<R: Read>(
        buf_reader: &mut R,
    ) -> Result<Self, DeserializeError> { ... }
    fn deserialize_binary<R: Read>(
        size: usize,
        buf_reader: &mut R,
    ) -> Result<Self, DeserializeError> { ... }
    fn deserialize_string<R: Read>(
        size: usize,
        buf_reader: &mut R,
    ) -> Result<Self, DeserializeError> { ... }
    fn deserialize_array<R: Read>(
        size: usize,
        buf_reader: &mut R,
    ) -> Result<Self, DeserializeError> { ... }
    fn deserialize_map<R: Read>(
        size: usize,
        buf_reader: &mut R,
    ) -> Result<Self, DeserializeError> { ... }
    fn deserialize_extension<R: Read>(
        size: usize,
        buf_reader: &mut R,
    ) -> Result<Self, DeserializeError> { ... }
    fn deserialize_extension_for_the_you_type_defined<R: Read>(
        t: i8,
        size: usize,
        buf_reader: &mut R,
    ) -> Result<Self, DeserializeError> { ... }
    fn deserialize_extension_others<R: Read>(
        t: i8,
        size: usize,
        buf_reader: &mut R,
    ) -> Result<Self, DeserializeError> { ... }
}

Provided Methods§

Source

fn deserialize<R: Read>(buf_reader: &mut R) -> Result<Self, DeserializeError>

Examples found in repository?
examples/extension1.rs (line 29)
21fn main() {
22    let rgba = Rgba { r: 5, g: 10, b: 15, a: 20 };
23    let value = Value::from(rgba);
24    println!("{:?}", value);
25
26    let serialized_value = value.serialize().unwrap();
27    println!("{:?}", serialized_value);
28
29    let deserialized_value = Value::deserialize(&mut BufReader::new(Cursor::new(serialized_value))).unwrap();
30    println!("{:?}", deserialized_value);
31}
More examples
Hide additional examples
examples/extension2.rs (line 107)
99fn main() {
100    let rgba = Rgba { r: 5, g: 10, b: 15, a: 20 };
101    let value = MyValue::from(rgba);
102    println!("{:?}", value);
103
104    let serialized_value = value.serialize().unwrap();
105    println!("{:?}", serialized_value);
106
107    let deserialized_value = MyValue::deserialize(&mut BufReader::new(Cursor::new(serialized_value))).unwrap();
108    println!("{:?}", deserialized_value);
109}
examples/basic.rs (line 12)
7fn main() {
8    let value = Value::from(vec![Value::from(Utc::now()), Value::from(123u8), Value::from("test"), Value::from(true), Value::Nil, Value::from(None::<u8>)]);
9    println!("{:?}", value);
10    let serialized_value = value.serialize().unwrap();
11    println!("{:?}", serialized_value);
12    let deserialized_value = Value::deserialize(&mut BufReader::new(Cursor::new(serialized_value))).unwrap();
13    println!("{:?}", deserialized_value);
14}
Source

fn deserialize_binary<R: Read>( size: usize, buf_reader: &mut R, ) -> Result<Self, DeserializeError>

Source

fn deserialize_string<R: Read>( size: usize, buf_reader: &mut R, ) -> Result<Self, DeserializeError>

Source

fn deserialize_array<R: Read>( size: usize, buf_reader: &mut R, ) -> Result<Self, DeserializeError>

Source

fn deserialize_map<R: Read>( size: usize, buf_reader: &mut R, ) -> Result<Self, DeserializeError>

Source

fn deserialize_extension<R: Read>( size: usize, buf_reader: &mut R, ) -> Result<Self, DeserializeError>

Source

fn deserialize_extension_for_the_you_type_defined<R: Read>( t: i8, size: usize, buf_reader: &mut R, ) -> Result<Self, DeserializeError>

Source

fn deserialize_extension_others<R: Read>( t: i8, size: usize, buf_reader: &mut R, ) -> Result<Self, DeserializeError>

Examples found in repository?
examples/extension2.rs (line 94)
85    fn deserialize_extension_for_the_you_type_defined<R: Read>(t: i8, size: usize, buf_reader: &mut R) -> Result<Self, DeserializeError> {
86        if t == 0 {
87            Ok(From::from(Rgba {
88                r: buf_reader.read_u8().or(Err(DeserializeError::InvalidValue))?,
89                g: buf_reader.read_u8().or(Err(DeserializeError::InvalidValue))?,
90                b: buf_reader.read_u8().or(Err(DeserializeError::InvalidValue))?,
91                a: buf_reader.read_u8().or(Err(DeserializeError::InvalidValue))?,
92            }))
93        } else {
94            Self::deserialize_extension_others(t, size, buf_reader)
95        }
96    }

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.

Implementors§