Struct bitvec::access::BitSafeU8 [−][src]
#[repr(transparent)]pub struct BitSafeU8 { /* fields omitted */ }
A wrapper over a shared-mutable type that forbids writing to the location through its own reference. Other references to the location may still write to it, and reads from this reference will be aware of this possibility.
This is necessary in order to enforce bitvec
’s memory model,
which disallows shared mutation to individual bits. BitSlice
s
may produce memory views that use this type in order to ensure that
handles that lack write permission to an area may not write to it,
even if other handles may.
Under the "atomic"
feature, this uses radium
’s best-effort
atomic alias; when this feature is disabled, then it uses a Cell
directly.
Trait Implementations
impl BitSafe for BitSafeU8
[src][+]
type Mem = u8
The register type being guarded against shared mutation. Read more
type Rad = Cell<u8>
The accessor type being prevented from mutating while shared. Read more
fn load(&self) -> u8
[src][−]
Reads the value out of memory only if a shared reference to the location can be produced. Read more
fn store(&mut self, value: u8)
[src][−]
Writes a value into memory only if an exclusive reference to the location can be produced. Read more
impl BitStore for BitSafeU8
[src][+]
This type is only ever produced by calling .split_at_mut()
on
BitSlice<_, T>
where T
is an unsigned integer. It cannot be
constructed as a base data source.
type Mem = u8
The register type used in the slice region underlying a BitSlice
handle. It is always an unsigned integer. Read more
type Access = Self::Rad
A type that selects appropriate load/store instructions used for
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 = Self
A sibling BitStore
implementor. It is used when a BitSlice
introduces multiple handles that view the same memory location, and at
least one of them has write permission to it. Read more
type Unalias = u8
The inverse of Alias
. It is used when a BitSlice
removes the
conditions that required a T -> T::Alias
transition. Read more
fn load_value(&self) -> Self::Mem
[src][−]
Loads a value out of the memory system according to the ::Access
rules. Read more
fn store_value(&mut self, value: Self::Mem)
[src][−]
Stores a value into the memory system according to the ::Access
rules.
fn get_bit<O>(&self, index: BitIdx<Self::Mem>) -> bool where
O: BitOrder,
[src][−]
O: BitOrder,
impl Debug for BitSafeU8
[src][+]
Auto 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 T where
T: 'static + ?Sized,
[src][+]
T: 'static + ?Sized,
pub fn type_id(&self) -> TypeId
[src][−]
Gets the TypeId
of self
. Read more
impl<T> BitView for T where
T: BitStore,
[src][+]
T: BitStore,
type Store = T
The region’s storage type.
pub fn view_bits<O>(&Self) -> &BitSlice<O, T>ⓘ where
O: BitOrder,
[src][−]
O: BitOrder,
pub fn view_bits_mut<O>(&mut Self) -> &mut BitSlice<O, T>ⓘ where
O: BitOrder,
[src][−]
O: BitOrder,
impl<T> Borrow<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
pub fn borrow(&self) -> &T
[src][−]
Immutably borrows from an owned value. Read more
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src][−]
Mutably borrows from an owned value. Read more
impl<T> Conv for T
[src][+]
pub fn conv<T>(self) -> T where
Self: Into<T>,
[src][−]
Self: Into<T>,
Converts self
into T
using Into<T>
. Read more
impl<T> Conv for T
[src][+]
pub fn conv<T>(self) -> T where
Self: Into<T>,
[src][−]
Self: Into<T>,
Converts self
into a target type. Read more
impl<T> FmtForward for T
[src][+]
pub fn fmt_binary(self) -> FmtBinary<Self> where
Self: Binary,
[src][−]
Self: Binary,
Causes self
to use its Binary
implementation when Debug
-formatted.
pub fn fmt_display(self) -> FmtDisplay<Self> where
Self: Display,
[src][−]
Self: Display,
Causes self
to use its Display
implementation when
Debug
-formatted. Read more
pub fn fmt_lower_exp(self) -> FmtLowerExp<Self> where
Self: LowerExp,
[src][−]
Self: LowerExp,
Causes self
to use its LowerExp
implementation when
Debug
-formatted. Read more
pub fn fmt_lower_hex(self) -> FmtLowerHex<Self> where
Self: LowerHex,
[src][−]
Self: LowerHex,
Causes self
to use its LowerHex
implementation when
Debug
-formatted. Read more
pub fn fmt_octal(self) -> FmtOctal<Self> where
Self: Octal,
[src][−]
Self: Octal,
Causes self
to use its Octal
implementation when Debug
-formatted.
pub fn fmt_pointer(self) -> FmtPointer<Self> where
Self: Pointer,
[src][−]
Self: Pointer,
Causes self
to use its Pointer
implementation when
Debug
-formatted. Read more
pub fn fmt_upper_exp(self) -> FmtUpperExp<Self> where
Self: UpperExp,
[src][−]
Self: UpperExp,
Causes self
to use its UpperExp
implementation when
Debug
-formatted. Read more
pub fn fmt_upper_hex(self) -> FmtUpperHex<Self> where
Self: UpperHex,
[src][−]
Self: UpperHex,
Causes self
to use its UpperHex
implementation when
Debug
-formatted. Read more
impl<T> From<T> for T
[src][+]
impl<T, U> Into<U> for T where
U: From<T>,
[src][+]
U: From<T>,
impl<T> Pipe for T where
T: ?Sized,
[src][+]
T: ?Sized,
pub fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
[src][−]
Pipes by value. This is generally the method you want to use. Read more
pub fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
R: 'a,
[src][−]
R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more
pub fn pipe_ref_mut<'a, R>(
&'a mut self,
func: impl FnOnce(&'a mut Self) -> R
) -> R where
R: 'a,
[src][−]
&'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
pub fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R where
Self: Borrow<B>,
R: 'a,
B: 'a + ?Sized,
[src][−]
Self: Borrow<B>,
R: 'a,
B: 'a + ?Sized,
Borrows self
, then passes self.borrow()
into the pipe function. Read more
pub fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R where
Self: BorrowMut<B>,
R: 'a,
B: 'a + ?Sized,
[src][−]
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R where
Self: BorrowMut<B>,
R: 'a,
B: 'a + ?Sized,
Mutably borrows self
, then passes self.borrow_mut()
into the pipe
function. Read more
pub fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R where
Self: AsRef<U>,
R: 'a,
U: 'a + ?Sized,
[src][−]
Self: AsRef<U>,
R: 'a,
U: 'a + ?Sized,
Borrows self
, then passes self.as_ref()
into the pipe function.
pub fn pipe_as_mut<'a, U, R>(
&'a mut self,
func: impl FnOnce(&'a mut U) -> R
) -> R where
Self: AsMut<U>,
R: 'a,
U: 'a + ?Sized,
[src][−]
&'a mut self,
func: impl FnOnce(&'a mut U) -> R
) -> R where
Self: AsMut<U>,
R: 'a,
U: 'a + ?Sized,
Mutably borrows self
, then passes self.as_mut()
into the pipe
function. Read more
pub fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
[src][−]
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
Borrows self
, then passes self.deref()
into the pipe function.
pub fn pipe_deref_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: DerefMut<Target = T> + Deref,
T: 'a + ?Sized,
R: 'a,
[src][−]
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: DerefMut<Target = T> + Deref,
T: 'a + ?Sized,
R: 'a,
Mutably borrows self
, then passes self.deref_mut()
into the pipe
function. Read more
impl<T> Pipe for T
[src][+]
pub fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
[src][−]
Pipes a value into a function that cannot ordinarily be called in suffix position. Read more
impl<T> PipeAsRef for T
[src][+]
pub fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: AsRef<T>,
T: 'a,
R: 'a,
[src][−]
Self: AsRef<T>,
T: 'a,
R: 'a,
Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more
pub fn pipe_as_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: AsMut<T>,
T: 'a,
R: 'a,
[src][−]
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: AsMut<T>,
T: 'a,
R: 'a,
Pipes a trait mutable borrow into a function that cannot normally be called in suffix position. Read more
impl<T> PipeBorrow for T
[src][+]
pub fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Borrow<T>,
T: 'a,
R: 'a,
[src][−]
Self: Borrow<T>,
T: 'a,
R: 'a,
Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more
pub fn pipe_borrow_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
T: 'a,
R: 'a,
[src][−]
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
T: 'a,
R: 'a,
Pipes a trait mutable borrow into a function that cannot normally be called in suffix position. Read more
impl<T> PipeDeref for T
[src][+]
pub fn pipe_deref<'a, R>(
&'a self,
func: impl FnOnce(&'a Self::Target) -> R
) -> R where
Self: Deref,
R: 'a,
[src][−]
&'a self,
func: impl FnOnce(&'a Self::Target) -> R
) -> R where
Self: Deref,
R: 'a,
Pipes a dereference into a function that cannot normally be called in suffix position. Read more
pub fn pipe_deref_mut<'a, R>(
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
Self: DerefMut,
R: 'a,
[src][−]
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
Self: DerefMut,
R: 'a,
Pipes a mutable dereference into a function that cannot normally be called in suffix position. Read more
impl<T> PipeRef for T
[src][+]
pub fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
R: 'a,
[src][−]
R: 'a,
Pipes a reference into a function that cannot ordinarily be called in suffix position. Read more
pub fn pipe_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R where
R: 'a,
[src][−]
R: 'a,
Pipes a mutable reference into a function that cannot ordinarily be called in suffix position. Read more
impl<T> Tap for T
[src][+]
pub fn tap(self, func: impl FnOnce(&Self)) -> Self
[src][−]
Immutable access to a value. Read more
pub fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self
[src][−]
Mutable access to a value. Read more
pub fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
[src][−]
Self: Borrow<B>,
B: ?Sized,
Immutable access to the Borrow<B>
of a value. Read more
pub fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
[src][−]
Self: BorrowMut<B>,
B: ?Sized,
Mutable access to the BorrowMut<B>
of a value. Read more
pub fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
[src][−]
Self: AsRef<R>,
R: ?Sized,
Immutable access to the AsRef<R>
view of a value. Read more
pub fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
[src][−]
Self: AsMut<R>,
R: ?Sized,
Mutable access to the AsMut<R>
view of a value. Read more
pub fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self where
Self: Deref<Target = T>,
T: ?Sized,
[src][−]
Self: Deref<Target = T>,
T: ?Sized,
Immutable access to the Deref::Target
of a value. Read more
pub fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self where
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
[src][−]
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Mutable access to the Deref::Target
of a value. Read more
pub fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
[src][−]
Calls .tap()
only in debug builds, and is erased in release builds.
pub fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
[src][−]
Calls .tap_mut()
only in debug builds, and is erased in release
builds. Read more
pub fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
[src][−]
Self: Borrow<B>,
B: ?Sized,
Calls .tap_borrow()
only in debug builds, and is erased in release
builds. Read more
pub fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
[src][−]
Self: BorrowMut<B>,
B: ?Sized,
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
builds. Read more
pub fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
[src][−]
Self: AsRef<R>,
R: ?Sized,
Calls .tap_ref()
only in debug builds, and is erased in release
builds. Read more
pub fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
[src][−]
Self: AsMut<R>,
R: ?Sized,
Calls .tap_ref_mut()
only in debug builds, and is erased in release
builds. Read more
pub fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self where
Self: Deref<Target = T>,
T: ?Sized,
[src][−]
Self: Deref<Target = T>,
T: ?Sized,
Calls .tap_deref()
only in debug builds, and is erased in release
builds. Read more
pub fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self where
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
[src][−]
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Calls .tap_deref_mut()
only in debug builds, and is erased in release
builds. Read more
impl<T> Tap for T
[src][+]
pub fn tap<F, R>(self, func: F) -> Self where
F: FnOnce(&Self) -> R,
[src][−]
F: FnOnce(&Self) -> R,
Provides immutable access for inspection. Read more
pub fn tap_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&Self) -> R,
[src][−]
F: FnOnce(&Self) -> R,
Calls tap
in debug builds, and does nothing in release builds.
pub fn tap_mut<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
[src][−]
F: FnOnce(&mut Self) -> R,
Provides mutable access for modification. Read more
pub fn tap_mut_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
[src][−]
F: FnOnce(&mut Self) -> R,
Calls tap_mut
in debug builds, and does nothing in release builds.
impl<T, U> TapAsRef<U> for T where
U: ?Sized,
[src][+]
U: ?Sized,
pub fn tap_ref<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
[src][−]
Self: AsRef<T>,
F: FnOnce(&T) -> R,
Provides immutable access to the reference for inspection.
pub fn tap_ref_dbg<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
[src][−]
Self: AsRef<T>,
F: FnOnce(&T) -> R,
Calls tap_ref
in debug builds, and does nothing in release builds.
pub fn tap_ref_mut<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
[src][−]
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Provides mutable access to the reference for modification.
pub fn tap_ref_mut_dbg<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
[src][−]
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Calls tap_ref_mut
in debug builds, and does nothing in release builds.
impl<T, U> TapBorrow<U> for T where
U: ?Sized,
[src][+]
U: ?Sized,
pub fn tap_borrow<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
[src][−]
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Provides immutable access to the borrow for inspection. Read more
pub fn tap_borrow_dbg<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
[src][−]
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Calls tap_borrow
in debug builds, and does nothing in release builds.
pub fn tap_borrow_mut<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
[src][−]
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Provides mutable access to the borrow for modification.
pub fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
[src][−]
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Calls tap_borrow_mut
in debug builds, and does nothing in release
builds. Read more
impl<T> TapDeref for T
[src][+]
pub fn tap_deref<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
[src][−]
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Immutably dereferences self
for inspection.
pub fn tap_deref_dbg<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
[src][−]
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Calls tap_deref
in debug builds, and does nothing in release builds.
pub fn tap_deref_mut<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
[src][−]
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Mutably dereferences self
for modification.
pub fn tap_deref_mut_dbg<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
[src][−]
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Calls tap_deref_mut
in debug builds, and does nothing in release
builds. Read more
impl<T> TryConv for T
[src][+]
pub fn try_conv<T>(self) -> Result<T, Self::Error> where
Self: TryInto<T>,
[src][−]
Self: TryInto<T>,
Attempts to convert self
into T
using TryInto<T>
. Read more
impl<T> TryConv for T
[src][+]
pub fn try_conv<T>(self) -> Result<T, Self::Error> where
Self: TryInto<T>,
[src][−]
Self: TryInto<T>,
Attempts to convert self
into a target type. Read more
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src][−]
Performs the conversion.
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,