pub trait IntoSystem<Params> {
type System: System + 'static;
// Required method
fn into_system(self, registry: &Registry) -> Self::System;
}Expand description
Converts a plain function into a System.
The function signature is fn(params...) -> bool — no event parameter.
Parameters are resolved from a Registry at conversion time.
§Closures vs named functions
Zero-parameter systems (fn() -> bool) accept closures. For
parameterized systems (one or more Param arguments), Rust’s
HRTB + GAT inference fails on closures — use named functions.
Same limitation as IntoHandler.
§Examples
use nexus_rt::{WorldBuilder, Res, ResMut, IntoSystem, System};
fn reconcile(val: Res<u64>, mut flag: ResMut<bool>) -> bool {
if *val > 10 {
*flag = true;
true
} else {
false
}
}
let mut builder = WorldBuilder::new();
builder.register::<u64>(42);
builder.register::<bool>(false);
let mut world = builder.build();
let mut sys = reconcile.into_system(world.registry());
assert!(sys.run(&mut world));
assert!(*world.resource::<bool>());§Panics
Panics if any Param resource is not registered in
the Registry.
Required Associated Types§
Required Methods§
Sourcefn into_system(self, registry: &Registry) -> Self::System
fn into_system(self, registry: &Registry) -> Self::System
Convert this function into a system, resolving parameters from the registry.