Struct bitvec::access::BitSafeU16
source · [−]#[repr(transparent)]pub struct BitSafeU16 { /* 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
sourceimpl BitSafe for BitSafeU16
impl BitSafe for BitSafeU16
sourceimpl BitStore for BitSafeU16
impl BitStore for BitSafeU16
type Mem = u16
type Mem = u16
The element type used in the memory region underlying a BitSlice
. It
is always one of the unsigned integer fundamentals. Read more
type Access = <BitSafeU16 as BitSafe>::Rad
type Access = <BitSafeU16 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 = BitSafeU16
type Alias = BitSafeU16
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. Read more
type Unalias = u16
type Unalias = u16
The inverse of ::Alias
. It is used when a BitSlice
removes the
conditions that required a T -> T::Alias
transition. Read more
sourcefn 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. Read more
sourcefn 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. Read more
sourceconst ALIGNED_TO_SIZE: [(); 1] = _
const ALIGNED_TO_SIZE: [(); 1] = _
All implementors are required to have their alignment match their size. Read more
Auto Trait Implementations
impl RefUnwindSafe for BitSafeU16
impl Send for BitSafeU16
impl Sync for BitSafeU16
impl Unpin for BitSafeU16
impl UnwindSafe for BitSafeU16
Blanket Implementations
sourceimpl<T> BitView for T where
T: BitStore,
impl<T> BitView for T where
T: BitStore,
type Store = T
type Store = T
The underlying element type.
sourcefn view_bits<O>(&self) -> &BitSlice<T, O>ⓘNotable traits for &BitSlice<T, O>impl<T, O> Read for &BitSlice<T, O> where
T: BitStore,
O: BitOrder,
BitSlice<T, O>: BitField, impl<T, O> Write for &mut BitSlice<T, O> where
T: BitStore,
O: BitOrder,
BitSlice<T, O>: BitField,
where
O: BitOrder,
fn view_bits<O>(&self) -> &BitSlice<T, O>ⓘNotable traits for &BitSlice<T, O>impl<T, O> Read for &BitSlice<T, O> where
T: BitStore,
O: BitOrder,
BitSlice<T, O>: BitField, impl<T, O> Write for &mut BitSlice<T, O> where
T: BitStore,
O: BitOrder,
BitSlice<T, O>: BitField,
where
O: BitOrder,
T: BitStore,
O: BitOrder,
BitSlice<T, O>: BitField, impl<T, O> Write for &mut BitSlice<T, O> where
T: BitStore,
O: BitOrder,
BitSlice<T, O>: BitField,
Views a memory region as an immutable bit-slice.
sourcefn 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
sourcefn view_bits_mut<O>(&mut self) -> &mut BitSlice<T, O>ⓘNotable traits for &BitSlice<T, O>impl<T, O> Read for &BitSlice<T, O> where
T: BitStore,
O: BitOrder,
BitSlice<T, O>: BitField, impl<T, O> Write for &mut BitSlice<T, O> where
T: BitStore,
O: BitOrder,
BitSlice<T, O>: BitField,
where
O: BitOrder,
fn view_bits_mut<O>(&mut self) -> &mut BitSlice<T, O>ⓘNotable traits for &BitSlice<T, O>impl<T, O> Read for &BitSlice<T, O> where
T: BitStore,
O: BitOrder,
BitSlice<T, O>: BitField, impl<T, O> Write for &mut BitSlice<T, O> where
T: BitStore,
O: BitOrder,
BitSlice<T, O>: BitField,
where
O: BitOrder,
T: BitStore,
O: BitOrder,
BitSlice<T, O>: BitField, impl<T, O> Write for &mut BitSlice<T, O> where
T: BitStore,
O: BitOrder,
BitSlice<T, O>: BitField,
Views a memory region as a mutable bit-slice.
sourcefn 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
sourceimpl<T> BitViewSized for T where
T: BitStore,
impl<T> BitViewSized for T where
T: BitStore,
sourcefn 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.
sourcefn 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.
sourcefn 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
.
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> FmtForward for T
impl<T> FmtForward for T
sourcefn 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. Read more
sourcefn 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. Read more
sourcefn 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. Read more
sourcefn 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. Read more
sourcefn 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. Read more
sourcefn 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. Read more
sourcefn 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. Read more
sourcefn 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. Read more
sourceimpl<T> Pipe for T where
T: ?Sized,
impl<T> Pipe for T where
T: ?Sized,
sourcefn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
Pipes by value. This is generally the method you want to use. Read more
sourcefn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more
sourcefn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R where
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R where
R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more
sourcefn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R where
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R where
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
Borrows self
, then passes self.borrow()
into the pipe function. Read more
sourcefn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R where
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
) -> R where
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
Mutably borrows self
, then passes self.borrow_mut()
into the pipe
function. Read more
sourcefn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R where
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R where
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
Borrows self
, then passes self.as_ref()
into the pipe function.
sourcefn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R where
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) -> R where
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
Mutably borrows self
, then passes self.as_mut()
into the pipe
function. Read more
sourceimpl<T> Tap for T
impl<T> Tap for T
sourcefn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
Immutable access to the Borrow<B>
of a value. Read more
sourcefn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
Mutable access to the BorrowMut<B>
of a value. Read more
sourcefn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
Immutable access to the AsRef<R>
view of a value. Read more
sourcefn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
Mutable access to the AsMut<R>
view of a value. Read more
sourcefn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self where
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self where
Self: Deref<Target = T>,
T: ?Sized,
Immutable access to the Deref::Target
of a value. Read more
sourcefn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self where
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self where
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Mutable access to the Deref::Target
of a value. Read more
sourcefn 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.
sourcefn 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. Read more
sourcefn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
Calls .tap_borrow()
only in debug builds, and is erased in release
builds. Read more
sourcefn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
builds. Read more
sourcefn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
Calls .tap_ref()
only in debug builds, and is erased in release
builds. Read more
sourcefn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
Calls .tap_ref_mut()
only in debug builds, and is erased in release
builds. Read more