[−][src]Crate distinct
A pair of traits which can be used to ensure that two types either are distinct or are not distinct.
There are two traits: Distinct
and NonDistinct
. Distinct
is
implemented for tuples of two distinct types. NonDistinct
is
implemented for tuples of two of the same type.
Examples
use distinct::{Distinct, NonDistinct}; // Two functions which enforce that the given type is distinct. fn assert_is_distinct<T: Distinct + ?Sized>() {} fn assert_is_non_distinct<T: NonDistinct + ?Sized>() {} assert_is_distinct::<(u32, u64)>(); assert_is_non_distinct::<(u32, u32)>();
Structs
PairOfPhantoms | This struct exists for stuff internal to the module. Don't use it for anything (though it has no behavior, so you can't do anything with it). |
Traits
Distinct | A trait which indicates that the two types in the tuple are distinct. |
NonDistinct | A trait which indicates that the two types in the tuple are not distinct. |