pub struct BitSafeU8 { /* private fields */ }Expand description
Read-Only Shared-Mutable Handle
This type marks a handle to a shared-mutable type that may be modified through
other handles, but cannot be modified through this one. It is used when a
BitSlice region has partial ownership of an element and wishes to expose the
entire underlying raw element to the user without granting them write
permissions.
Under the feature = "atomic" build setting, this uses radium’s best-effort
atomic alias; when this feature is disabled, it reverts to Cell.
Trait Implementations§
source§impl BitStore for BitSafeU8
 
impl BitStore for BitSafeU8
§type Mem = u8
 
type Mem = u8
The element type used in the memory region underlying a 
BitSlice. It
is always one of the unsigned integer fundamentals.§type Access = <BitSafeU8 as BitSafe>::Rad
 
type Access = <BitSafeU8 as BitSafe>::Rad
A type that selects the appropriate load/store instructions when
accessing the memory bus. It determines what instructions are used when
moving a 
Self::Mem value between the processor and the memory system. Read more§type Alias = BitSafeU8
 
type Alias = BitSafeU8
A sibling 
BitStore implementor that is known to be alias-safe. It is
used when a BitSlice introduces multiple handles that view the same
memory location, and at least one of them has write capabilities to it.
It must have the same underlying memory type, and can only change access
patterns or public-facing usage.§type Unalias = u8
 
type Unalias = u8
The inverse of 
::Alias. It is used when a BitSlice removes the
conditions that required a T -> T::Alias transition.source§fn load_value(&self) -> Self::Mem
 
fn load_value(&self) -> Self::Mem
Loads a value out of the memory system according to the 
::Access
rules. This may be called when the value is aliased by a write-capable
reference.source§fn store_value(&mut self, value: Self::Mem)
 
fn store_value(&mut self, value: Self::Mem)
Stores a value into the memory system. This is only called when there
are no other handles to the value, and it may bypass 
::Access
constraints.source§const ALIGNED_TO_SIZE: [(); 1] = _
 
const ALIGNED_TO_SIZE: [(); 1] = _
All implementors are required to have their alignment match their size. Read more
source§const ALIAS_WIDTH: [(); 1] = _
 
const ALIAS_WIDTH: [(); 1] = _
All implementors are required to have 
Self and Self::Alias be equal
in representation. This is true by fiat for all types except the
unsigned integers. Read moreAuto Trait Implementations§
impl RefUnwindSafe for BitSafeU8
impl Send for BitSafeU8
impl Sync for BitSafeU8
impl Unpin for BitSafeU8
impl UnwindSafe for BitSafeU8
Blanket Implementations§
§impl<T> Any for Twhere
    T: 'static + ?Sized,
 
impl<T> Any for Twhere
    T: 'static + ?Sized,
source§impl<T> BitView for Twhere
    T: BitStore,
 
impl<T> BitView for Twhere
    T: BitStore,
source§fn view_bits<O>(&self) -> &BitSlice<T, O>where
    O: BitOrder,
 
fn view_bits<O>(&self) -> &BitSlice<T, O>where
    O: BitOrder,
Views a memory region as an immutable bit-slice.
source§fn try_view_bits<O>(&self) -> Result<&BitSlice<T, O>, BitSpanError<T>>where
    O: BitOrder,
 
fn try_view_bits<O>(&self) -> Result<&BitSlice<T, O>, BitSpanError<T>>where
    O: BitOrder,
Attempts to view a memory region as an immutable bit-slice. Read more
source§fn view_bits_mut<O>(&mut self) -> &mut BitSlice<T, O>where
    O: BitOrder,
 
fn view_bits_mut<O>(&mut self) -> &mut BitSlice<T, O>where
    O: BitOrder,
Views a memory region as a mutable bit-slice.
source§fn try_view_bits_mut<O>(
    &mut self
) -> Result<&mut BitSlice<T, O>, BitSpanError<T>>where
    O: BitOrder,
 
fn try_view_bits_mut<O>(
    &mut self
) -> Result<&mut BitSlice<T, O>, BitSpanError<T>>where
    O: BitOrder,
Attempts to view a memory region as a mutable bit-slice. Read more
source§impl<T> BitViewSized for Twhere
    T: BitStore,
 
impl<T> BitViewSized for Twhere
    T: BitStore,
source§fn as_raw_slice(&self) -> &[<T as BitView>::Store]
 
fn as_raw_slice(&self) -> &[<T as BitView>::Store]
Views the type as a slice of its elements.
source§fn as_raw_mut_slice(&mut self) -> &mut [<T as BitView>::Store]
 
fn as_raw_mut_slice(&mut self) -> &mut [<T as BitView>::Store]
Views the type as a mutable slice of its elements.
source§fn into_bitarray<O>(self) -> BitArray<Self, O>where
    O: BitOrder,
 
fn into_bitarray<O>(self) -> BitArray<Self, O>where
    O: BitOrder,
Wraps 
self in a BitArray.§impl<T> Borrow<T> for Twhere
    T: ?Sized,
 
impl<T> Borrow<T> for Twhere
    T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
§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> FmtForward for T
 
impl<T> FmtForward for T
source§fn fmt_binary(self) -> FmtBinary<Self>where
    Self: Binary,
 
fn fmt_binary(self) -> FmtBinary<Self>where
    Self: Binary,
Causes 
self to use its Binary implementation when Debug-formatted.source§fn fmt_display(self) -> FmtDisplay<Self>where
    Self: Display,
 
fn fmt_display(self) -> FmtDisplay<Self>where
    Self: Display,
Causes 
self to use its Display implementation when
Debug-formatted.source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
 
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
Causes 
self to use its LowerExp implementation when
Debug-formatted.source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
 
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
Causes 
self to use its LowerHex implementation when
Debug-formatted.source§fn fmt_octal(self) -> FmtOctal<Self>where
    Self: Octal,
 
fn fmt_octal(self) -> FmtOctal<Self>where
    Self: Octal,
Causes 
self to use its Octal implementation when Debug-formatted.source§fn fmt_pointer(self) -> FmtPointer<Self>where
    Self: Pointer,
 
fn fmt_pointer(self) -> FmtPointer<Self>where
    Self: Pointer,
Causes 
self to use its Pointer implementation when
Debug-formatted.source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
 
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
Causes 
self to use its UpperExp implementation when
Debug-formatted.source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
 
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
Causes 
self to use its UpperHex implementation when
Debug-formatted.§impl<T, U> Into<U> for Twhere
    U: From<T>,
 
impl<T, U> Into<U> for Twhere
    U: From<T>,
source§impl<T> Pipe for Twhere
    T: ?Sized,
 
impl<T> Pipe for Twhere
    T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
    Self: Sized,
 
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
    Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
    R: 'a,
 
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
    R: 'a,
Borrows 
self and passes that borrow into the pipe function. Read moresource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
    R: 'a,
 
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
    R: 'a,
Mutably borrows 
self and passes that borrow into the pipe function. Read moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
    Self: Borrow<B>,
    B: 'a + ?Sized,
    R: 'a,
 
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
    Self: Borrow<B>,
    B: 'a + ?Sized,
    R: 'a,
source§fn pipe_borrow_mut<'a, B, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
    Self: BorrowMut<B>,
    B: 'a + ?Sized,
    R: 'a,
 
fn pipe_borrow_mut<'a, B, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
    Self: BorrowMut<B>,
    B: 'a + ?Sized,
    R: 'a,
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
    Self: AsRef<U>,
    U: 'a + ?Sized,
    R: 'a,
 
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
    Self: AsRef<U>,
    U: 'a + ?Sized,
    R: 'a,
Borrows 
self, then passes self.as_ref() into the pipe function.source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
    Self: AsMut<U>,
    U: 'a + ?Sized,
    R: 'a,
 
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
    Self: AsMut<U>,
    U: 'a + ?Sized,
    R: 'a,
Mutably borrows 
self, then passes self.as_mut() into the pipe
function.source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
    Self: Deref<Target = T>,
    T: 'a + ?Sized,
    R: 'a,
 
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
    Self: Deref<Target = T>,
    T: 'a + ?Sized,
    R: 'a,
Borrows 
self, then passes self.deref() into the pipe function.source§fn pipe_deref_mut<'a, T, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut T) -> R
) -> Rwhere
    Self: DerefMut<Target = T> + Deref,
    T: 'a + ?Sized,
    R: 'a,
 
fn pipe_deref_mut<'a, T, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut T) -> R
) -> Rwhere
    Self: DerefMut<Target = T> + Deref,
    T: 'a + ?Sized,
    R: 'a,
Mutably borrows 
self, then passes self.deref_mut() into the pipe
function.source§impl<T> Tap for T
 
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
    Self: Borrow<B>,
    B: ?Sized,
 
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
    Self: Borrow<B>,
    B: ?Sized,
Immutable access to the 
Borrow<B> of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
    Self: BorrowMut<B>,
    B: ?Sized,
 
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
    Self: BorrowMut<B>,
    B: ?Sized,
Mutable access to the 
BorrowMut<B> of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
    Self: AsRef<R>,
    R: ?Sized,
 
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
    Self: AsRef<R>,
    R: ?Sized,
Immutable access to the 
AsRef<R> view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
    Self: AsMut<R>,
    R: ?Sized,
 
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
    Self: AsMut<R>,
    R: ?Sized,
Mutable access to the 
AsMut<R> view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
    Self: Deref<Target = T>,
    T: ?Sized,
 
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
    Self: Deref<Target = T>,
    T: ?Sized,
Immutable access to the 
Deref::Target of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
    Self: DerefMut<Target = T> + Deref,
    T: ?Sized,
 
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
    Self: DerefMut<Target = T> + Deref,
    T: ?Sized,
Mutable access to the 
Deref::Target of a value. Read moresource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
 
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls 
.tap() only in debug builds, and is erased in release builds.source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
 
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls 
.tap_mut() only in debug builds, and is erased in release
builds.source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
    Self: Borrow<B>,
    B: ?Sized,
 
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
    Self: Borrow<B>,
    B: ?Sized,
Calls 
.tap_borrow() only in debug builds, and is erased in release
builds.source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
    Self: BorrowMut<B>,
    B: ?Sized,
 
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
    Self: BorrowMut<B>,
    B: ?Sized,
Calls 
.tap_borrow_mut() only in debug builds, and is erased in release
builds.source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
    Self: AsRef<R>,
    R: ?Sized,
 
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
    Self: AsRef<R>,
    R: ?Sized,
Calls 
.tap_ref() only in debug builds, and is erased in release
builds.source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
    Self: AsMut<R>,
    R: ?Sized,
 
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
    Self: AsMut<R>,
    R: ?Sized,
Calls 
.tap_ref_mut() only in debug builds, and is erased in release
builds.source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Selfwhere
    Self: Deref<Target = T>,
    T: ?Sized,
 
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Selfwhere
    Self: Deref<Target = T>,
    T: ?Sized,
Calls 
.tap_deref() only in debug builds, and is erased in release
builds.source§fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
    Self: DerefMut<Target = T> + Deref,
    T: ?Sized,
 
fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
    Self: DerefMut<Target = T> + Deref,
    T: ?Sized,
Calls 
.tap_deref_mut() only in debug builds, and is erased in release
builds.