Source code

Revision control

Copy as Markdown

Other Tools

use super::*;
use crate::Flags;
#[test]
fn cases() {
case(false, TestFlags::empty(), TestFlags::contains_unknown_bits);
case(false, TestFlags::A, TestFlags::contains_unknown_bits);
case(
true,
TestFlags::ABC | TestFlags::from_bits_retain(1 << 3),
TestFlags::contains_unknown_bits,
);
case(
true,
TestFlags::empty() | TestFlags::from_bits_retain(1 << 3),
TestFlags::contains_unknown_bits,
);
case(false, TestFlags::all(), TestFlags::contains_unknown_bits);
case(false, TestZero::empty(), TestZero::contains_unknown_bits);
}
#[track_caller]
fn case<T: Flags + std::fmt::Debug>(expected: bool, value: T, inherent: impl FnOnce(&T) -> bool) {
assert_eq!(
expected,
inherent(&value),
"{:?}.contains_unknown_bits()",
value
);
assert_eq!(
expected,
Flags::contains_unknown_bits(&value),
"Flags::contains_unknown_bits({:?})",
value
);
}