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§
Sourcefn stable_size(&self) -> u64
fn stable_size(&self) -> u64
Gets current size of the stable memory (in WASM pages).
Sourcefn stable_grow(&self, new_pages: u64) -> Result<u64, StableMemoryError>
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.
Sourcefn stable_write(&self, offset: u64, buf: &[u8])
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.
Sourcefn stable_read(&self, offset: u64, buf: &mut [u8])
fn stable_read(&self, offset: u64, buf: &mut [u8])
Reads data from the stable memory location specified by an offset.