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]);
}
๐Ÿ‘ŽDeprecated since 0.18.0: The api::stable module has been moved to stable (crate root).
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

๐Ÿ‘ŽDeprecated since 0.18.0: The api::stable module has been moved to stable (crate root).

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

Source

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

๐Ÿ‘ŽDeprecated since 0.18.0: The api::stable module has been moved to stable (crate root).

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])

๐Ÿ‘ŽDeprecated since 0.18.0: The api::stable module has been moved to stable (crate root).

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])

๐Ÿ‘ŽDeprecated since 0.18.0: The api::stable module has been moved to stable (crate root).

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

Implementorsยง