pub struct In<T>(pub T);
Expand description
A SystemInput
type which denotes that a System
receives
an input value of type T
from its caller.
System
s may take an optional input which they require to be passed to them when they
are being run
. For FunctionSystem
s the input may be marked
with this In
type, but only the first param of a function may be tagged as an input. This also
means a system can only have one or zero input parameters.
§Examples
Here is a simple example of a system that takes a usize
and returns the square of it.
fn square(In(input): In<usize>) -> usize {
input * input
}
let mut world = World::new();
let mut square_system = IntoSystem::into_system(square);
square_system.initialize(&mut world);
assert_eq!(square_system.run(12, &mut world), 144);
Tuple Fields§
§0: T
Trait Implementations§
Source§impl<T: 'static> SystemInput for In<T>
impl<T: 'static> SystemInput for In<T>
Source§type Param<'i> = In<T>
type Param<'i> = In<T>
The wrapper input type that is defined as the first argument to
FunctionSystem
s.Source§type Inner<'i> = T
type Inner<'i> = T
The inner input type that is passed to functions that run systems,
such as
System::run
.Source§fn wrap(this: Self::Inner<'_>) -> Self::Param<'_>
fn wrap(this: Self::Inner<'_>) -> Self::Param<'_>
Converts a
SystemInput::Inner
into a SystemInput::Param
.Auto Trait Implementations§
impl<T> Freeze for In<T>where
T: Freeze,
impl<T> RefUnwindSafe for In<T>where
T: RefUnwindSafe,
impl<T> Send for In<T>where
T: Send,
impl<T> Sync for In<T>where
T: Sync,
impl<T> Unpin for In<T>where
T: Unpin,
impl<T> UnwindSafe for In<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.