Skip to main content

StableCell

Struct StableCell 

Source
pub struct StableCell<T: Storable, M: Memory = DefaultMemoryImpl> { /* private fields */ }
Expand description

StableCell

A cached, checksummed value persisted in an exclusively leased allocation. Loading is read-only and requires a caller-selected payload byte ceiling.

Implementations§

Source§

impl<T: Storable, M: Memory> StableCell<T, M>

Source

pub fn create( memory: RuntimeMemory<M>, value: T, ) -> Result<Self, CollectionError>

Create in empty memory, admitting encoding and bounds before writes.

§Errors

Rejects nonempty memory, invalid encoding/bounds or capacity refusal before writing.

Source

pub fn reset( memory: RuntimeMemory<M>, value: T, ) -> Result<Self, CollectionError>

Explicitly replace contents. Backing failures retain host rollback semantics.

§Errors

Rejects invalid encoding/bounds or capacity refusal before replacing contents.

Source

pub fn load( memory: RuntimeMemory<M>, maximum: usize, ) -> Result<Self, CollectionError>

Load without writing. Admit the smaller of maximum and the codec bound before allocating, then verify integrity before decoding application data.

§Errors

Rejects foreign, corrupt or oversized records and incompatible codec bounds.

§Panics

Propagates backing panics or a faulty caller codec; no native rollback is provided.

Source

pub const fn get(&self) -> &T

Borrow the cached value without IO or decoding.

Source

pub fn set(&mut self, value: T) -> Result<T, CollectionError>

Persist a replacement and return the old value. Admission and growth refusal preserve existing bytes. Native interrupted writes are not atomic.

§Errors

Rejects invalid indices, encoding, bounds or capacity refusal before writes.

Auto Trait Implementations§

§

impl<T, M = Rc<RefCell<Vec<u8>>>> !RefUnwindSafe for StableCell<T, M>

§

impl<T, M = Rc<RefCell<Vec<u8>>>> !Send for StableCell<T, M>

§

impl<T, M = Rc<RefCell<Vec<u8>>>> !Sync for StableCell<T, M>

§

impl<T, M = Rc<RefCell<Vec<u8>>>> !UnwindSafe for StableCell<T, M>

§

impl<T, M> Freeze for StableCell<T, M>
where RuntimeMemory<M>: Freeze, T: Freeze,

§

impl<T, M> Unpin for StableCell<T, M>
where RuntimeMemory<M>: Unpin, T: Unpin,

§

impl<T, M> UnsafeUnpin for StableCell<T, M>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.