Trait ic_cdk::api::stable::StableMemory
source · pub trait StableMemory {
// Required methods
fn stable_size(&self) -> u32;
fn stable64_size(&self) -> u64;
fn stable_grow(&self, new_pages: u32) -> Result<u32, StableMemoryError>;
fn stable64_grow(&self, new_pages: u64) -> Result<u64, StableMemoryError>;
fn stable_write(&self, offset: u32, buf: &[u8]);
fn stable64_write(&self, offset: u64, buf: &[u8]);
fn stable_read(&self, offset: u32, buf: &mut [u8]);
fn stable64_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) -> u32
fn stable_size(&self) -> u32
Gets current size of the stable memory (in WASM pages).
sourcefn stable64_size(&self) -> u64
fn stable64_size(&self) -> u64
Similar to stable_size
but with support for 64-bit addressed memory.
sourcefn stable_grow(&self, new_pages: u32) -> Result<u32, StableMemoryError>
fn stable_grow(&self, new_pages: u32) -> Result<u32, 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 stable64_grow(&self, new_pages: u64) -> Result<u64, StableMemoryError>
fn stable64_grow(&self, new_pages: u64) -> Result<u64, StableMemoryError>
Similar to stable_grow
but with support for 64-bit addressed memory.
sourcefn stable_write(&self, offset: u32, buf: &[u8])
fn stable_write(&self, offset: u32, 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 stable64_write(&self, offset: u64, buf: &[u8])
fn stable64_write(&self, offset: u64, buf: &[u8])
Similar to stable_write
but with support for 64-bit addressed memory.
sourcefn stable_read(&self, offset: u32, buf: &mut [u8])
fn stable_read(&self, offset: u32, buf: &mut [u8])
Reads data from the stable memory location specified by an offset.
sourcefn stable64_read(&self, offset: u64, buf: &mut [u8])
fn stable64_read(&self, offset: u64, buf: &mut [u8])
Similar to stable_read
but with support for 64-bit addressed memory.