Skip to main content

define_systems

Macro define_systems 

Source
macro_rules! define_systems {
    ( before_init: $before_init:path,
      prepare_events: $prepare_events:path,
      $( $name:ident => $behavior:path {
            gate: $gate:path,
            present_when: $present_when:literal,
            after: [ $( $after:ident ),* $(,)? ],
            before: [ $( $before:ident ),* $(,)? ] $(,)?
        } ),* $(,)? ) => { ... };
}
Expand description

The system table. Generates the SYSTEMS table a world starts from; table order is run order.

The two leading fields are the load-time passes that bracket the systems: one that runs over the world once the gates have built them and before their init, and one that pre-creates the event queues a scheduled system’s declared access can touch.

Every system is internal: it has no declarable asset, is never parsed from a world or written to a blob, and is constructed by its gate from world content. Each entry maps a name to the behavior type that implements System, the gate that builds it, and a human-readable gate description; the entry name doubles as the system’s stable display name for profiling and logging.