pub struct ButtonInput<T: Clone + Eq + Hash + Send + Sync + 'static> { /* private fields */ }Expand description
A “press-able” input of type T.
§Usage
This type can be used as a resource to keep the current state of an input, by reacting to events from the input. For a given input value:
ButtonInput::pressedwill returntruebetween a press and a release event.ButtonInput::just_pressedwill returntruefor one frame after a press event.ButtonInput::just_releasedwill returntruefor one frame after a release event.
§Multiple systems
In case multiple systems are checking for ButtonInput::just_pressed or ButtonInput::just_released
but only one should react, for example when modifying a
Resource, you should consider clearing the input state, either by:
- Using
ButtonInput::clear_just_pressedorButtonInput::clear_just_releasedinstead. - Calling
ButtonInput::clearorButtonInput::resetimmediately after the state change.
§Performance
For all operations, the following conventions are used:
- n is the number of stored inputs.
- m is the number of input arguments passed to the method.
- *-suffix denotes an amortized cost.
- ~-suffix denotes an expected cost.
See Rust’s std::collections doc on performance for more details on the conventions used here.
ButtonInput operations | Computational complexity |
|---|---|
ButtonInput::any_just_pressed | O(m)~ |
ButtonInput::any_just_released | O(m)~ |
ButtonInput::any_pressed | O(m)~ |
ButtonInput::get_just_pressed | O(n) |
ButtonInput::get_just_released | O(n) |
ButtonInput::get_pressed | O(n) |
ButtonInput::just_pressed | O(1)~ |
ButtonInput::just_released | O(1)~ |
ButtonInput::pressed | O(1)~ |
ButtonInput::press | O(1)~* |
ButtonInput::release | O(1)~* |
ButtonInput::release_all | O(n)~* |
ButtonInput::clear_just_pressed | O(1)~ |
ButtonInput::clear_just_released | O(1)~ |
ButtonInput::reset_all | O(n) |
ButtonInput::clear | O(n) |
§Window focus
ButtonInput<KeyCode> is tied to window focus. For example, if the user holds a button
while the window loses focus, ButtonInput::just_released will be triggered. Similarly if the window
regains focus, ButtonInput::just_pressed will be triggered.
ButtonInput<GamepadButton> is independent of window focus.
§Examples
Reading and checking against the current set of pressed buttons:
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_systems(
Update,
print_mouse.run_if(resource_changed::<ButtonInput<MouseButton>>),
)
.add_systems(
Update,
print_keyboard.run_if(resource_changed::<ButtonInput<KeyCode>>),
)
.run();
}
fn print_mouse(mouse: Res<ButtonInput<MouseButton>>) {
println!("Mouse: {:?}", mouse.get_pressed().collect::<Vec<_>>());
}
fn print_keyboard(keyboard: Res<ButtonInput<KeyCode>>) {
if keyboard.any_pressed([KeyCode::ControlLeft, KeyCode::ControlRight])
&& keyboard.any_pressed([KeyCode::AltLeft, KeyCode::AltRight])
&& keyboard.any_pressed([KeyCode::ShiftLeft, KeyCode::ShiftRight])
&& keyboard.any_pressed([KeyCode::SuperLeft, KeyCode::SuperRight])
&& keyboard.pressed(KeyCode::KeyL)
{
println!("On Windows this opens LinkedIn.");
} else {
println!("keyboard: {:?}", keyboard.get_pressed().collect::<Vec<_>>());
}
}§Note
When adding this resource for a new input type, you should:
- Call the
ButtonInput::pressmethod for each press event. - Call the
ButtonInput::releasemethod for each release event. - Call the
ButtonInput::clearmethod at each frame start, before processing events.
Note: Calling clear from a ResMut will trigger change detection.
It may be preferable to use DetectChangesMut::bypass_change_detection
to avoid causing the resource to always be marked as changed.
Implementations§
Source§impl<T> ButtonInput<T>
impl<T> ButtonInput<T>
Sourcepub fn any_pressed(&self, inputs: impl IntoIterator<Item = T>) -> bool
pub fn any_pressed(&self, inputs: impl IntoIterator<Item = T>) -> bool
Returns true if any item in inputs has been pressed.
Sourcepub fn all_pressed(&self, inputs: impl IntoIterator<Item = T>) -> bool
pub fn all_pressed(&self, inputs: impl IntoIterator<Item = T>) -> bool
Returns true if all items in inputs have been pressed.
Sourcepub fn release_all(&mut self)
pub fn release_all(&mut self)
Registers a release for all currently pressed inputs.
Sourcepub fn just_pressed(&self, input: T) -> bool
pub fn just_pressed(&self, input: T) -> bool
Returns true if the input has been pressed during the current frame.
Note: This function does not imply information regarding the current state of ButtonInput::pressed or ButtonInput::just_released.
Sourcepub fn any_just_pressed(&self, inputs: impl IntoIterator<Item = T>) -> bool
pub fn any_just_pressed(&self, inputs: impl IntoIterator<Item = T>) -> bool
Returns true if any item in inputs has been pressed during the current frame.
Sourcepub fn clear_just_pressed(&mut self, input: T) -> bool
pub fn clear_just_pressed(&mut self, input: T) -> bool
Clears the just_pressed state of the input and returns true if the input has just been pressed.
Future calls to ButtonInput::just_pressed for the given input will return false until a new press event occurs.
Sourcepub fn just_released(&self, input: T) -> bool
pub fn just_released(&self, input: T) -> bool
Returns true if the input has been released during the current frame.
Note: This function does not imply information regarding the current state of ButtonInput::pressed or ButtonInput::just_pressed.
Sourcepub fn any_just_released(&self, inputs: impl IntoIterator<Item = T>) -> bool
pub fn any_just_released(&self, inputs: impl IntoIterator<Item = T>) -> bool
Returns true if any item in inputs has just been released.
Sourcepub fn all_just_released(&self, inputs: impl IntoIterator<Item = T>) -> bool
pub fn all_just_released(&self, inputs: impl IntoIterator<Item = T>) -> bool
Returns true if all items in inputs have just been released.
Sourcepub fn all_just_pressed(&self, inputs: impl IntoIterator<Item = T>) -> bool
pub fn all_just_pressed(&self, inputs: impl IntoIterator<Item = T>) -> bool
Returns true if all items in inputs have been just pressed.
Sourcepub fn clear_just_released(&mut self, input: T) -> bool
pub fn clear_just_released(&mut self, input: T) -> bool
Clears the just_released state of the input and returns true if the input has just been released.
Future calls to ButtonInput::just_released for the given input will return false until a new release event occurs.
Sourcepub fn reset(&mut self, input: T)
pub fn reset(&mut self, input: T)
Clears the pressed, just_pressed and just_released data of the input.
Sourcepub fn reset_all(&mut self)
pub fn reset_all(&mut self)
Clears the pressed, just_pressed, and just_released data for every input.
See also ButtonInput::clear for simulating elapsed time steps.
Sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Clears the just pressed and just released data for every input.
See also ButtonInput::reset_all for a full reset.
Sourcepub fn get_pressed(&self) -> impl ExactSizeIterator<Item = &T>
pub fn get_pressed(&self) -> impl ExactSizeIterator<Item = &T>
An iterator visiting every pressed input in arbitrary order.
Sourcepub fn get_just_pressed(&self) -> impl ExactSizeIterator<Item = &T>
pub fn get_just_pressed(&self) -> impl ExactSizeIterator<Item = &T>
An iterator visiting every just pressed input in arbitrary order.
Note: Returned elements do not imply information regarding the current state of ButtonInput::pressed or ButtonInput::just_released.
Sourcepub fn get_just_released(&self) -> impl ExactSizeIterator<Item = &T>
pub fn get_just_released(&self) -> impl ExactSizeIterator<Item = &T>
An iterator visiting every just released input in arbitrary order.
Note: Returned elements do not imply information regarding the current state of ButtonInput::pressed or ButtonInput::just_pressed.
Trait Implementations§
Source§impl<T: Clone + Clone + Eq + Hash + Send + Sync + 'static> Clone for ButtonInput<T>
impl<T: Clone + Clone + Eq + Hash + Send + Sync + 'static> Clone for ButtonInput<T>
Source§fn clone(&self) -> ButtonInput<T>
fn clone(&self) -> ButtonInput<T>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<T: Clone + Eq + Hash + Send + Sync + 'static> Component for ButtonInput<T>
impl<T: Clone + Eq + Hash + Send + Sync + 'static> Component for ButtonInput<T>
Source§const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::SparseSet
const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::SparseSet
Source§type Mutability = Mutable
type Mutability = Mutable
Component<Mutability = Mutable>,
while immutable components will instead have Component<Mutability = Immutable>. Read moreSource§fn register_required_components(
_requiree: ComponentId,
required_components: &mut RequiredComponentsRegistrator<'_, '_>,
)
fn register_required_components( _requiree: ComponentId, required_components: &mut RequiredComponentsRegistrator<'_, '_>, )
Source§fn clone_behavior() -> ComponentCloneBehavior
fn clone_behavior() -> ComponentCloneBehavior
Source§fn relationship_accessor() -> Option<ComponentRelationshipAccessor<Self>>
fn relationship_accessor() -> Option<ComponentRelationshipAccessor<Self>>
ComponentRelationshipAccessor required for working with relationships in dynamic contexts. Read moreSource§fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_discard() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_discard() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
E: EntityMapper,
fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
E: EntityMapper,
EntityMapper. This is used to remap entities in contexts like scenes and entity cloning.
When deriving Component, this is populated by annotating fields containing entities with #[entities] Read moreSource§impl<T> FromReflect for ButtonInput<T>
impl<T> FromReflect for ButtonInput<T>
Source§fn from_reflect(reflect: &dyn PartialReflect) -> Option<Self>
fn from_reflect(reflect: &dyn PartialReflect) -> Option<Self>
Self from a reflected value.Source§fn take_from_reflect(
reflect: Box<dyn PartialReflect>,
) -> Result<Self, Box<dyn PartialReflect>>
fn take_from_reflect( reflect: Box<dyn PartialReflect>, ) -> Result<Self, Box<dyn PartialReflect>>
Self using,
constructing the value using from_reflect if that fails. Read moreSource§impl<T> GetTypeRegistration for ButtonInput<T>
impl<T> GetTypeRegistration for ButtonInput<T>
Source§fn get_type_registration() -> TypeRegistration
fn get_type_registration() -> TypeRegistration
TypeRegistration for this type.Source§fn register_type_dependencies(registry: &mut TypeRegistry)
fn register_type_dependencies(registry: &mut TypeRegistry)
Source§impl<T> PartialReflect for ButtonInput<T>
impl<T> PartialReflect for ButtonInput<T>
Source§fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
Source§fn try_apply(&mut self, value: &dyn PartialReflect) -> Result<(), ApplyError>
fn try_apply(&mut self, value: &dyn PartialReflect) -> Result<(), ApplyError>
Source§fn reflect_kind(&self) -> ReflectKind
fn reflect_kind(&self) -> ReflectKind
Source§fn reflect_ref(&self) -> ReflectRef<'_>
fn reflect_ref(&self) -> ReflectRef<'_>
Source§fn reflect_mut(&mut self) -> ReflectMut<'_>
fn reflect_mut(&mut self) -> ReflectMut<'_>
Source§fn reflect_owned(self: Box<Self>) -> ReflectOwned
fn reflect_owned(self: Box<Self>) -> ReflectOwned
Source§fn try_into_reflect(
self: Box<Self>,
) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
fn try_into_reflect( self: Box<Self>, ) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
Source§fn try_as_reflect(&self) -> Option<&dyn Reflect>
fn try_as_reflect(&self) -> Option<&dyn Reflect>
Source§fn try_as_reflect_mut(&mut self) -> Option<&mut dyn Reflect>
fn try_as_reflect_mut(&mut self) -> Option<&mut dyn Reflect>
Source§fn into_partial_reflect(self: Box<Self>) -> Box<dyn PartialReflect>
fn into_partial_reflect(self: Box<Self>) -> Box<dyn PartialReflect>
Source§fn as_partial_reflect(&self) -> &dyn PartialReflect
fn as_partial_reflect(&self) -> &dyn PartialReflect
Source§fn as_partial_reflect_mut(&mut self) -> &mut dyn PartialReflect
fn as_partial_reflect_mut(&mut self) -> &mut dyn PartialReflect
Source§fn reflect_partial_eq(&self, value: &dyn PartialReflect) -> Option<bool>
fn reflect_partial_eq(&self, value: &dyn PartialReflect) -> Option<bool>
Source§fn reflect_partial_cmp(&self, value: &dyn PartialReflect) -> Option<Ordering>
fn reflect_partial_cmp(&self, value: &dyn PartialReflect) -> Option<Ordering>
Source§fn reflect_clone(&self) -> Result<Box<dyn Reflect>, ReflectCloneError>
fn reflect_clone(&self) -> Result<Box<dyn Reflect>, ReflectCloneError>
Self using reflection. Read moreSource§fn apply(&mut self, value: &(dyn PartialReflect + 'static))
fn apply(&mut self, value: &(dyn PartialReflect + 'static))
Source§fn to_dynamic(&self) -> Box<dyn PartialReflect>
fn to_dynamic(&self) -> Box<dyn PartialReflect>
Source§fn reflect_clone_and_take<T>(&self) -> Result<T, ReflectCloneError>
fn reflect_clone_and_take<T>(&self) -> Result<T, ReflectCloneError>
PartialReflect, combines reflect_clone and
take in a useful fashion, automatically constructing an appropriate
ReflectCloneError if the downcast fails.Source§fn reflect_hash(&self) -> Option<u64>
fn reflect_hash(&self) -> Option<u64>
Source§fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Source§fn is_dynamic(&self) -> bool
fn is_dynamic(&self) -> bool
Source§impl<T> Reflect for ButtonInput<T>
impl<T> Reflect for ButtonInput<T>
Source§fn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
&mut dyn Any. Read moreSource§fn into_reflect(self: Box<Self>) -> Box<dyn Reflect>
fn into_reflect(self: Box<Self>) -> Box<dyn Reflect>
Source§fn as_reflect(&self) -> &dyn Reflect
fn as_reflect(&self) -> &dyn Reflect
Source§fn as_reflect_mut(&mut self) -> &mut dyn Reflect
fn as_reflect_mut(&mut self) -> &mut dyn Reflect
Source§impl<T> Struct for ButtonInput<T>
impl<T> Struct for ButtonInput<T>
Source§fn field(&self, name: &str) -> Option<&dyn PartialReflect>
fn field(&self, name: &str) -> Option<&dyn PartialReflect>
name as a &dyn PartialReflect.Source§fn field_mut(&mut self, name: &str) -> Option<&mut dyn PartialReflect>
fn field_mut(&mut self, name: &str) -> Option<&mut dyn PartialReflect>
name as a
&mut dyn PartialReflect.Source§fn field_at(&self, index: usize) -> Option<&dyn PartialReflect>
fn field_at(&self, index: usize) -> Option<&dyn PartialReflect>
index as a
&dyn PartialReflect.Source§fn field_at_mut(&mut self, index: usize) -> Option<&mut dyn PartialReflect>
fn field_at_mut(&mut self, index: usize) -> Option<&mut dyn PartialReflect>
index
as a &mut dyn PartialReflect.Source§fn index_of_name(&self, name: &str) -> Option<usize>
fn index_of_name(&self, name: &str) -> Option<usize>
Source§fn iter_fields(&self) -> FieldIter<'_>
fn iter_fields(&self) -> FieldIter<'_>
Source§fn to_dynamic_struct(&self) -> DynamicStruct
fn to_dynamic_struct(&self) -> DynamicStruct
DynamicStruct from this struct.Source§fn get_represented_struct_info(&self) -> Option<&'static StructInfo>
fn get_represented_struct_info(&self) -> Option<&'static StructInfo>
None if TypeInfo is not available.Source§impl<T> TypePath for ButtonInput<T>
impl<T> TypePath for ButtonInput<T>
Source§fn type_path() -> &'static str
fn type_path() -> &'static str
Source§fn short_type_path() -> &'static str
fn short_type_path() -> &'static str
Source§fn type_ident() -> Option<&'static str>
fn type_ident() -> Option<&'static str>
Source§fn crate_name() -> Option<&'static str>
fn crate_name() -> Option<&'static str>
Source§impl<T> Typed for ButtonInput<T>
impl<T> Typed for ButtonInput<T>
impl<T: Clone + Eq + Hash + Send + Sync + 'static> Resource for ButtonInput<T>
Auto Trait Implementations§
impl<T> Freeze for ButtonInput<T>
impl<T> RefUnwindSafe for ButtonInput<T>where
T: RefUnwindSafe,
impl<T> Send for ButtonInput<T>
impl<T> Sync for ButtonInput<T>
impl<T> Unpin for ButtonInput<T>where
T: Unpin,
impl<T> UnsafeUnpin for ButtonInput<T>
impl<T> UnwindSafe for ButtonInput<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
Source§impl<C> Bundle for Cwhere
C: Component,
impl<C> Bundle for Cwhere
C: Component,
fn component_ids( components: &mut ComponentsRegistrator<'_>, ) -> impl Iterator<Item = ComponentId> + use<C>
Source§fn get_component_ids(
components: &Components,
) -> impl Iterator<Item = Option<ComponentId>>
fn get_component_ids( components: &Components, ) -> impl Iterator<Item = Option<ComponentId>>
Source§impl<C> BundleFromComponents for Cwhere
C: Component,
impl<C> BundleFromComponents for Cwhere
C: Component,
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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)
&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)
&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<C> DynamicBundle for Cwhere
C: Component,
impl<C> DynamicBundle for Cwhere
C: Component,
Source§unsafe fn get_components(
ptr: MovingPtr<'_, C>,
func: &mut impl FnMut(StorageType, OwningPtr<'_>),
) -> <C as DynamicBundle>::Effect
unsafe fn get_components( ptr: MovingPtr<'_, C>, func: &mut impl FnMut(StorageType, OwningPtr<'_>), ) -> <C as DynamicBundle>::Effect
Source§unsafe fn apply_effect(
_ptr: MovingPtr<'_, MaybeUninit<C>>,
_entity: &mut EntityWorldMut<'_>,
)
unsafe fn apply_effect( _ptr: MovingPtr<'_, MaybeUninit<C>>, _entity: &mut EntityWorldMut<'_>, )
Source§impl<T> DynamicTypePath for Twhere
T: TypePath,
impl<T> DynamicTypePath for Twhere
T: TypePath,
Source§fn reflect_type_path(&self) -> &str
fn reflect_type_path(&self) -> &str
TypePath::type_path.Source§fn reflect_short_type_path(&self) -> &str
fn reflect_short_type_path(&self) -> &str
Source§fn reflect_type_ident(&self) -> Option<&str>
fn reflect_type_ident(&self) -> Option<&str>
TypePath::type_ident.Source§fn reflect_crate_name(&self) -> Option<&str>
fn reflect_crate_name(&self) -> Option<&str>
TypePath::crate_name.Source§fn reflect_module_path(&self) -> Option<&str>
fn reflect_module_path(&self) -> Option<&str>
Source§impl<T> DynamicTyped for Twhere
T: Typed,
impl<T> DynamicTyped for Twhere
T: Typed,
Source§fn reflect_type_info(&self) -> &'static TypeInfo
fn reflect_type_info(&self) -> &'static TypeInfo
Typed::type_info.Source§impl<T> FromTemplate for T
impl<T> FromTemplate 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<S> GetField for Swhere
S: Struct,
impl<S> GetField for Swhere
S: Struct,
Source§impl<T> GetPath for T
impl<T> GetPath for T
Source§fn reflect_path<'p>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&(dyn PartialReflect + 'static), ReflectPathError<'p>>
fn reflect_path<'p>( &self, path: impl ReflectPath<'p>, ) -> Result<&(dyn PartialReflect + 'static), ReflectPathError<'p>>
path. Read moreSource§fn reflect_path_mut<'p>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut (dyn PartialReflect + 'static), ReflectPathError<'p>>
fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut (dyn PartialReflect + 'static), ReflectPathError<'p>>
path. Read moreSource§fn path<'p, T>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
fn path<'p, T>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
path. Read moreSource§fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
path. Read moreSource§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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§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>
Source§impl<T> Template for T
impl<T> Template for T
Source§fn build_template(
&self,
_context: &mut TemplateContext<'_, '_>,
) -> Result<<T as Template>::Output, BevyError>
fn build_template( &self, _context: &mut TemplateContext<'_, '_>, ) -> Result<<T as Template>::Output, BevyError>
entity context to produce a Template::Output.Source§fn clone_template(&self) -> T
fn clone_template(&self) -> T
Clone.