pub trait Diffable {
type Diff<'daft>
where Self: 'daft;
// Required method
fn diff<'daft>(&'daft self, other: &'daft Self) -> Self::Diff<'daft>;
}Expand description
Represents a type which can be diffed.
For more information, see the crate-level documentation.
Required Associated Types§
Sourcetype Diff<'daft>
where
Self: 'daft
type Diff<'daft> where Self: 'daft
The type of the diff.
This is a generic associated type, also known as a GAT. The
'daft lifetime is used in the diff method to ensure that the
returned diff is valid for the lifetime of the input values.
Required Methods§
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 Diffable for SocketAddr
impl Diffable for SocketAddr
Source§impl Diffable for SocketAddrV4
impl Diffable for SocketAddrV4
Source§impl Diffable for SocketAddrV6
impl Diffable for SocketAddrV6
Source§impl Diffable for NonZeroI16
impl Diffable for NonZeroI16
Source§impl Diffable for NonZeroI32
impl Diffable for NonZeroI32
Source§impl Diffable for NonZeroI64
impl Diffable for NonZeroI64
Source§impl Diffable for NonZeroI128
impl Diffable for NonZeroI128
Source§impl Diffable for NonZeroIsize
impl Diffable for NonZeroIsize
Source§impl Diffable for NonZeroU16
impl Diffable for NonZeroU16
Source§impl Diffable for NonZeroU32
impl Diffable for NonZeroU32
Source§impl Diffable for NonZeroU64
impl Diffable for NonZeroU64
Source§impl Diffable for NonZeroU128
impl Diffable for NonZeroU128
Source§impl Diffable for NonZeroUsize
impl Diffable for NonZeroUsize
Source§impl<A: Diffable, B: Diffable, C: Diffable, D: Diffable, E: Diffable> Diffable for (A, B, C, D, E)
impl<A: Diffable, B: Diffable, C: Diffable, D: Diffable, E: Diffable> Diffable for (A, B, C, D, E)
type Diff<'daft> = (<A as Diffable>::Diff<'daft>, <B as Diffable>::Diff<'daft>, <C as Diffable>::Diff<'daft>, <D as Diffable>::Diff<'daft>, <E as Diffable>::Diff<'daft>) where A: 'daft, B: 'daft, C: 'daft, D: 'daft, E: 'daft
fn diff<'daft>(&'daft self, other: &'daft Self) -> Self::Diff<'daft>
Source§impl<A: Diffable, B: Diffable, C: Diffable, D: Diffable, E: Diffable, F: Diffable> Diffable for (A, B, C, D, E, F)
impl<A: Diffable, B: Diffable, C: Diffable, D: Diffable, E: Diffable, F: Diffable> Diffable for (A, B, C, D, E, F)
type Diff<'daft> = (<A as Diffable>::Diff<'daft>, <B as Diffable>::Diff<'daft>, <C as Diffable>::Diff<'daft>, <D as Diffable>::Diff<'daft>, <E as Diffable>::Diff<'daft>, <F as Diffable>::Diff<'daft>) where A: 'daft, B: 'daft, C: 'daft, D: 'daft, E: 'daft, F: 'daft
fn diff<'daft>(&'daft self, other: &'daft Self) -> Self::Diff<'daft>
Source§impl<A: Diffable, B: Diffable, C: Diffable, D: Diffable, E: Diffable, F: Diffable, G: Diffable> Diffable for (A, B, C, D, E, F, G)
impl<A: Diffable, B: Diffable, C: Diffable, D: Diffable, E: Diffable, F: Diffable, G: Diffable> Diffable for (A, B, C, D, E, F, G)
type Diff<'daft> = (<A as Diffable>::Diff<'daft>, <B as Diffable>::Diff<'daft>, <C as Diffable>::Diff<'daft>, <D as Diffable>::Diff<'daft>, <E as Diffable>::Diff<'daft>, <F as Diffable>::Diff<'daft>, <G as Diffable>::Diff<'daft>) where A: 'daft, B: 'daft, C: 'daft, D: 'daft, E: 'daft, F: 'daft, G: 'daft
fn diff<'daft>(&'daft self, other: &'daft Self) -> Self::Diff<'daft>
Source§impl<A: Diffable, B: Diffable, C: Diffable, D: Diffable, E: Diffable, F: Diffable, G: Diffable, H: Diffable> Diffable for (A, B, C, D, E, F, G, H)
impl<A: Diffable, B: Diffable, C: Diffable, D: Diffable, E: Diffable, F: Diffable, G: Diffable, H: Diffable> Diffable for (A, B, C, D, E, F, G, H)
type Diff<'daft> = (<A as Diffable>::Diff<'daft>, <B as Diffable>::Diff<'daft>, <C as Diffable>::Diff<'daft>, <D as Diffable>::Diff<'daft>, <E as Diffable>::Diff<'daft>, <F as Diffable>::Diff<'daft>, <G as Diffable>::Diff<'daft>, <H as Diffable>::Diff<'daft>) where A: 'daft, B: 'daft, C: 'daft, D: 'daft, E: 'daft, F: 'daft, G: 'daft, H: 'daft
fn diff<'daft>(&'daft self, other: &'daft Self) -> Self::Diff<'daft>
Source§impl<A: Diffable, B: Diffable, C: Diffable, D: Diffable, E: Diffable, F: Diffable, G: Diffable, H: Diffable, I: Diffable> Diffable for (A, B, C, D, E, F, G, H, I)
impl<A: Diffable, B: Diffable, C: Diffable, D: Diffable, E: Diffable, F: Diffable, G: Diffable, H: Diffable, I: Diffable> Diffable for (A, B, C, D, E, F, G, H, I)
type Diff<'daft> = (<A as Diffable>::Diff<'daft>, <B as Diffable>::Diff<'daft>, <C as Diffable>::Diff<'daft>, <D as Diffable>::Diff<'daft>, <E as Diffable>::Diff<'daft>, <F as Diffable>::Diff<'daft>, <G as Diffable>::Diff<'daft>, <H as Diffable>::Diff<'daft>, <I as Diffable>::Diff<'daft>) where A: 'daft, B: 'daft, C: 'daft, D: 'daft, E: 'daft, F: 'daft, G: 'daft, H: 'daft, I: 'daft
fn diff<'daft>(&'daft self, other: &'daft Self) -> Self::Diff<'daft>
Source§impl<A: Diffable, B: Diffable, C: Diffable, D: Diffable, E: Diffable, F: Diffable, G: Diffable, H: Diffable, I: Diffable, J: Diffable> Diffable for (A, B, C, D, E, F, G, H, I, J)
impl<A: Diffable, B: Diffable, C: Diffable, D: Diffable, E: Diffable, F: Diffable, G: Diffable, H: Diffable, I: Diffable, J: Diffable> Diffable for (A, B, C, D, E, F, G, H, I, J)
type Diff<'daft> = (<A as Diffable>::Diff<'daft>, <B as Diffable>::Diff<'daft>, <C as Diffable>::Diff<'daft>, <D as Diffable>::Diff<'daft>, <E as Diffable>::Diff<'daft>, <F as Diffable>::Diff<'daft>, <G as Diffable>::Diff<'daft>, <H as Diffable>::Diff<'daft>, <I as Diffable>::Diff<'daft>, <J as Diffable>::Diff<'daft>) where A: 'daft, B: 'daft, C: 'daft, D: 'daft, E: 'daft, F: 'daft, G: 'daft, H: 'daft, I: 'daft, J: 'daft
fn diff<'daft>(&'daft self, other: &'daft Self) -> Self::Diff<'daft>
Source§impl<T> Diffable for TypedUuid<T>where
T: TypedUuidKind + Diffable,
Available on crate feature newtype-uuid1 only.
impl<T> Diffable for TypedUuid<T>where
T: TypedUuidKind + Diffable,
Available on crate feature
newtype-uuid1 only.Source§impl<T: Diffable + ToOwned + ?Sized> Diffable for Cow<'_, T>
Available on crate feature alloc only.
impl<T: Diffable + ToOwned + ?Sized> Diffable for Cow<'_, T>
Available on crate feature
alloc only.Source§impl<T: Diffable> Diffable for Vec<T>
Available on crate feature alloc only.Treat Vecs as Leafs
impl<T: Diffable> Diffable for Vec<T>
Available on crate feature
alloc only.Treat Vecs as Leafs