pub trait Storage: Sized {
// Required methods
fn output_is_unset(&self, cell: Cell, computation_id: u32) -> bool;
fn run_computation(
db: &DbHandle<'_, Self>,
cell: Cell,
computation_id: u32,
) -> bool;
}Expand description
The Storage trait is implemented on a type which can cache all of the computations
used in the program (or a subset of it). These types are typically composed of
several fields with each field implementing StorageFor<T> where T is one
computation type. Note that each computation type must be unique within a Storage type.
This trait is most often automatically implemented by impl_storage!, see the documentation
on that macro for usage details.
Note that during serialization, the entire Storage is serialized along with the Db object.
To achieve backwards-compatible serialization even when new fields for new computation types
are added, it is recommended to use #[serde(default)] on any newly-added fields to still
be able to deserialize from older versions without that field.
Required Methods§
Sourcefn output_is_unset(&self, cell: Cell, computation_id: u32) -> bool
fn output_is_unset(&self, cell: Cell, computation_id: u32) -> bool
For the computation type with the given computation id, return true if the output with the given Cell has not yet been set.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.