[−][src]Function abi_stable::std_types::cow::deserialize_borrowed_bytes
pub fn deserialize_borrowed_bytes<'de, 'a, D>(
deserializer: D
) -> Result<RCow<'a, [u8]>, D::Error> where
D: Deserializer<'de>,
'de: 'a,
Deserializes an RCow<'a,[u8]>
that borrows the slice from the deserializer
whenever possible.
Example
Defining a type containing an RCow<'a,[u8]>
which borrows from the deserializer.
use abi_stable::std_types::cow::{ deserialize_borrowed_bytes, RCow, }; use serde::{Deserialize,Serialize}; #[derive(Debug,Deserialize,Serialize,PartialEq)] pub struct TheSlice<'a>{ #[serde(borrow,deserialize_with="deserialize_borrowed_bytes")] slice:RCow<'a,[u8]>, } let the_slice=TheSlice{ slice:RCow::from(vec![0,1,2,3,4,5]) }; let vec=bincode::serialize(&the_slice).unwrap(); let deserialized_slice=bincode::deserialize(&vec).unwrap(); assert_eq!(the_slice,deserialized_slice); assert!( deserialized_slice.slice.is_borrowed() );