Function abi_stable::std_types::cow::deserialize_borrowed_str [−][src]
pub fn deserialize_borrowed_str<'de, 'a, D>(
deserializer: D
) -> Result<RCow<'a, str>, D::Error> where
D: Deserializer<'de>,
'de: 'a,
Expand description
Deserializes an RCow<'a,str>
that borrows the string from the deserializer
whenever possible.
Example
Defining a type containing an RCow<'a,str>
which borrows from the deserializer.
use abi_stable::std_types::cow::{
deserialize_borrowed_str,
RCow,
};
use serde::{Deserialize,Serialize};
#[derive(Debug,Deserialize,Serialize,PartialEq)]
pub struct TheSlice<'a>{
#[serde(borrow,deserialize_with="deserialize_borrowed_str")]
slice:RCow<'a,str>,
}
let the_slice=TheSlice{ slice:RCow::from("That's a lot of fish.") };
let string=serde_json::to_string(&the_slice).unwrap();
let deserialized_slice=serde_json::from_str::<TheSlice<'_>>(&string).unwrap();
assert_eq!(the_slice,deserialized_slice);
assert!( deserialized_slice.slice.is_borrowed() );