HostViewStaged

Struct HostViewStaged 

Source
pub struct HostViewStaged<'a, const TS: usize, const BS: usize, const BC: usize, AP, PP, PT, PK, SB>
where AP: AccessPolicy, PP: PersistPolicy<PK>, PT: PersistTrigger<PK>, BitsImpl<BC>: Bits, SB: StagingBuffer,
{ /* private fields */ }
Expand description

Host view with transactional staging support.

Allows writes to be staged and previewed before committing to the shadow table.

Implementations§

Source§

impl<'a, const TS: usize, const BS: usize, const BC: usize, AP, PP, PT, PK, SB> HostViewStaged<'a, TS, BS, BC, AP, PP, PT, PK, SB>
where AP: AccessPolicy, PP: PersistPolicy<PK>, PT: PersistTrigger<PK>, BitsImpl<BC>: Bits, SB: StagingBuffer,

Source

pub fn read_range(&self, addr: u16, out: &mut [u8]) -> Result<(), ShadowError>

Reads data from the shadow table (ignores staged writes).

Source

pub fn write_range(&mut self, addr: u16, data: &[u8]) -> Result<(), ShadowError>

Writes directly to the shadow table, bypassing staging.

Source

pub fn read_range_overlay( &self, addr: u16, out: &mut [u8], ) -> Result<(), ShadowError>

Reads data with staged writes overlaid on top.

Source

pub fn write_range_staged( &mut self, addr: u16, data: &[u8], ) -> Result<(), ShadowError>

Stages a write to be applied on commit.

Source

pub fn commit(&mut self) -> Result<(), ShadowError>

Commits all staged writes to the shadow table.

Staged writes are applied in order, marking blocks dirty and triggering persistence as configured. The staging buffer is cleared after successful commit.

Source

pub fn action(&mut self) -> Result<(), ShadowError>

👎Deprecated since 0.1.2: renamed to commit()

Commits all staged writes to the shadow table.

Auto Trait Implementations§

§

impl<'a, const TS: usize, const BS: usize, const BC: usize, AP, PP, PT, PK, SB> Freeze for HostViewStaged<'a, TS, BS, BC, AP, PP, PT, PK, SB>

§

impl<'a, const TS: usize, const BS: usize, const BC: usize, AP, PP, PT, PK, SB> !RefUnwindSafe for HostViewStaged<'a, TS, BS, BC, AP, PP, PT, PK, SB>

§

impl<'a, const TS: usize, const BS: usize, const BC: usize, AP, PP, PT, PK, SB> !Send for HostViewStaged<'a, TS, BS, BC, AP, PP, PT, PK, SB>

§

impl<'a, const TS: usize, const BS: usize, const BC: usize, AP, PP, PT, PK, SB> !Sync for HostViewStaged<'a, TS, BS, BC, AP, PP, PT, PK, SB>

§

impl<'a, const TS: usize, const BS: usize, const BC: usize, AP, PP, PT, PK, SB> Unpin for HostViewStaged<'a, TS, BS, BC, AP, PP, PT, PK, SB>
where PK: Unpin,

§

impl<'a, const TS: usize, const BS: usize, const BC: usize, AP, PP, PT, PK, SB> !UnwindSafe for HostViewStaged<'a, TS, BS, BC, AP, PP, PT, PK, SB>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.