pub struct AddRef<F>(/* private fields */);Expand description
Adapter to serialize values of type T with an adapter F that expects &T
§Example
use serde::Serialize;
use serde_json::json;
struct StrNumber(String);
impl TryFrom<&StrNumber> for i32 {
type Error = std::num::ParseIntError;
fn try_from(value: &StrNumber) -> Result<Self, Self::Error> {
value.0.parse()
}
}
#[derive(Serialize)]
struct Foo {
#[serde(with = "serdapt::AddRef::<serdapt::TryInto<i32>>")]
n: StrNumber,
}
let v = serde_json::to_value(Foo {
n: StrNumber("33".into()),
})
.unwrap();
assert_eq!(v, json!({ "n": 33 }));Implementations§
Trait Implementations§
Source§impl<F, T> SerializeWith<T> for AddRef<F>
impl<F, T> SerializeWith<T> for AddRef<F>
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<F> Freeze for AddRef<F>
impl<F> RefUnwindSafe for AddRef<F>where
F: RefUnwindSafe,
impl<F> Send for AddRef<F>where
F: Send,
impl<F> Sync for AddRef<F>where
F: Sync,
impl<F> Unpin for AddRef<F>where
F: Unpin,
impl<F> UnwindSafe for AddRef<F>where
F: UnwindSafe,
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