ic_cdk::api::stable

Trait StableMemory

Source
pub trait StableMemory {
    // Required methods
    fn stable_size(&self) -> u64;
    fn stable_grow(&self, new_pages: u64) -> Result<u64, StableMemoryError>;
    fn stable_write(&self, offset: u64, buf: &[u8]);
    fn stable_read(&self, offset: u64, buf: &mut [u8]);
}
Expand description

A trait defining the stable memory API which each canister running on the IC can make use of

Required Methods§

Source

fn stable_size(&self) -> u64

Gets current size of the stable memory (in WASM pages).

Source

fn stable_grow(&self, new_pages: u64) -> Result<u64, StableMemoryError>

Attempts to grow the stable memory by new_pages (added pages).

Returns an error if it wasn’t possible. Otherwise, returns the previous size that was reserved.

Note: Pages are 64KiB in WASM.

Source

fn stable_write(&self, offset: u64, buf: &[u8])

Writes data to the stable memory location specified by an offset.

Warning - this will panic if offset + buf.len() exceeds the current size of stable memory. Use stable_grow to request more stable memory if needed.

Source

fn stable_read(&self, offset: u64, buf: &mut [u8])

Reads data from the stable memory location specified by an offset.

Implementors§