[][src]Crate keeshond_datapack

keeshond_datapack lets you easily load resources for your game and cache them in memory, mapped via pathname and accessible by simple numeric ID lookup. Define how they load with the DataObject trait, by implementing a function that takes a Read + Seek object. Define where they load from by instantiating a source::Source.

Datapack is used by Keeshond but can work with any engine.

How to use

Pathnames are of the form path/to/file.png. They must match exactly, including the use of one forward slash as a separator, and no separators at the beginning or end. The package name and data type folders are not included (they are implied). Pathnames are also case-sensitive even on platforms with case-insensitive filesystems (Windows, macOS).

Modules

source

The Source trait and implementations.

Structs

DataStore

Storage that allows lookup and access of DataObjects of a given type

PreparedStore

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.

Enums

DataError

Return type when failing to load a DataObject from a DataStore

DataStoreOk

Return type when loading information from a DataStore

PreparedStoreError

Return type for when PreparedStore operations fail

Traits

DataObject

Represents a data item loaded from a package. Implement this trait to allow the system to load new types of data.

DataPreparer

Used with PreparedStore, this allows the definition of behavior when initializing resources with a backend. See PreparedStore for more information.

ReadSeek

A boxable trait that implements both Read and Seek, used by the source::Source types.

Type Definitions

DataId

A numeric ID used to refer to a DataObject of a specific type.