[][src]Trait evm::Memory

pub trait Memory: Sized {
    fn new(memory_limit: usize) -> Self;
fn check_write(&self, index: U256) -> Result<(), NotSupportedError>;
fn check_write_range(
        &self,
        start: U256,
        len: U256
    ) -> Result<(), NotSupportedError>;
fn write(
        &mut self,
        index: U256,
        value: M256
    ) -> Result<(), NotSupportedError>;
fn write_raw(
        &mut self,
        index: U256,
        value: u8
    ) -> Result<(), NotSupportedError>;
fn read(&self, index: U256) -> M256;
fn read_raw(&self, index: U256) -> u8; }

Represent a memory in EVM. Read should always succeed. Write can fall.

Required methods

fn new(memory_limit: usize) -> Self

Create new memory instance bounded my the limit

fn check_write(&self, index: U256) -> Result<(), NotSupportedError>

Check whether write on this index would result in an error. If this function returns Ok, then both write and write_raw on this index should succeed.

fn check_write_range(
    &self,
    start: U256,
    len: U256
) -> Result<(), NotSupportedError>

Check whether write on the given index range would result in an error. If this function returns Ok, then both write and write_raw on the given index range should succeed.

fn write(&mut self, index: U256, value: M256) -> Result<(), NotSupportedError>

Write value into the index.

fn write_raw(&mut self, index: U256, value: u8) -> Result<(), NotSupportedError>

Write only one byte value into the index.

fn read(&self, index: U256) -> M256

Read value from the index.

fn read_raw(&self, index: U256) -> u8

Read only one byte value from the index.

Loading content...

Implementors

impl Memory for SeqMemory[src]

fn new(memory_limit: usize) -> Self[src]

Create new SeqMemory instance with supplied Patch

Loading content...