MemoryMapped

Trait MemoryMapped 

Source
pub(crate) trait MemoryMapped {
    // Required methods
    fn fetch(
        &mut self,
        ctx: &Context,
        addr: &Address,
        meta: &MetaBitChange,
    ) -> Result<(Unsigned36Bit, ExtraBits), MemoryOpFailure>;
    fn store(
        &mut self,
        ctx: &Context,
        addr: &Address,
        value: &Unsigned36Bit,
        meta: &MetaBitChange,
    ) -> Result<(), MemoryOpFailure>;
    fn change_bit(
        &mut self,
        ctx: &Context,
        addr: &Address,
        op: &WordChange,
    ) -> Result<Option<bool>, MemoryOpFailure>;
    fn cycle_full_word_for_tsd(
        &mut self,
        ctx: &Context,
        addr: &Address,
    ) -> Result<ExtraBits, MemoryOpFailure>;
}

Required Methods§

Source

fn fetch( &mut self, ctx: &Context, addr: &Address, meta: &MetaBitChange, ) -> Result<(Unsigned36Bit, ExtraBits), MemoryOpFailure>

Fetch a word.

Source

fn store( &mut self, ctx: &Context, addr: &Address, value: &Unsigned36Bit, meta: &MetaBitChange, ) -> Result<(), MemoryOpFailure>

Store a word.

Source

fn change_bit( &mut self, ctx: &Context, addr: &Address, op: &WordChange, ) -> Result<Option<bool>, MemoryOpFailure>

Mutate a bit in-place, returning its previous value.

Source

fn cycle_full_word_for_tsd( &mut self, ctx: &Context, addr: &Address, ) -> Result<ExtraBits, MemoryOpFailure>

Cycle a memory location one place to the left (as in TSD).

This behaviour is described on page 4-9 of the TX-2 Users Handbook.

Implementors§