Function rmp_serde::decode::from_read_ref [−][src]
pub fn from_read_ref<'a, R, T>(rd: &'a R) -> Result<T, Error> where
R: AsRef<[u8]> + ?Sized,
T: Deserialize<'a>,
Expand description
Deserialize an instance of type T
from a reference I/O reader of MessagePack.
Deserialization will be performed in zero-copy manner whenever it is possible, borrowing the data from the reader itself. For example, strings and byte-arrays won’t be not copied.
Errors
This conversion can fail if the structure of the Value does not match the structure expected
by T
. It can also fail if the structure is correct but T
’s implementation of Deserialize
decides that something is wrong with the data, for example required struct fields are missing.
Examples
// Encoded `["Bobby", 8]`.
let buf = [0x92, 0xa5, 0x42, 0x6f, 0x62, 0x62, 0x79, 0x8];
#[derive(Debug, Deserialize, PartialEq)]
struct Dog<'a> {
name: &'a str,
age: u8,
}
assert_eq!(Dog { name: "Bobby", age: 8 }, rmp_serde::from_read_ref(&buf).unwrap());