pub struct ByteMapStateStorage {
lock: Mutex<()>,
mapped: [Atomic<MapState>; 1024],
}Expand description
A MapStateStorage implementation based on a simple array.
Currently it is sized to cover a 32-bit address range.
Fields§
§lock: Mutex<()>§mapped: [Atomic<MapState>; 1024]Implementations§
Trait Implementations§
source§impl Debug for ByteMapStateStorage
impl Debug for ByteMapStateStorage
source§impl Default for ByteMapStateStorage
impl Default for ByteMapStateStorage
source§impl MapStateStorage for ByteMapStateStorage
impl MapStateStorage for ByteMapStateStorage
source§fn log_mappable_bytes(&self) -> u8
fn log_mappable_bytes(&self) -> u8
The logarithm of the address space size this
MapStateStorage can handle.source§fn get_state(&self, chunk: Address) -> MapState
fn get_state(&self, chunk: Address) -> MapState
Return the state of a given
chunk (must be aligned). Read moresource§fn bulk_set_state(&self, range: ChunkRange, state: MapState)
fn bulk_set_state(&self, range: ChunkRange, state: MapState)
Set all chunks within
range to state.source§fn bulk_transition_state<F>(
&self,
range: ChunkRange,
update_fn: F,
) -> Result<()>
fn bulk_transition_state<F>( &self, range: ChunkRange, update_fn: F, ) -> Result<()>
Visit the chunk states within
range and allow the update_fn callback to inspect and
change the states. Read moreAuto Trait Implementations§
impl !Freeze for ByteMapStateStorage
impl !RefUnwindSafe for ByteMapStateStorage
impl Send for ByteMapStateStorage
impl Sync for ByteMapStateStorage
impl Unpin for ByteMapStateStorage
impl UnwindSafe for ByteMapStateStorage
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
Mutably borrows from an owned value. Read more
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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>
Converts
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>
Converts
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