Function rocket::serde::msgpack::from_slice

source ·
pub fn from_slice<'a, T>(v: &'a [u8]) -> Result<T, Error>
where T: Deserialize<'a>,
Available on crate feature msgpack only.
Expand description

Deserialize an instance of type T from MessagePack encoded bytes.

Deserialization is performed in a zero-copy manner whenever possible.

Always use MsgPack to deserialize MessagePack request data.

§Example

use rocket::serde::{Deserialize, msgpack};

#[derive(Debug, PartialEq, Deserialize)]
#[serde(crate = "rocket::serde")]
struct Data<'r> {
    framework: &'r str,
    stars: usize,
}

let bytes = &[
    130, 169, 102, 114, 97, 109, 101, 119, 111, 114, 107, 166, 82, 111,
    99, 107, 101, 116, 165, 115, 116, 97, 114, 115, 5
];

let data: Data = msgpack::from_slice(bytes).unwrap();
assert_eq!(data, Data { framework: "Rocket", stars: 5, });

§Errors

Deserialization fails if v does not represent a valid MessagePack encoding of any instance of T or if T’s Deserialize implementation fails otherwise.