pub trait IntoSystem<In: SystemInput, Out, Marker>: Sized {
type System: System<In = In, Out = Out>;
// Required method
fn into_system(this: Self) -> Self::System;
// Provided methods
fn pipe<B, BIn, BOut, MarkerB>(self, system: B) -> IntoPipeSystem<Self, B>
where Out: 'static,
B: IntoSystem<BIn, BOut, MarkerB>,
for<'a> BIn: SystemInput<Inner<'a> = Out> { ... }
fn map<T, F>(self, f: F) -> IntoAdapterSystem<F, Self>
where F: Send + Sync + 'static + FnMut(Out) -> T { ... }
fn system_type_id(&self) -> TypeId { ... }
}
Expand description
Required Associated Types§
Required Methods§
Sourcefn into_system(this: Self) -> Self::System
fn into_system(this: Self) -> Self::System
Turns this value into its corresponding System
.
Provided Methods§
Sourcefn pipe<B, BIn, BOut, MarkerB>(self, system: B) -> IntoPipeSystem<Self, B>where
Out: 'static,
B: IntoSystem<BIn, BOut, MarkerB>,
for<'a> BIn: SystemInput<Inner<'a> = Out>,
fn pipe<B, BIn, BOut, MarkerB>(self, system: B) -> IntoPipeSystem<Self, B>where
Out: 'static,
B: IntoSystem<BIn, BOut, MarkerB>,
for<'a> BIn: SystemInput<Inner<'a> = Out>,
Pass the output of this system A
into a second system B
, creating a new compound system.
The second system must have In<T>
as its first parameter,
where T
is the return type of the first system.
Sourcefn map<T, F>(self, f: F) -> IntoAdapterSystem<F, Self>
fn map<T, F>(self, f: F) -> IntoAdapterSystem<F, Self>
Pass the output of this system into the passed function f
, creating a new system that
outputs the value returned from the function.
// Ignores the output of a system that may fail.
schedule.add_systems(my_system.map(drop));
fn my_system(res: Res<T>) -> Result<(), Err> {
// ...
}
Sourcefn system_type_id(&self) -> TypeId
fn system_type_id(&self) -> TypeId
Get the TypeId
of the System
produced after calling into_system
.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.