pub struct FromBitsError<T: BitFlag> { /* private fields */ }
Expand description
The error struct used by BitFlags::from_bits
and the TryFrom
implementation for invalid values.
Note that the implementation of [std::error::Error
]
for this type is gated on the std
feature flag.
#[bitflags]
#[derive(Clone, Copy, Debug)]
#[repr(u8)]
enum MyFlags {
A = 0b0001,
B = 0b0010,
C = 0b0100,
D = 0b1000,
}
let result: Result<BitFlags<MyFlags>, _> = 0b10101u8.try_into();
assert!(result.is_err());
let error = result.unwrap_err();
assert_eq!(error.truncate(), MyFlags::C | MyFlags::A);
assert_eq!(error.invalid_bits(), 0b10000);
Implementations§
source§impl<T: BitFlag> FromBitsError<T>
impl<T: BitFlag> FromBitsError<T>
sourcepub fn invalid_bits(self) -> T::Numeric
pub fn invalid_bits(self) -> T::Numeric
Return the bits that didn’t correspond to any flags.
Trait Implementations§
source§impl<T: Clone + BitFlag> Clone for FromBitsError<T>where
T::Numeric: Clone,
impl<T: Clone + BitFlag> Clone for FromBitsError<T>where
T::Numeric: Clone,
source§fn clone(&self) -> FromBitsError<T>
fn clone(&self) -> FromBitsError<T>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreimpl<T: Copy + BitFlag> Copy for FromBitsError<T>where
T::Numeric: Copy,
Auto Trait Implementations§
impl<T> Freeze for FromBitsError<T>where
<T as RawBitFlags>::Numeric: Freeze,
impl<T> RefUnwindSafe for FromBitsError<T>where
<T as RawBitFlags>::Numeric: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for FromBitsError<T>
impl<T> Sync for FromBitsError<T>
impl<T> Unpin for FromBitsError<T>
impl<T> UnwindSafe for FromBitsError<T>where
<T as RawBitFlags>::Numeric: UnwindSafe,
T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)