Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

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