pub struct InputView<Keys> where
Keys: BindingTypeView, {
pub last_input_source: Option<InputSource>,
pub bindings: HashMap<Keys, ActionBinding<Keys>>,
pub descriptors: Vec<ReceiverDescriptor>,
}
Expand description
A view is a object where all input states are stored. It also has useful methods such checking
if a key or axis for a BindingTypeView
is pressed or released by proving the PressState
.
Fields
last_input_source: Option<InputSource>
bindings: HashMap<Keys, ActionBinding<Keys>>
descriptors: Vec<ReceiverDescriptor>
Implementations
sourceimpl<Keys> InputView<Keys> where
Keys: BindingTypeView,
impl<Keys> InputView<Keys> where
Keys: BindingTypeView,
sourcepub fn with_capacity(capacity: usize) -> Self
pub fn with_capacity(capacity: usize) -> Self
Creates an empty input view with a specific capacity.
sourcepub fn set_capacity(&mut self, capacity: usize)
pub fn set_capacity(&mut self, capacity: usize)
Sets a new capacity for this input view.
sourcepub fn add_descriptor(&mut self, descriptor: ReceiverDescriptor)
pub fn add_descriptor(&mut self, descriptor: ReceiverDescriptor)
Add a new binding to the input view.
sourcepub fn descriptor(&self, rcv: &InputReceiver) -> Option<&ReceiverDescriptor>
pub fn descriptor(&self, rcv: &InputReceiver) -> Option<&ReceiverDescriptor>
Get an existing descriptor.
sourcepub fn descriptor_mut(
&mut self,
rcv: &InputReceiver
) -> Option<&mut ReceiverDescriptor>
pub fn descriptor_mut(
&mut self,
rcv: &InputReceiver
) -> Option<&mut ReceiverDescriptor>
Get an existing descriptor mutably.
sourcepub fn descriptor_or_insert(
&mut self,
input: InputReceiver
) -> &mut ReceiverDescriptor
pub fn descriptor_or_insert(
&mut self,
input: InputReceiver
) -> &mut ReceiverDescriptor
Get a descriptor or insert it if it doesn’t exist.
sourcepub fn add_binding(&mut self, binding: &mut ActionBinding<Keys>) -> &mut Self
pub fn add_binding(&mut self, binding: &mut ActionBinding<Keys>) -> &mut Self
Insert a new binding into the storage.
sourcepub fn state(&self, key: &InputReceiver) -> &AxisState
pub fn state(&self, key: &InputReceiver) -> &AxisState
Set the button state for a specific key receiver.
sourcepub fn set_axis_value(
&mut self,
input: InputReceiver,
value: f32,
element_state: PressState
)
pub fn set_axis_value(
&mut self,
input: InputReceiver,
value: f32,
element_state: PressState
)
Set the axis state for a specific input receiver.
sourcepub fn set_key_receiver_state(
&mut self,
input: InputReceiver,
state: PressState
)
pub fn set_key_receiver_state(
&mut self,
input: InputReceiver,
state: PressState
)
Set the axis state for a specific input receiver.
sourcepub fn key(&self, kind: &Keys) -> PressState
pub fn key(&self, kind: &Keys) -> PressState
Return the current press state for a specific binding matching with the given BindingTypeView.
sourcepub fn axis(&self, kind: &Keys) -> Vec<AxisState>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
pub fn axis(&self, kind: &Keys) -> Vec<AxisState>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Return the current axis state for a specific binding matching with the given BindingTypeView.
sourcepub fn clear_from_specific_source(&mut self, source: InputSource)
pub fn clear_from_specific_source(&mut self, source: InputSource)
A utility function for removing all receivers with a specific source.
sourcepub fn combine<const T: usize>(&self, array: &[&Keys; T]) -> Vec<AxisState>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
pub fn combine<const T: usize>(&self, array: &[&Keys; T]) -> Vec<AxisState>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Combine the axis states of all given keys into a Vec
.
Trait Implementations
sourceimpl<Keys: Clone> Clone for InputView<Keys> where
Keys: BindingTypeView,
impl<Keys: Clone> Clone for InputView<Keys> where
Keys: BindingTypeView,
sourceimpl<Keys> Component for InputView<Keys> where
Keys: BindingTypeView,
Self: Send + Sync + 'static,
impl<Keys> Component for InputView<Keys> where
Keys: BindingTypeView,
Self: Send + Sync + 'static,
type Storage = TableStorage
sourceimpl<Keys: Debug> Debug for InputView<Keys> where
Keys: BindingTypeView,
impl<Keys: Debug> Debug for InputView<Keys> where
Keys: BindingTypeView,
sourceimpl<Keys: Default> Default for InputView<Keys> where
Keys: BindingTypeView,
impl<Keys: Default> Default for InputView<Keys> where
Keys: BindingTypeView,
sourceimpl<Keys: PartialEq> PartialEq<InputView<Keys>> for InputView<Keys> where
Keys: BindingTypeView,
impl<Keys: PartialEq> PartialEq<InputView<Keys>> for InputView<Keys> where
Keys: BindingTypeView,
impl<Keys> StructuralPartialEq for InputView<Keys> where
Keys: BindingTypeView,
Auto Trait Implementations
impl<Keys> RefUnwindSafe for InputView<Keys> where
Keys: RefUnwindSafe,
impl<Keys> Send for InputView<Keys>
impl<Keys> Sync for InputView<Keys>
impl<Keys> Unpin for InputView<Keys> where
Keys: Unpin,
impl<Keys> UnwindSafe for InputView<Keys> where
Keys: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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
. Read more
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
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. Read more
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. Read more
impl<T> FromWorld for T where
T: Default,
impl<T> FromWorld for T where
T: Default,
fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self
using data from the given [World]
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
fn clone_type_data(&self) -> Box<dyn TypeData + 'static, Global>
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more