Skip to main content

Intents

Struct Intents 

Source
pub struct Intents<A: UiAction> { /* private fields */ }
Expand description

The actions drained for the current tick, consumed by the systems that answer them.

Order is the order the controls were clicked. take consumes one occurrence and reports whether it was there, which is what replaces a per-action boolean: if intents.retry becomes if intents.take(&UiAction::Retry).

Implementations§

Source§

impl<A: UiAction> Intents<A>

Source

pub fn new() -> Self

Source

pub fn requests(&self) -> &[A]

Every pending action in order.

Source

pub fn is_empty(&self) -> bool

Source

pub fn len(&self) -> usize

Source

pub fn clear(&mut self)

Forget every pending action without answering any of them.

Source

pub fn request(&mut self, action: A)

Add one request.

Source

pub fn extend(&mut self, actions: impl IntoIterator<Item = A>) -> usize

Add actions in argument order. Returns how many were added.

Source

pub fn requested(&self, action: &A) -> bool

Whether an occurrence is pending, without consuming it.

Source

pub fn count(&self, action: &A) -> usize

How many occurrences are pending.

Source

pub fn take(&mut self, action: &A) -> bool

Consume one occurrence, reporting whether it was there.

Source

pub fn take_matching(&mut self, predicate: impl FnMut(&A) -> bool) -> Option<A>

Consume the first occurrence matching predicate, keeping the rest.

The way to handle actions that carry a payload, e.g. a selected index: intents.take_matching(|action| matches!(action, UiAction::Pick(_))).

Source

pub fn take_all(&mut self) -> Vec<A>

Every pending action in order, leaving the buffer empty.

Trait Implementations§

Source§

impl<A: Clone + UiAction> Clone for Intents<A>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<A: Debug + UiAction> Debug for Intents<A>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<A: Default + UiAction> Default for Intents<A>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<A: UiAction> FromIterator<A> for Intents<A>

Source§

fn from_iter<T: IntoIterator<Item = A>>(iter: T) -> Self

Creates a value from an iterator. Read more
Source§

impl<A: PartialEq + UiAction> PartialEq for Intents<A>

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl<A: PartialEq + UiAction> StructuralPartialEq for Intents<A>

Auto Trait Implementations§

§

impl<A> Freeze for Intents<A>
where Vec<A>: Freeze,

§

impl<A> RefUnwindSafe for Intents<A>
where Vec<A>: RefUnwindSafe,

§

impl<A> Send for Intents<A>
where Vec<A>: Send,

§

impl<A> Sync for Intents<A>
where Vec<A>: Sync,

§

impl<A> Unpin for Intents<A>
where Vec<A>: Unpin,

§

impl<A> UnsafeUnpin for Intents<A>
where Vec<A>: UnsafeUnpin,

§

impl<A> UnwindSafe for Intents<A>
where Vec<A>: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Brush for T
where T: Clone + PartialEq + Default + Debug,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> ConditionalSend for T
where T: Send,

Source§

impl<T> Downcast for T
where T: Any,

Source§

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>

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)

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)

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
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromTemplate for T
where T: Clone + Default + Unpin,

Source§

type Template = T

The Template for this type.
Source§

impl<T> FromWorld for T
where T: Default,

Source§

fn from_world(_world: &mut World) -> T

Creates Self using default().

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoResult<T> for T

Source§

fn into_result(self) -> Result<T, RunSystemError>

Converts this type into the system output type.
Source§

impl<A> Is for A
where A: Any,

Source§

fn is<T>() -> bool
where T: Any,

Checks if the current type “is” another type, using a TypeId equality comparison. This is most useful in the context of generic logic. Read more
Source§

impl<T> Template for T
where T: Clone + Unpin,

Source§

type Output = T

The type of value produced by this Template.
Source§

fn build_template( &self, _context: &mut TemplateContext<'_, '_>, ) -> Result<<T as Template>::Output, BevyError>

Uses this template and the given entity context to produce a Template::Output.
Source§

fn clone_template(&self) -> T

Clones this template. See Clone.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> TypeData for T
where T: 'static + Send + Sync + Clone,

Source§

fn clone_type_data(&self) -> Box<dyn TypeData>

Creates a type-erased clone of self.
Source§

impl<T> UiAction for T
where T: Clone + PartialEq + Debug + Send + Sync + 'static,