pub struct Id;Expand description
Identity adapter
This adapter causes a type to be serialized with its own implementations of Serialize and
Deserialize.
§Example
use serdapt as sa;
use serde::{Deserialize, Serialize};
use serde_json::json;
use std::collections::BTreeMap;
#[derive(Debug, Deserialize, PartialEq, Serialize)]
struct Foo(#[serde(with = "sa::Map::<sa::Str, sa::Id>")] BTreeMap<i32, i32>);
let foo = Foo(BTreeMap::from_iter([(33, 0), (34, 1)]));
let serialized = serde_json::to_value(&foo).unwrap();
assert_eq!(serialized, json!({ "33": 0, "34": 1 }));
let deserialized = serde_json::from_value::<Foo>(serialized).unwrap();
assert_eq!(deserialized, foo);Implementations§
Source§impl Id
impl Id
Sourcepub fn serialize<T, S>(value: &T, serializer: S) -> Result<S::Ok, S::Error>
pub fn serialize<T, S>(value: &T, serializer: S) -> Result<S::Ok, S::Error>
Serializes value with adapter
Sourcepub fn deserialize<'de, T, D>(deserializer: D) -> Result<T, D::Error>where
D: Deserializer<'de>,
Self: DeserializeWith<'de, T>,
pub fn deserialize<'de, T, D>(deserializer: D) -> Result<T, D::Error>where
D: Deserializer<'de>,
Self: DeserializeWith<'de, T>,
Deserializes value with adapter
Trait Implementations§
Source§impl<'de, T> DeserializeWith<'de, T> for Idwhere
T: Deserialize<'de>,
impl<'de, T> DeserializeWith<'de, T> for Idwhere
T: Deserialize<'de>,
Source§fn deserialize_with<D>(deserializer: D) -> Result<T, D::Error>where
D: Deserializer<'de>,
fn deserialize_with<D>(deserializer: D) -> Result<T, D::Error>where
D: Deserializer<'de>,
Deserializes a value using
deserializerSource§impl<T> SerializeWith<T> for Id
impl<T> SerializeWith<T> for Id
Source§fn serialize_with<S: Serializer>(
value: &T,
serializer: S,
) -> Result<S::Ok, S::Error>
fn serialize_with<S: Serializer>( value: &T, serializer: S, ) -> Result<S::Ok, S::Error>
Serializes
value using serializerAuto Trait Implementations§
impl Freeze for Id
impl RefUnwindSafe for Id
impl Send for Id
impl Sync for Id
impl Unpin for Id
impl UnwindSafe for Id
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more