pub struct Apply<'a, T: SerdeDiff> { /* private fields */ }
Expand description
A deserializable structure that will apply a sequence of diff commands to the target
§Examples
use serde_diff::{SerdeDiff, Diff, Apply};
use serde::{Serialize, Deserialize};
#[derive(SerdeDiff, Serialize, Deserialize, PartialEq)]
struct Test {
a: i32,
}
let diff = Diff::serializable(&Test { a: 3 }, &Test { a: 5 });
let msgpack_data = rmp_serde::to_vec_named(&diff).expect("failed to serialize diff");
let mut deserializer = rmp_serde::Deserializer::new(msgpack_data.as_slice());
let mut target = Test { a: 4 };
Apply::apply(&mut deserializer, &mut target).expect("failed when deserializing diff");
Implementations§
Source§impl<'a, 'de, T: SerdeDiff> Apply<'a, T>
impl<'a, 'de, T: SerdeDiff> Apply<'a, T>
Sourcepub fn deserializable(target: &'a mut T) -> Self
pub fn deserializable(target: &'a mut T) -> Self
Create a deserializable apply, where the given target will be changed when the resulting Apply struct is deserialized
Sourcepub fn apply<D>(
deserializer: D,
target: &mut T,
) -> Result<(), <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
pub fn apply<D>(
deserializer: D,
target: &mut T,
) -> Result<(), <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Applies a sequence of diff commands to the target, as read by the deserializer
Trait Implementations§
Source§impl<'a, 'de, T: SerdeDiff> DeserializeSeed<'de> for Apply<'a, T>
impl<'a, 'de, T: SerdeDiff> DeserializeSeed<'de> for Apply<'a, T>
Source§impl<'a, 'de, T: SerdeDiff> Visitor<'de> for Apply<'a, T>
impl<'a, 'de, T: SerdeDiff> Visitor<'de> for Apply<'a, T>
Source§fn expecting(&self, formatter: &mut Formatter<'_>) -> Result
fn expecting(&self, formatter: &mut Formatter<'_>) -> Result
Format a message stating what data this Visitor expects to receive. Read more
Source§fn visit_seq<A>(
self,
seq: A,
) -> Result<Self::Value, <A as SeqAccess<'de>>::Error>where
A: SeqAccess<'de>,
fn visit_seq<A>(
self,
seq: A,
) -> Result<Self::Value, <A as SeqAccess<'de>>::Error>where
A: SeqAccess<'de>,
The input contains a sequence of elements. Read more
Source§fn visit_bool<E>(self, v: bool) -> Result<Self::Value, E>where
E: Error,
fn visit_bool<E>(self, v: bool) -> Result<Self::Value, E>where
E: Error,
The input contains a boolean. Read more
Source§fn visit_i8<E>(self, v: i8) -> Result<Self::Value, E>where
E: Error,
fn visit_i8<E>(self, v: i8) -> Result<Self::Value, E>where
E: Error,
The input contains an
i8
. Read moreSource§fn visit_i16<E>(self, v: i16) -> Result<Self::Value, E>where
E: Error,
fn visit_i16<E>(self, v: i16) -> Result<Self::Value, E>where
E: Error,
The input contains an
i16
. Read moreSource§fn visit_i32<E>(self, v: i32) -> Result<Self::Value, E>where
E: Error,
fn visit_i32<E>(self, v: i32) -> Result<Self::Value, E>where
E: Error,
The input contains an
i32
. Read moreSource§fn visit_i64<E>(self, v: i64) -> Result<Self::Value, E>where
E: Error,
fn visit_i64<E>(self, v: i64) -> Result<Self::Value, E>where
E: Error,
The input contains an
i64
. Read moreSource§fn visit_i128<E>(self, v: i128) -> Result<Self::Value, E>where
E: Error,
fn visit_i128<E>(self, v: i128) -> Result<Self::Value, E>where
E: Error,
The input contains a
i128
. Read moreSource§fn visit_u8<E>(self, v: u8) -> Result<Self::Value, E>where
E: Error,
fn visit_u8<E>(self, v: u8) -> Result<Self::Value, E>where
E: Error,
The input contains a
u8
. Read moreSource§fn visit_u16<E>(self, v: u16) -> Result<Self::Value, E>where
E: Error,
fn visit_u16<E>(self, v: u16) -> Result<Self::Value, E>where
E: Error,
The input contains a
u16
. Read moreSource§fn visit_u32<E>(self, v: u32) -> Result<Self::Value, E>where
E: Error,
fn visit_u32<E>(self, v: u32) -> Result<Self::Value, E>where
E: Error,
The input contains a
u32
. Read moreSource§fn visit_u64<E>(self, v: u64) -> Result<Self::Value, E>where
E: Error,
fn visit_u64<E>(self, v: u64) -> Result<Self::Value, E>where
E: Error,
The input contains a
u64
. Read moreSource§fn visit_u128<E>(self, v: u128) -> Result<Self::Value, E>where
E: Error,
fn visit_u128<E>(self, v: u128) -> Result<Self::Value, E>where
E: Error,
The input contains a
u128
. Read moreSource§fn visit_f32<E>(self, v: f32) -> Result<Self::Value, E>where
E: Error,
fn visit_f32<E>(self, v: f32) -> Result<Self::Value, E>where
E: Error,
The input contains an
f32
. Read moreSource§fn visit_f64<E>(self, v: f64) -> Result<Self::Value, E>where
E: Error,
fn visit_f64<E>(self, v: f64) -> Result<Self::Value, E>where
E: Error,
The input contains an
f64
. Read moreSource§fn visit_char<E>(self, v: char) -> Result<Self::Value, E>where
E: Error,
fn visit_char<E>(self, v: char) -> Result<Self::Value, E>where
E: Error,
The input contains a
char
. Read moreSource§fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>where
E: Error,
fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>where
E: Error,
The input contains a string. The lifetime of the string is ephemeral and
it may be destroyed after this method returns. Read more
Source§fn visit_borrowed_str<E>(self, v: &'de str) -> Result<Self::Value, E>where
E: Error,
fn visit_borrowed_str<E>(self, v: &'de str) -> Result<Self::Value, E>where
E: Error,
The input contains a string that lives at least as long as the
Deserializer
. Read moreSource§fn visit_string<E>(self, v: String) -> Result<Self::Value, E>where
E: Error,
fn visit_string<E>(self, v: String) -> Result<Self::Value, E>where
E: Error,
The input contains a string and ownership of the string is being given
to the
Visitor
. Read moreSource§fn visit_bytes<E>(self, v: &[u8]) -> Result<Self::Value, E>where
E: Error,
fn visit_bytes<E>(self, v: &[u8]) -> Result<Self::Value, E>where
E: Error,
The input contains a byte array. The lifetime of the byte array is
ephemeral and it may be destroyed after this method returns. Read more
Source§fn visit_borrowed_bytes<E>(self, v: &'de [u8]) -> Result<Self::Value, E>where
E: Error,
fn visit_borrowed_bytes<E>(self, v: &'de [u8]) -> Result<Self::Value, E>where
E: Error,
The input contains a byte array that lives at least as long as the
Deserializer
. Read moreSource§fn visit_byte_buf<E>(self, v: Vec<u8>) -> Result<Self::Value, E>where
E: Error,
fn visit_byte_buf<E>(self, v: Vec<u8>) -> Result<Self::Value, E>where
E: Error,
The input contains a byte array and ownership of the byte array is being
given to the
Visitor
. Read moreSource§fn visit_none<E>(self) -> Result<Self::Value, E>where
E: Error,
fn visit_none<E>(self) -> Result<Self::Value, E>where
E: Error,
The input contains an optional that is absent. Read more
Source§fn visit_some<D>(
self,
deserializer: D,
) -> Result<Self::Value, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn visit_some<D>(
self,
deserializer: D,
) -> Result<Self::Value, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
The input contains an optional that is present. Read more
Source§fn visit_unit<E>(self) -> Result<Self::Value, E>where
E: Error,
fn visit_unit<E>(self) -> Result<Self::Value, E>where
E: Error,
The input contains a unit
()
. Read moreSource§fn visit_newtype_struct<D>(
self,
deserializer: D,
) -> Result<Self::Value, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn visit_newtype_struct<D>(
self,
deserializer: D,
) -> Result<Self::Value, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
The input contains a newtype struct. Read more
Source§fn visit_map<A>(
self,
map: A,
) -> Result<Self::Value, <A as MapAccess<'de>>::Error>where
A: MapAccess<'de>,
fn visit_map<A>(
self,
map: A,
) -> Result<Self::Value, <A as MapAccess<'de>>::Error>where
A: MapAccess<'de>,
The input contains a key-value map. Read more
Source§fn visit_enum<A>(
self,
data: A,
) -> Result<Self::Value, <A as EnumAccess<'de>>::Error>where
A: EnumAccess<'de>,
fn visit_enum<A>(
self,
data: A,
) -> Result<Self::Value, <A as EnumAccess<'de>>::Error>where
A: EnumAccess<'de>,
The input contains an enum. Read more
Auto Trait Implementations§
impl<'a, T> Freeze for Apply<'a, T>
impl<'a, T> RefUnwindSafe for Apply<'a, T>where
T: RefUnwindSafe,
impl<'a, T> Send for Apply<'a, T>where
T: Send,
impl<'a, T> Sync for Apply<'a, T>where
T: Sync,
impl<'a, T> Unpin for Apply<'a, T>
impl<'a, T> !UnwindSafe for Apply<'a, T>
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