Memory

Trait Memory 

Source
pub trait Memory {
    // Required methods
    fn read<'a>(&'a self, a: u64, s: u64) -> Result<Box<dyn AsRef<[u8]> + 'a>>;
    fn write(&mut self, a: u64, x: &[u8]) -> Result<()>;
    fn size(&self) -> Result<u64>;
    fn grow(&mut self, x: u64) -> Result<()>;
}

Required Methods§

Source

fn read<'a>(&'a self, a: u64, s: u64) -> Result<Box<dyn AsRef<[u8]> + 'a>>

Source

fn write(&mut self, a: u64, x: &[u8]) -> Result<()>

Source

fn size(&self) -> Result<u64>

Source

fn grow(&mut self, x: u64) -> Result<()>

Implementations on Foreign Types§

Source§

impl Memory for Vec<u8>

Source§

fn read<'a>(&'a self, a: u64, s: u64) -> Result<Box<dyn AsRef<[u8]> + 'a>>

Source§

fn write(&mut self, a: u64, x: &[u8]) -> Result<()>

Source§

fn size(&self) -> Result<u64>

Source§

fn grow(&mut self, x: u64) -> Result<()>

Source§

impl<T: Memory + ?Sized> Memory for Box<T>

Source§

fn read<'a>(&'a self, a: u64, s: u64) -> Result<Box<dyn AsRef<[u8]> + 'a>>

Source§

fn write(&mut self, a: u64, x: &[u8]) -> Result<()>

Source§

fn size(&self) -> Result<u64, Error>

Source§

fn grow(&mut self, x: u64) -> Result<()>

Source§

impl<T: Memory> Memory for Arc<Mutex<T>>

Available on non-crate feature std only.
Source§

fn read<'a>(&'a self, a: u64, s: u64) -> Result<Box<dyn AsRef<[u8]> + 'a>>

Source§

fn write(&mut self, a: u64, x: &[u8]) -> Result<()>

Source§

fn size(&self) -> Result<u64, Error>

Source§

fn grow(&mut self, x: u64) -> Result<()>

Implementors§