Skip to main content

DataSystemRegistration

Struct DataSystemRegistration 

Source
pub struct DataSystemRegistration {
    pub name: &'static str,
    pub phase: TickPhase,
    pub run: fn(&mut World, &Runtime, &mut OutputDeck),
    pub order_hint: i32,
    pub runs_after: &'static [&'static str],
}
Expand description

Registration entry for a [DataSystem].

One entry per system, submitted via inventory::submit! at link time. The dispatcher in khora-control discovers all entries, groups them by TickPhase, topologically sorts within a phase using runs_after (with order_hint as tie-breaker), and invokes them sequentially.

Fields§

§name: &'static str

Stable identifier — used for runs_after references and telemetry.

§phase: TickPhase

Phase this system belongs to.

§run: fn(&mut World, &Runtime, &mut OutputDeck)

The function to invoke on (&mut World, &Runtime, &mut OutputDeck).

  • The Runtime bundle lets a system fetch typed services / backends / resources it needs (EcsMaintenance, GraphicsDevice, …).
  • The OutputDeck is the per-tick typed deck the lanes wrote into during the CLAD descent. Maintenance-phase systems use deck.take::<MyWriteback>() to drain typed writeback slots and apply them to ECS components. Pre-scheduler phases receive an empty (transient) deck — systems that don’t need it just ignore the third arg.
§order_hint: i32

Tie-breaker used to order systems within a phase when no explicit runs_after ordering applies. Lower runs first. Default 0.

§runs_after: &'static [&'static str]

Names of systems within the same phase that must run before this one. Used to topologically sort the phase. Empty by default.

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AppLifecycle for T
where T: ?Sized,

§

fn on_start(&mut self, ctx: &mut dyn AppContext)

Called once after the backend is up but before the first update. Apps install their theme / fonts here.
§

fn on_exit(&mut self)

Called once when the window is closing. Persist state here.
§

impl<T> AsAny for T
where T: Any,

§

fn as_any(&self) -> &(dyn Any + 'static)

Returns a reference to the inner value as &dyn Any.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.