Struct bitvec::access::BitSafeU32[][src]

#[repr(transparent)]pub struct BitSafeU32 { /* 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. BitSlices 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 BitSafeU32[src]

type Mem = u32

The register type being guarded against shared mutation. Read more

type Rad = RadiumU32

The accessor type being prevented from mutating while shared. Read more

impl BitStore for BitSafeU32[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 = u32

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 = u32

The inverse of Alias. It is used when a BitSlice removes the conditions that required a T -> T::Alias transition. Read more

impl Debug for BitSafeU32[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BitView for T where
    T: BitStore
[src]

type Store = T

The region’s storage type.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Conv for T[src]

impl<T> Conv for T[src]

impl<T> FmtForward for T[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pipe for T where
    T: ?Sized
[src]

impl<T> Pipe for T[src]

impl<T> PipeAsRef for T[src]

impl<T> PipeBorrow for T[src]

impl<T> PipeDeref for T[src]

impl<T> PipeRef for T[src]

impl<T> Tap for T[src]

impl<T> Tap for T[src]

impl<T, U> TapAsRef<U> for T where
    U: ?Sized
[src]

impl<T, U> TapBorrow<U> for T where
    U: ?Sized
[src]

impl<T> TapDeref for T[src]

impl<T> TryConv for T[src]

impl<T> TryConv for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.