Struct keeshond_datapack::PreparedStore[][src]

pub struct PreparedStore<T: DataObject + 'static, U> { /* fields omitted */ }
Expand description

An optional companion to a DataStore. If you have data that needs initialization with a backend (for example, textures you need to upload to a GPU), PreparedStore provides a way to handle this in a two-step process that is borrow-checker-friendly.

Template parameter T is the type of the source DataObject, and template parameter U is the prepared data. This system allows you to separate logical, backend-agnostic data from backend-specific resources. For graphics, you might use T to represent the raw image data and metadata such as width and height, and use U to represent a handle to the texture in VRAM.

In order to function, you should call PreparedStore::sync() once per frame before needing to use the resources in question in your backend. This will “prepare” or “unprepare” any resources as needed.

The PreparedStore instance must be associated with a DataStore. Only one PreparedStore can be associated with any given DataStore.

Implementations

Creates a new PreparedStore that holds prepared versions U of DataObjects T, and associates with the given DataStore.

Returns a reference to the prepared data by the given DataId, if one exists. Otherwise returns None.

Returns a mutable reference to the prepared data by the given DataId, if one exists. Otherwise returns None.

Synchronizes this store with the associated DataStore. If any DataObjects were recently loaded, they will be prepared by calling DataPreparer::prepare(). If any were recently unloaded, they will be “unprepared” (unloaded from the backend) by calling DataPreparer::unprepare().

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.