serde_intermediate::reflect

Trait ReflectIntermediate

Source
pub trait ReflectIntermediate {
    // Provided methods
    fn patch_change(&mut self, _change: &Change) { ... }
    fn before_patch_change(&mut self) { ... }
    fn after_patch_change(&mut self) { ... }
}
Expand description

Trait used to enable patching changes directly into data. Prefer to implement using ReflectIntermediate derive macro.

§Example

use serde::{Serialize, Deserialize};
use serde_intermediate::{Change, ReflectIntermediate};

#[derive(Debug, PartialEq, Serialize, Deserialize, ReflectIntermediate)]
struct Foo(bool);

let mut a = Foo(false);
let b = Foo(true);
let change = Change::data_difference(&a, &b, &Default::default()).unwrap();
a.patch_change(&change);
assert_eq!(a, b);

Provided Methods§

Source

fn patch_change(&mut self, _change: &Change)

Source

fn before_patch_change(&mut self)

Source

fn after_patch_change(&mut self)

Implementations on Foreign Types§

Source§

impl ReflectIntermediate for bool

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for char

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for f32

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for f64

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for i8

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for i16

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for i32

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for i64

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for i128

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for isize

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for u8

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for u16

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for u32

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for u64

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for u128

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for ()

Source§

impl ReflectIntermediate for usize

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for String

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for AtomicBool

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for AtomicI8

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for AtomicI16

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for AtomicI32

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for AtomicI64

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for AtomicIsize

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for AtomicU8

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for AtomicU16

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for AtomicU32

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for AtomicU64

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for AtomicUsize

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for PathBuf

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for NonZeroI8

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for NonZeroI16

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for NonZeroI32

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for NonZeroI64

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for NonZeroI128

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for NonZeroIsize

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for NonZeroU8

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for NonZeroU16

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for NonZeroU32

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for NonZeroU64

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for NonZeroU128

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl ReflectIntermediate for NonZeroUsize

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B> ReflectIntermediate for (A, B)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C> ReflectIntermediate for (A, B, C)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D> ReflectIntermediate for (A, B, C, D)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E> ReflectIntermediate for (A, B, C, D, E)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F> ReflectIntermediate for (A, B, C, D, E, F)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G> ReflectIntermediate for (A, B, C, D, E, F, G)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H> ReflectIntermediate for (A, B, C, D, E, F, G, H)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H, I> ReflectIntermediate for (A, B, C, D, E, F, G, H, I)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H, I, J> ReflectIntermediate for (A, B, C, D, E, F, G, H, I, J)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K> ReflectIntermediate for (A, B, C, D, E, F, G, H, I, J, K)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L> ReflectIntermediate for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M> ReflectIntermediate for (A, B, C, D, E, F, G, H, I, J, K, L, M)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N> ReflectIntermediate for (A, B, C, D, E, F, G, H, I, J, K, L, M, N)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> ReflectIntermediate for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> ReflectIntermediate for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q> ReflectIntermediate for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R> ReflectIntermediate for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S> ReflectIntermediate for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T> ReflectIntermediate for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ReflectIntermediate for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V> ReflectIntermediate for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, X> ReflectIntermediate for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, X)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, X, Y> ReflectIntermediate for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, X, Y)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, X, Y, Z> ReflectIntermediate for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, X, Y, Z)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<K, V> ReflectIntermediate for BTreeMap<K, V>

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<K, V> ReflectIntermediate for HashMap<K, V>

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<T> ReflectIntermediate for Option<T>

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<T> ReflectIntermediate for (T,)

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<T> ReflectIntermediate for Box<T>

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<T> ReflectIntermediate for BinaryHeap<T>

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<T> ReflectIntermediate for BTreeSet<T>

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<T> ReflectIntermediate for LinkedList<T>

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<T> ReflectIntermediate for VecDeque<T>

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<T> ReflectIntermediate for Vec<T>

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<T> ReflectIntermediate for Cell<T>

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<T> ReflectIntermediate for PhantomData<T>

Source§

impl<T> ReflectIntermediate for Range<T>

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<T> ReflectIntermediate for RangeInclusive<T>

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<T> ReflectIntermediate for HashSet<T>

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<T> ReflectIntermediate for Mutex<T>

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<T, E> ReflectIntermediate for Result<T, E>

Source§

fn patch_change(&mut self, change: &Change)

Source§

impl<T, const N: usize> ReflectIntermediate for [T; N]

Source§

fn patch_change(&mut self, change: &Change)

Implementors§