[][src]Crate v9

A data engine for Data Oriented Design. crate::v9 is a vastly simpler version of crate::v11.

Design

A Universe has the same shape as a HashMap<TypeId, Any>. A single instance of any type can be inserted into the universe. Changes can then be made by running a Kernel. A Kernel is any closure whose arguments all implement Extract. Extract indicates to the Universe what resources it needs, and does whatever is necessary to provide itself as an argument to the kernel.

This crate intentionally shares more fields that you might expect. It's hard to foresee all needs; hopefully you can do something useful with them.

Modules

column

Columns and their extractions.

event

Mechanisms for responding to events.

extract
id
kernel
linkage
lock

Low-level locking.

object
prelude
prelude_lib
prelude_macro
table
util

Macros

context

Extract many things at once.

table

Defines a table. This is the most important item in the crate!