bevy_ecs::system

Trait SystemParamFunction

Source
pub trait SystemParamFunction<Marker>:
    Send
    + Sync
    + 'static {
    type In: SystemInput;
    type Out;
    type Param: SystemParam;

    // Required method
    fn run(
        &mut self,
        input: <Self::In as SystemInput>::Inner<'_>,
        param_value: SystemParamItem<'_, '_, Self::Param>,
    ) -> Self::Out;
}
Expand description

A trait implemented for all functions that can be used as Systems.

This trait can be useful for making your own systems which accept other systems, sometimes called higher order systems.

This should be used in combination with ParamSet when calling other systems within your system. Using ParamSet in this case avoids SystemParam collisions.

§Example

To create something like PipeSystem, but in entirely safe code.

use std::num::ParseIntError;

use bevy_ecs::prelude::*;
use bevy_ecs::system::StaticSystemInput;

/// Pipe creates a new system which calls `a`, then calls `b` with the output of `a`
pub fn pipe<A, B, AMarker, BMarker>(
    mut a: A,
    mut b: B,
) -> impl FnMut(StaticSystemInput<A::In>, ParamSet<(A::Param, B::Param)>) -> B::Out
where
    // We need A and B to be systems, add those bounds
    A: SystemParamFunction<AMarker>,
    B: SystemParamFunction<BMarker>,
    for<'a> B::In: SystemInput<Inner<'a> = A::Out>,
{
    // The type of `params` is inferred based on the return of this function above
    move |StaticSystemInput(a_in), mut params| {
        let shared = a.run(a_in, params.p0());
        b.run(shared, params.p1())
    }
}

// Usage example for `pipe`:
fn main() {
    let mut world = World::default();
    world.insert_resource(Message("42".to_string()));

    // pipe the `parse_message_system`'s output into the `filter_system`s input
    let mut piped_system = IntoSystem::into_system(pipe(parse_message, filter));
    piped_system.initialize(&mut world);
    assert_eq!(piped_system.run((), &mut world), Some(42));
}

#[derive(Resource)]
struct Message(String);

fn parse_message(message: Res<Message>) -> Result<usize, ParseIntError> {
    message.0.parse::<usize>()
}

fn filter(In(result): In<Result<usize, ParseIntError>>) -> Option<usize> {
    result.ok().filter(|&n| n < 100)
}

Required Associated Types§

Source

type In: SystemInput

The input type of this system. See System::In.

Source

type Out

The return type of this system. See System::Out.

Source

type Param: SystemParam

The SystemParam/s used by this system to access the World.

Required Methods§

Source

fn run( &mut self, input: <Self::In as SystemInput>::Inner<'_>, param_value: SystemParamItem<'_, '_, Self::Param>, ) -> Self::Out

Executes this system once. See System::run or System::run_unsafe.

Implementors§

Source§

impl<In, Out, Func> SystemParamFunction<(HasSystemInput, fn(_: In) -> Out)> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(In) -> Out + FnMut(In::Param<'_>) -> Out, In: SystemInput + 'static, Out: 'static,

Source§

type In = In

Source§

type Out = Out

Source§

type Param = ()

Source§

impl<In, Out, Func, F0: SystemParam> SystemParamFunction<(HasSystemInput, fn(_: In, _: F0) -> Out)> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(In, F0) -> Out + FnMut(In::Param<'_>, SystemParamItem<'_, '_, F0>) -> Out, In: SystemInput + 'static, Out: 'static,

Source§

type In = In

Source§

type Out = Out

Source§

type Param = (F0,)

Source§

impl<In, Out, Func, F0: SystemParam, F1: SystemParam> SystemParamFunction<(HasSystemInput, fn(_: In, _: F0, _: F1) -> Out)> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(In, F0, F1) -> Out + FnMut(In::Param<'_>, SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>) -> Out, In: SystemInput + 'static, Out: 'static,

Source§

type In = In

Source§

type Out = Out

Source§

type Param = (F0, F1)

Source§

impl<In, Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam> SystemParamFunction<(HasSystemInput, fn(_: In, _: F0, _: F1, _: F2) -> Out)> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(In, F0, F1, F2) -> Out + FnMut(In::Param<'_>, SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>) -> Out, In: SystemInput + 'static, Out: 'static,

Source§

impl<In, Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam> SystemParamFunction<(HasSystemInput, fn(_: In, _: F0, _: F1, _: F2, _: F3) -> Out)> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(In, F0, F1, F2, F3) -> Out + FnMut(In::Param<'_>, SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>) -> Out, In: SystemInput + 'static, Out: 'static,

Source§

impl<In, Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam> SystemParamFunction<(HasSystemInput, fn(_: In, _: F0, _: F1, _: F2, _: F3, _: F4) -> Out)> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(In, F0, F1, F2, F3, F4) -> Out + FnMut(In::Param<'_>, SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>) -> Out, In: SystemInput + 'static, Out: 'static,

Source§

impl<In, Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam> SystemParamFunction<(HasSystemInput, fn(_: In, _: F0, _: F1, _: F2, _: F3, _: F4, _: F5) -> Out)> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(In, F0, F1, F2, F3, F4, F5) -> Out + FnMut(In::Param<'_>, SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>) -> Out, In: SystemInput + 'static, Out: 'static,

Source§

impl<In, Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam> SystemParamFunction<(HasSystemInput, fn(_: In, _: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6) -> Out)> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(In, F0, F1, F2, F3, F4, F5, F6) -> Out + FnMut(In::Param<'_>, SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>) -> Out, In: SystemInput + 'static, Out: 'static,

Source§

impl<In, Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam> SystemParamFunction<(HasSystemInput, fn(_: In, _: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7) -> Out)> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(In, F0, F1, F2, F3, F4, F5, F6, F7) -> Out + FnMut(In::Param<'_>, SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>) -> Out, In: SystemInput + 'static, Out: 'static,

Source§

impl<In, Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam, F8: SystemParam> SystemParamFunction<(HasSystemInput, fn(_: In, _: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7, _: F8) -> Out)> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(In, F0, F1, F2, F3, F4, F5, F6, F7, F8) -> Out + FnMut(In::Param<'_>, SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>, SystemParamItem<'_, '_, F8>) -> Out, In: SystemInput + 'static, Out: 'static,

Source§

impl<In, Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam, F8: SystemParam, F9: SystemParam> SystemParamFunction<(HasSystemInput, fn(_: In, _: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7, _: F8, _: F9) -> Out)> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(In, F0, F1, F2, F3, F4, F5, F6, F7, F8, F9) -> Out + FnMut(In::Param<'_>, SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>, SystemParamItem<'_, '_, F8>, SystemParamItem<'_, '_, F9>) -> Out, In: SystemInput + 'static, Out: 'static,

Source§

impl<In, Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam, F8: SystemParam, F9: SystemParam, F10: SystemParam> SystemParamFunction<(HasSystemInput, fn(_: In, _: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7, _: F8, _: F9, _: F10) -> Out)> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(In, F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10) -> Out + FnMut(In::Param<'_>, SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>, SystemParamItem<'_, '_, F8>, SystemParamItem<'_, '_, F9>, SystemParamItem<'_, '_, F10>) -> Out, In: SystemInput + 'static, Out: 'static,

Source§

impl<In, Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam, F8: SystemParam, F9: SystemParam, F10: SystemParam, F11: SystemParam> SystemParamFunction<(HasSystemInput, fn(_: In, _: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7, _: F8, _: F9, _: F10, _: F11) -> Out)> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(In, F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11) -> Out + FnMut(In::Param<'_>, SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>, SystemParamItem<'_, '_, F8>, SystemParamItem<'_, '_, F9>, SystemParamItem<'_, '_, F10>, SystemParamItem<'_, '_, F11>) -> Out, In: SystemInput + 'static, Out: 'static,

Source§

impl<In, Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam, F8: SystemParam, F9: SystemParam, F10: SystemParam, F11: SystemParam, F12: SystemParam> SystemParamFunction<(HasSystemInput, fn(_: In, _: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7, _: F8, _: F9, _: F10, _: F11, _: F12) -> Out)> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(In, F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12) -> Out + FnMut(In::Param<'_>, SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>, SystemParamItem<'_, '_, F8>, SystemParamItem<'_, '_, F9>, SystemParamItem<'_, '_, F10>, SystemParamItem<'_, '_, F11>, SystemParamItem<'_, '_, F12>) -> Out, In: SystemInput + 'static, Out: 'static,

Source§

impl<In, Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam, F8: SystemParam, F9: SystemParam, F10: SystemParam, F11: SystemParam, F12: SystemParam, F13: SystemParam> SystemParamFunction<(HasSystemInput, fn(_: In, _: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7, _: F8, _: F9, _: F10, _: F11, _: F12, _: F13) -> Out)> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(In, F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13) -> Out + FnMut(In::Param<'_>, SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>, SystemParamItem<'_, '_, F8>, SystemParamItem<'_, '_, F9>, SystemParamItem<'_, '_, F10>, SystemParamItem<'_, '_, F11>, SystemParamItem<'_, '_, F12>, SystemParamItem<'_, '_, F13>) -> Out, In: SystemInput + 'static, Out: 'static,

Source§

impl<In, Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam, F8: SystemParam, F9: SystemParam, F10: SystemParam, F11: SystemParam, F12: SystemParam, F13: SystemParam, F14: SystemParam> SystemParamFunction<(HasSystemInput, fn(_: In, _: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7, _: F8, _: F9, _: F10, _: F11, _: F12, _: F13, _: F14) -> Out)> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(In, F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14) -> Out + FnMut(In::Param<'_>, SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>, SystemParamItem<'_, '_, F8>, SystemParamItem<'_, '_, F9>, SystemParamItem<'_, '_, F10>, SystemParamItem<'_, '_, F11>, SystemParamItem<'_, '_, F12>, SystemParamItem<'_, '_, F13>, SystemParamItem<'_, '_, F14>) -> Out, In: SystemInput + 'static, Out: 'static,

Source§

impl<In, Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam, F8: SystemParam, F9: SystemParam, F10: SystemParam, F11: SystemParam, F12: SystemParam, F13: SystemParam, F14: SystemParam, F15: SystemParam> SystemParamFunction<(HasSystemInput, fn(_: In, _: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7, _: F8, _: F9, _: F10, _: F11, _: F12, _: F13, _: F14, _: F15) -> Out)> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(In, F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15) -> Out + FnMut(In::Param<'_>, SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>, SystemParamItem<'_, '_, F8>, SystemParamItem<'_, '_, F9>, SystemParamItem<'_, '_, F10>, SystemParamItem<'_, '_, F11>, SystemParamItem<'_, '_, F12>, SystemParamItem<'_, '_, F13>, SystemParamItem<'_, '_, F14>, SystemParamItem<'_, '_, F15>) -> Out, In: SystemInput + 'static, Out: 'static,

Source§

impl<Out, Func> SystemParamFunction<fn() -> Out> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut() -> Out, Out: 'static,

Source§

type In = ()

Source§

type Out = Out

Source§

type Param = ()

Source§

impl<Out, Func, F0: SystemParam> SystemParamFunction<fn(_: F0) -> Out> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(F0) -> Out + FnMut(SystemParamItem<'_, '_, F0>) -> Out, Out: 'static,

Source§

impl<Out, Func, F0: SystemParam, F1: SystemParam> SystemParamFunction<fn(_: F0, _: F1) -> Out> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(F0, F1) -> Out + FnMut(SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>) -> Out, Out: 'static,

Source§

impl<Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam> SystemParamFunction<fn(_: F0, _: F1, _: F2) -> Out> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(F0, F1, F2) -> Out + FnMut(SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>) -> Out, Out: 'static,

Source§

impl<Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam> SystemParamFunction<fn(_: F0, _: F1, _: F2, _: F3) -> Out> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(F0, F1, F2, F3) -> Out + FnMut(SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>) -> Out, Out: 'static,

Source§

impl<Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam> SystemParamFunction<fn(_: F0, _: F1, _: F2, _: F3, _: F4) -> Out> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(F0, F1, F2, F3, F4) -> Out + FnMut(SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>) -> Out, Out: 'static,

Source§

impl<Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam> SystemParamFunction<fn(_: F0, _: F1, _: F2, _: F3, _: F4, _: F5) -> Out> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(F0, F1, F2, F3, F4, F5) -> Out + FnMut(SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>) -> Out, Out: 'static,

Source§

impl<Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam> SystemParamFunction<fn(_: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6) -> Out> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(F0, F1, F2, F3, F4, F5, F6) -> Out + FnMut(SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>) -> Out, Out: 'static,

Source§

impl<Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam> SystemParamFunction<fn(_: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7) -> Out> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(F0, F1, F2, F3, F4, F5, F6, F7) -> Out + FnMut(SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>) -> Out, Out: 'static,

Source§

impl<Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam, F8: SystemParam> SystemParamFunction<fn(_: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7, _: F8) -> Out> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(F0, F1, F2, F3, F4, F5, F6, F7, F8) -> Out + FnMut(SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>, SystemParamItem<'_, '_, F8>) -> Out, Out: 'static,

Source§

impl<Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam, F8: SystemParam, F9: SystemParam> SystemParamFunction<fn(_: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7, _: F8, _: F9) -> Out> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9) -> Out + FnMut(SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>, SystemParamItem<'_, '_, F8>, SystemParamItem<'_, '_, F9>) -> Out, Out: 'static,

Source§

impl<Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam, F8: SystemParam, F9: SystemParam, F10: SystemParam> SystemParamFunction<fn(_: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7, _: F8, _: F9, _: F10) -> Out> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10) -> Out + FnMut(SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>, SystemParamItem<'_, '_, F8>, SystemParamItem<'_, '_, F9>, SystemParamItem<'_, '_, F10>) -> Out, Out: 'static,

Source§

impl<Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam, F8: SystemParam, F9: SystemParam, F10: SystemParam, F11: SystemParam> SystemParamFunction<fn(_: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7, _: F8, _: F9, _: F10, _: F11) -> Out> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11) -> Out + FnMut(SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>, SystemParamItem<'_, '_, F8>, SystemParamItem<'_, '_, F9>, SystemParamItem<'_, '_, F10>, SystemParamItem<'_, '_, F11>) -> Out, Out: 'static,

Source§

impl<Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam, F8: SystemParam, F9: SystemParam, F10: SystemParam, F11: SystemParam, F12: SystemParam> SystemParamFunction<fn(_: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7, _: F8, _: F9, _: F10, _: F11, _: F12) -> Out> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12) -> Out + FnMut(SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>, SystemParamItem<'_, '_, F8>, SystemParamItem<'_, '_, F9>, SystemParamItem<'_, '_, F10>, SystemParamItem<'_, '_, F11>, SystemParamItem<'_, '_, F12>) -> Out, Out: 'static,

Source§

impl<Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam, F8: SystemParam, F9: SystemParam, F10: SystemParam, F11: SystemParam, F12: SystemParam, F13: SystemParam> SystemParamFunction<fn(_: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7, _: F8, _: F9, _: F10, _: F11, _: F12, _: F13) -> Out> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13) -> Out + FnMut(SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>, SystemParamItem<'_, '_, F8>, SystemParamItem<'_, '_, F9>, SystemParamItem<'_, '_, F10>, SystemParamItem<'_, '_, F11>, SystemParamItem<'_, '_, F12>, SystemParamItem<'_, '_, F13>) -> Out, Out: 'static,

Source§

impl<Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam, F8: SystemParam, F9: SystemParam, F10: SystemParam, F11: SystemParam, F12: SystemParam, F13: SystemParam, F14: SystemParam> SystemParamFunction<fn(_: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7, _: F8, _: F9, _: F10, _: F11, _: F12, _: F13, _: F14) -> Out> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14) -> Out + FnMut(SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>, SystemParamItem<'_, '_, F8>, SystemParamItem<'_, '_, F9>, SystemParamItem<'_, '_, F10>, SystemParamItem<'_, '_, F11>, SystemParamItem<'_, '_, F12>, SystemParamItem<'_, '_, F13>, SystemParamItem<'_, '_, F14>) -> Out, Out: 'static,

Source§

impl<Out, Func, F0: SystemParam, F1: SystemParam, F2: SystemParam, F3: SystemParam, F4: SystemParam, F5: SystemParam, F6: SystemParam, F7: SystemParam, F8: SystemParam, F9: SystemParam, F10: SystemParam, F11: SystemParam, F12: SystemParam, F13: SystemParam, F14: SystemParam, F15: SystemParam> SystemParamFunction<fn(_: F0, _: F1, _: F2, _: F3, _: F4, _: F5, _: F6, _: F7, _: F8, _: F9, _: F10, _: F11, _: F12, _: F13, _: F14, _: F15) -> Out> for Func
where Func: Send + Sync + 'static, for<'a> &'a mut Func: FnMut(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15) -> Out + FnMut(SystemParamItem<'_, '_, F0>, SystemParamItem<'_, '_, F1>, SystemParamItem<'_, '_, F2>, SystemParamItem<'_, '_, F3>, SystemParamItem<'_, '_, F4>, SystemParamItem<'_, '_, F5>, SystemParamItem<'_, '_, F6>, SystemParamItem<'_, '_, F7>, SystemParamItem<'_, '_, F8>, SystemParamItem<'_, '_, F9>, SystemParamItem<'_, '_, F10>, SystemParamItem<'_, '_, F11>, SystemParamItem<'_, '_, F12>, SystemParamItem<'_, '_, F13>, SystemParamItem<'_, '_, F14>, SystemParamItem<'_, '_, F15>) -> Out, Out: 'static,