pub trait Same<Rhs = Self> {
type Output;
}Expand description
A type operator that ensures that Rhs is the same as Self, it is mainly useful
for writing macros that can take arbitrary binary or unary operators.
Same is implemented generically for all types; it should never need to be implemented
for anything else.
Note that Rust lazily evaluates types, so this will only fail for two different types if
the Output is used.
§Example
use typenum::{Same, Unsigned, U4, U5};
assert_eq!(<U5 as Same<U5>>::Output::to_u32(), 5);
// Only an error if we use it:
type Undefined = <U5 as Same<U4>>::Output;
// Compiler error:
// Undefined::to_u32();