pub enum SystemHandleTemplate<I: SystemInput + 'static = (), O: 'static = ()> {
Handle(SystemHandle<I, O>),
Value(SystemHandleValue<I, O>),
}Expand description
A Template that produces a SystemHandle.
Variants§
Handle(SystemHandle<I, O>)
Creates a SystemHandle by cloning the given SystemHandle value.
Value(SystemHandleValue<I, O>)
Creates a SystemHandle by registering the given system value using
World::register_tracked_boxed_system. This will cache the resulting
SystemHandle
on the template and reuse it for future template builds.
This should generally be constructed using SystemHandleTemplate::value
or system_value.
Implementations§
Source§impl<I: SystemInput + 'static, O: 'static> SystemHandleTemplate<I, O>
impl<I: SystemInput + 'static, O: 'static> SystemHandleTemplate<I, O>
Sourcepub fn value<M>(system: impl IntoSystem<I, O, M>) -> Self
pub fn value<M>(system: impl IntoSystem<I, O, M>) -> Self
This will create a new SystemHandleTemplate for the given system value.
This makes it possible to define systems “inline” in templates / scenes
that produce a SystemId.
Trait Implementations§
Source§impl<I: SystemInput + 'static, O: 'static> Default for SystemHandleTemplate<I, O>
impl<I: SystemInput + 'static, O: 'static> Default for SystemHandleTemplate<I, O>
Source§impl<I: SystemInput + 'static, O: 'static> From<Box<dyn System<In = I, Out = O>>> for SystemHandleTemplate<I, O>
impl<I: SystemInput + 'static, O: 'static> From<Box<dyn System<In = I, Out = O>>> for SystemHandleTemplate<I, O>
Source§fn from(system: BoxedSystem<I, O>) -> Self
fn from(system: BoxedSystem<I, O>) -> Self
Converts to this type from the input type.
Source§impl<I: SystemInput + 'static, O: 'static> From<SystemHandle<I, O>> for SystemHandleTemplate<I, O>
impl<I: SystemInput + 'static, O: 'static> From<SystemHandle<I, O>> for SystemHandleTemplate<I, O>
Source§fn from(handle: SystemHandle<I, O>) -> Self
fn from(handle: SystemHandle<I, O>) -> Self
Converts to this type from the input type.
Source§impl<I: SystemInput + 'static, O: 'static> From<SystemId<I, O>> for SystemHandleTemplate<I, O>
impl<I: SystemInput + 'static, O: 'static> From<SystemId<I, O>> for SystemHandleTemplate<I, O>
Source§impl<I: SystemInput + 'static, O: 'static> Template for SystemHandleTemplate<I, O>
impl<I: SystemInput + 'static, O: 'static> Template for SystemHandleTemplate<I, O>
Source§type Output = SystemHandle<I, O>
type Output = SystemHandle<I, O>
The type of value produced by this
Template.Source§fn build_template(
&self,
context: &mut TemplateContext<'_, '_>,
) -> Result<Self::Output>
fn build_template( &self, context: &mut TemplateContext<'_, '_>, ) -> Result<Self::Output>
Uses this template and the given
entity context to produce a Template::Output.Source§fn clone_template(&self) -> Self
fn clone_template(&self) -> Self
Clones this template. See
Clone.Auto Trait Implementations§
impl<I, O> Freeze for SystemHandleTemplate<I, O>
impl<I, O> RefUnwindSafe for SystemHandleTemplate<I, O>
impl<I, O> Send for SystemHandleTemplate<I, O>
impl<I, O> Sync for SystemHandleTemplate<I, O>
impl<I, O> Unpin for SystemHandleTemplate<I, O>
impl<I, O> UnsafeUnpin for SystemHandleTemplate<I, O>
impl<I, O> UnwindSafe for SystemHandleTemplate<I, O>
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>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn 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>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which 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)
Converts
&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)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
Source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self using default().
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
Source§fn into_result(self) -> Result<T, RunSystemError>
fn into_result(self) -> Result<T, RunSystemError>
Converts this type into the system output type.