use super::*; use crate::Flags; #[test] fn cases() { case(0, TestFlags::from_bits_retain); case(1, TestFlags::from_bits_retain); case(1 | 1 << 1 | 1 << 2, TestFlags::from_bits_retain); case(1 << 3, TestFlags::from_bits_retain); case(1 | 1 << 3, TestFlags::from_bits_retain); case(1 | 1 << 1, TestOverlapping::from_bits_retain); case(1 << 1, TestOverlapping::from_bits_retain); case(1 << 5, TestExternal::from_bits_retain); } #[track_caller] fn case(input: T::Bits, inherent: impl FnOnce(T::Bits) -> T) where ::Bits: std::fmt::Debug + PartialEq, { assert_eq!( input, inherent(input).bits(), "T::from_bits_retain({:?})", input ); assert_eq!( input, T::from_bits_retain(input).bits(), "Flags::from_bits_retain({:?})", input ); }