pub struct u7(/* private fields */);
Expand description
A 7-bit integer type.
Wraps the u8
type and ensures that the top bit is always zero.
Implementations§
Source§impl u7
impl u7
Sourcepub const fn new(raw: u8) -> u7
pub const fn new(raw: u8) -> u7
Creates a restricted int from its non-restricted counterpart by masking off the extra bits.
Sourcepub const fn from_int_lossy(raw: u8) -> u7
pub const fn from_int_lossy(raw: u8) -> u7
Creates a restricted int from its non-restricted counterpart by masking off the extra bits.
Sourcepub fn try_from(raw: u8) -> Option<u7>
pub fn try_from(raw: u8) -> Option<u7>
Returns Some
if the raw integer is within range of the restricted integer, and
None
otherwise.
Sourcepub fn as_int(self) -> u8
pub fn as_int(self) -> u8
Get the inner integer out of the wrapper. The inner integer is guaranteed to be in range of the restricted wrapper.
Sourcepub fn slice_try_from_int(raw: &[u8]) -> Option<&[u7]>
pub fn slice_try_from_int(raw: &[u8]) -> Option<&[u7]>
Cast a slice of raw integers to a slice of restricted integers, only if there are no out-of-range integers.
Sourcepub fn slice_from_int(raw: &[u8]) -> &[u7]
pub fn slice_from_int(raw: &[u8]) -> &[u7]
Cast a slice of raw integers to a slice of restricted integers.
The slice is truncated up to the first out-of-range integer, if there is any.
Sourcepub unsafe fn slice_from_int_unchecked(raw: &[u8]) -> &[u7]
pub unsafe fn slice_from_int_unchecked(raw: &[u8]) -> &[u7]
Cast a slice of raw integers to a slice of restricted integers.
§Safety
The input slice must not contain any out-of-range integers.
Sourcepub fn slice_try_from_int_mut(raw: &mut [u8]) -> Option<&mut [u7]>
pub fn slice_try_from_int_mut(raw: &mut [u8]) -> Option<&mut [u7]>
Cast a slice of mutable raw integers to a slice of mutable restricted integers, only if there are no out-of-range integers.
Sourcepub fn slice_from_int_mut(raw: &mut [u8]) -> &mut [u7]
pub fn slice_from_int_mut(raw: &mut [u8]) -> &mut [u7]
Cast a slice of mutable raw integers to a slice of mutable restricted integers.
The slice is truncated up to the first out-of-range integer, if there is any.
Sourcepub unsafe fn slice_from_int_unchecked_mut(raw: &mut [u8]) -> &mut [u7]
pub unsafe fn slice_from_int_unchecked_mut(raw: &mut [u8]) -> &mut [u7]
Cast a slice of mutable raw integers to a slice of mutable restricted integers.
§Safety
The input slice must not contain any out-of-range integers.
Sourcepub fn slice_as_int(slice: &[u7]) -> &[u8] ⓘ
pub fn slice_as_int(slice: &[u7]) -> &[u8] ⓘ
Cast a slice of restricted integers to the corresponding raw integers.
All integers are guaranteed to be within range of the restricted int.
Trait Implementations§
Source§impl AddAssign for u7
impl AddAssign for u7
Source§fn add_assign(&mut self, other: Self)
fn add_assign(&mut self, other: Self)
+=
operation. Read moreSource§impl Ord for u7
impl Ord for u7
Source§impl PartialOrd<u7> for u8
impl PartialOrd<u7> for u8
Source§impl PartialOrd<u8> for u7
impl PartialOrd<u8> for u7
Source§impl PartialOrd for u7
impl PartialOrd for u7
Source§impl SubAssign for u7
impl SubAssign for u7
Source§fn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
-=
operation. Read moreimpl Copy for u7
impl Eq for u7
impl StructuralPartialEq for u7
Auto Trait Implementations§
impl Freeze for u7
impl RefUnwindSafe for u7
impl Send for u7
impl Sync for u7
impl Unpin for u7
impl UnwindSafe for u7
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more