Trait partial_const::Equals [−][src]
A trait for putting equality constraints on constants. It will be implemented if the constants are equal.
Example
fn equal<A: partial_const::MayBeConst<u8>, B: partial_const::MayBeConst<u8>>(a: A, b: B) -> bool where A: partial_const::Equals<B> { a.value() == b.value() } assert!(equal(partial_const::ConstU8::<1>::new(), partial_const::ConstU8::<1>::new())); assert!(equal(partial_const::ConstU8::<1>::new(), 1)); assert!(!equal(partial_const::ConstU8::<1>::new(), 2)); // assert!(equal(partial_const::ConstU8::<1>::new(), partial_const::ConstU8::<2>::new())); <- Compile Error
Associated Types
type ConstSide: MayBeConst<T::Type>
[src]
The const side of two types.
Example
assert_eq!(<partial_const::ConstU16<0> as partial_const::Equals<partial_const::ConstU16<0>>>::ConstSide::default(), partial_const::ConstU16::<0>::new()); assert_eq!(<partial_const::ConstU16<0> as partial_const::Equals<u16>>::ConstSide::default(), partial_const::ConstU16::<0>::new()); assert_eq!(<u16 as partial_const::Equals<partial_const::ConstU16<0>>>::ConstSide::default(), partial_const::ConstU16::<0>::new()); assert_eq!(<u16 as partial_const::Equals<u16>>::ConstSide::default(), 0_u16);
Required methods
fn get_const_side(&self, rhs: &T) -> Option<Self::ConstSide>
[src]
Return the const side value of two values if two values are equal.
Example
assert_eq!(ConstU32::<0>::new().get_const_side(&ConstU32::<0>::new()), Some(ConstU32::<0>::new())); assert_eq!(ConstU32::<0>::new().get_const_side(&0_u32), Some(ConstU32::<0>::new())); assert_eq!(0_u32.get_const_side(&ConstU32::<0>::new()), Some(ConstU32::<0>::new())); assert_eq!(0_u32.get_const_side(&0_u32), Some(0_u32)); assert_eq!(ConstU32::<0>::new().get_const_side(&1_u32), None); assert_eq!(1_u32.get_const_side(&ConstU32::<0>::new()), None); assert_eq!(0_u32.get_const_side(&1_u32), None);