ModelStorage
A ModelStorage trait that abstracts where the storage is.
Currently it’s only world storage, but this will be useful when we have other storage solutions (micro worlds).
Fully qualified path: dojo::model::storage::ModelStorage
pub trait ModelStorage<S, M>
Trait functions
write_model
Sets a model of type M.
Fully qualified path: dojo::model::storage::ModelStorage::write_model
fn write_model(ref self: S, model: @M)
write_models
Sets multiple models of type M.
Fully qualified path: dojo::model::storage::ModelStorage::write_models
fn write_models(ref self: S, models: Span<@M>)
read_model
Retrieves a model of type M using the provided key of type K.
Fully qualified path: dojo::model::storage::ModelStorage::read_model
fn read_model<K, +Drop<K>, +Serde<K>>(self: @S, keys: K) -> M
read_models
Retrieves multiple models of type M using the provided keys of type K.
Returnes an array to ensure the user can consume the models, even if the type is not
copiable.
Fully qualified path: dojo::model::storage::ModelStorage::read_models
fn read_models<K, +Drop<K>, +Serde<K>>(self: @S, keys: Span<K>) -> Array<M>
erase_model
Deletes a model of type M.
Fully qualified path: dojo::model::storage::ModelStorage::erase_model
fn erase_model(ref self: S, model: @M)
erase_models
Deletes multiple models of type M.
Fully qualified path: dojo::model::storage::ModelStorage::erase_models
fn erase_models(ref self: S, models: Span<@M>)
erase_model_ptr
Deletes a model of type M using the provided entity id.
The ptr is mostly used for type inferrence.
Fully qualified path: dojo::model::storage::ModelStorage::erase_model_ptr
fn erase_model_ptr(ref self: S, ptr: ModelPtr<M>)
erase_models_ptrs
Deletes a model of type M using the provided entity id.
The ptr is mostly used for type inferrence.
Fully qualified path: dojo::model::storage::ModelStorage::erase_models_ptrs
fn erase_models_ptrs(ref self: S, ptrs: Span<ModelPtr<M>>)
read_member
Retrieves a single member from a model.
Fully qualified path: dojo::model::storage::ModelStorage::read_member
fn read_member<T, +Serde<T>, +DojoStore<T>>(
self: @S, ptr: ModelPtr<M>, field_selector: felt252,
) -> T
read_member_of_models
Retrieves a single member from multiple models.
Fully qualified path: dojo::model::storage::ModelStorage::read_member_of_models
fn read_member_of_models<T, +Serde<T>, +DojoStore<T>, +Drop<T>>(
self: @S, ptrs: Span<ModelPtr<M>>, field_selector: felt252,
) -> Array<T>
write_member
Updates a member of a model.
Fully qualified path: dojo::model::storage::ModelStorage::write_member
fn write_member<T, +Serde<T>, +DojoStore<T>, +Drop<T>>(
ref self: S, ptr: ModelPtr<M>, field_selector: felt252, value: T,
)
write_member_of_models
Updates a member of multiple models.
Fully qualified path: dojo::model::storage::ModelStorage::write_member_of_models
fn write_member_of_models<T, +Serde<T>, +DojoStore<T>, +Drop<T>>(
ref self: S, ptrs: Span<ModelPtr<M>>, field_selector: felt252, values: Span<T>,
)
read_schema
Retrieves a subset of members in a model, matching a defined schema .
Fully qualified path: dojo::model::storage::ModelStorage::read_schema
fn read_schema<T, +Serde<T>, +DojoStore<T>, +Introspect<T>>(self: @S, ptr: ModelPtr<M>) -> T
read_schemas
Retrieves part of multiple models, matching a schema.
Fully qualified path: dojo::model::storage::ModelStorage::read_schemas
fn read_schemas<T, +Drop<T>, +Serde<T>, +DojoStore<T>, +Introspect<T>>(
self: @S, ptrs: Span<ModelPtr<M>>,
) -> Array<T>
read_member_legacy
— legacy functions — due to the fact that the generic type T of original functions have to be constrained to Serde and DojoStore and legacy model inner structs do not implement DojoStore. Retrieves a single member from a model.
Fully qualified path: dojo::model::storage::ModelStorage::read_member_legacy
fn read_member_legacy<T, +Serde<T>>(self: @S, ptr: ModelPtr<M>, field_selector: felt252) -> T
read_member_of_models_legacy
Retrieves a single member from multiple models.
Fully qualified path: dojo::model::storage::ModelStorage::read_member_of_models_legacy
fn read_member_of_models_legacy<T, +Serde<T>, +Drop<T>>(
self: @S, ptrs: Span<ModelPtr<M>>, field_selector: felt252,
) -> Array<T>
write_member_legacy
Updates a member of a model.
Fully qualified path: dojo::model::storage::ModelStorage::write_member_legacy
fn write_member_legacy<T, +Serde<T>, +Drop<T>>(
ref self: S, ptr: ModelPtr<M>, field_selector: felt252, value: T,
)
write_member_of_models_legacy
Updates a member of multiple models.
Fully qualified path: dojo::model::storage::ModelStorage::write_member_of_models_legacy
fn write_member_of_models_legacy<T, +Serde<T>, +Drop<T>>(
ref self: S, ptrs: Span<ModelPtr<M>>, field_selector: felt252, values: Span<T>,
)
read_schema_legacy
Retrieves a subset of members in a model, matching a defined schema .
Fully qualified path: dojo::model::storage::ModelStorage::read_schema_legacy
fn read_schema_legacy<T, +Serde<T>, +Introspect<T>>(self: @S, ptr: ModelPtr<M>) -> T
read_schemas_legacy
Retrieves part of multiple models, matching a schema.
Fully qualified path: dojo::model::storage::ModelStorage::read_schemas_legacy
fn read_schemas_legacy<T, +Drop<T>, +Serde<T>, +Introspect<T>>(
self: @S, ptrs: Span<ModelPtr<M>>,
) -> Array<T>
namespace_hash
Returns the current namespace hash.
Fully qualified path: dojo::model::storage::ModelStorage::namespace_hash
fn namespace_hash(self: @S) -> felt252