Trait Diff

Source
pub trait Diff: Copy {
    type Memo: 'static;

    // Required methods
    fn into_memo(self) -> Self::Memo;
    fn diff(self, memo: &mut Self::Memo) -> bool;
}
Expand description

Trait that defines how different values can be diffed at runtime.

Required Associated Types§

Source

type Memo: 'static

Data used to check if current value is different from the one in the past.

Required Methods§

Source

fn into_memo(self) -> Self::Memo

Generate a new Memo for this type.

Source

fn diff(self, memo: &mut Self::Memo) -> bool

Diff current value against the Memo, update it if necessary and return true if it has changed.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Diff for &str

Source§

type Memo = String

Source§

fn into_memo(self) -> String

Source§

fn diff(self, memo: &mut String) -> bool

Source§

impl Diff for &String

Source§

type Memo = String

Source§

fn into_memo(self) -> String

Source§

fn diff(self, memo: &mut String) -> bool

Source§

impl Diff for bool

Source§

type Memo = bool

Source§

fn into_memo(self) -> bool

Source§

fn diff(self, memo: &mut bool) -> bool

Source§

impl Diff for f32

Source§

type Memo = f32

Source§

fn into_memo(self) -> f32

Source§

fn diff(self, memo: &mut f32) -> bool

Source§

impl Diff for f64

Source§

type Memo = f64

Source§

fn into_memo(self) -> f64

Source§

fn diff(self, memo: &mut f64) -> bool

Source§

impl Diff for i8

Source§

type Memo = i8

Source§

fn into_memo(self) -> i8

Source§

fn diff(self, memo: &mut i8) -> bool

Source§

impl Diff for i16

Source§

type Memo = i16

Source§

fn into_memo(self) -> i16

Source§

fn diff(self, memo: &mut i16) -> bool

Source§

impl Diff for i32

Source§

type Memo = i32

Source§

fn into_memo(self) -> i32

Source§

fn diff(self, memo: &mut i32) -> bool

Source§

impl Diff for i64

Source§

type Memo = i64

Source§

fn into_memo(self) -> i64

Source§

fn diff(self, memo: &mut i64) -> bool

Source§

impl Diff for i128

Source§

type Memo = i128

Source§

fn into_memo(self) -> i128

Source§

fn diff(self, memo: &mut i128) -> bool

Source§

impl Diff for isize

Source§

type Memo = isize

Source§

fn into_memo(self) -> isize

Source§

fn diff(self, memo: &mut isize) -> bool

Source§

impl Diff for u8

Source§

type Memo = u8

Source§

fn into_memo(self) -> u8

Source§

fn diff(self, memo: &mut u8) -> bool

Source§

impl Diff for u16

Source§

type Memo = u16

Source§

fn into_memo(self) -> u16

Source§

fn diff(self, memo: &mut u16) -> bool

Source§

impl Diff for u32

Source§

type Memo = u32

Source§

fn into_memo(self) -> u32

Source§

fn diff(self, memo: &mut u32) -> bool

Source§

impl Diff for u64

Source§

type Memo = u64

Source§

fn into_memo(self) -> u64

Source§

fn diff(self, memo: &mut u64) -> bool

Source§

impl Diff for u128

Source§

type Memo = u128

Source§

fn into_memo(self) -> u128

Source§

fn diff(self, memo: &mut u128) -> bool

Source§

impl Diff for usize

Source§

type Memo = usize

Source§

fn into_memo(self) -> usize

Source§

fn diff(self, memo: &mut usize) -> bool

Implementors§

Source§

impl Diff for &VString

Source§

impl<T> Diff for Eager<T>
where T: Copy,

Source§

impl<T> Diff for Static<T>
where T: Copy,

Source§

impl<T: ?Sized> Diff for &Ref<T>