Struct Apply

Source
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>

Source

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

Source

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>

Source§

type Value = ()

The type produced by using this seed.
Source§

fn deserialize<D>(self, deserializer: D) -> Result<Self::Value, D::Error>
where D: Deserializer<'de>,

Equivalent to the more common Deserialize::deserialize method, except with some initial piece of data (the seed) passed in.
Source§

impl<'a, 'de, T: SerdeDiff> Visitor<'de> for Apply<'a, T>

Source§

type Value = ()

The value produced by this visitor.
Source§

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>,

The input contains a sequence of elements. Read more
Source§

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,

The input contains an i8. Read more
Source§

fn visit_i16<E>(self, v: i16) -> Result<Self::Value, E>
where E: Error,

The input contains an i16. Read more
Source§

fn visit_i32<E>(self, v: i32) -> Result<Self::Value, E>
where E: Error,

The input contains an i32. Read more
Source§

fn visit_i64<E>(self, v: i64) -> Result<Self::Value, E>
where E: Error,

The input contains an i64. Read more
Source§

fn visit_i128<E>(self, v: i128) -> Result<Self::Value, E>
where E: Error,

The input contains a i128. Read more
Source§

fn visit_u8<E>(self, v: u8) -> Result<Self::Value, E>
where E: Error,

The input contains a u8. Read more
Source§

fn visit_u16<E>(self, v: u16) -> Result<Self::Value, E>
where E: Error,

The input contains a u16. Read more
Source§

fn visit_u32<E>(self, v: u32) -> Result<Self::Value, E>
where E: Error,

The input contains a u32. Read more
Source§

fn visit_u64<E>(self, v: u64) -> Result<Self::Value, E>
where E: Error,

The input contains a u64. Read more
Source§

fn visit_u128<E>(self, v: u128) -> Result<Self::Value, E>
where E: Error,

The input contains a u128. Read more
Source§

fn visit_f32<E>(self, v: f32) -> Result<Self::Value, E>
where E: Error,

The input contains an f32. Read more
Source§

fn visit_f64<E>(self, v: f64) -> Result<Self::Value, E>
where E: Error,

The input contains an f64. Read more
Source§

fn visit_char<E>(self, v: char) -> Result<Self::Value, E>
where E: Error,

The input contains a char. Read more
Source§

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,

The input contains a string that lives at least as long as the Deserializer. Read more
Source§

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 more
Source§

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,

The input contains a byte array that lives at least as long as the Deserializer. Read more
Source§

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 more
Source§

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>,

The input contains an optional that is present. Read more
Source§

fn visit_unit<E>(self) -> Result<Self::Value, E>
where E: Error,

The input contains a unit (). Read more
Source§

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>,

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>,

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<'de, T> Expected for T
where T: Visitor<'de>,

Source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result<(), Error>

Format an explanation of what data was being expected. Same signature as the Display and Debug traits.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.