Skip to main content

ContiguousComponentTicksRef

Struct ContiguousComponentTicksRef 

Source
pub struct ContiguousComponentTicksRef<'w> { /* private fields */ }
Expand description

Data type storing contiguously lying ticks.

Retrievable via ContiguousRef::split and probably only useful if you want to use the following methods:

Implementations§

Source§

impl<'w> ContiguousComponentTicksRef<'w>

Source

pub fn new( added: &'w [Tick], changed: &'w [Tick], summary_tick: Option<&'w AtomicTick>, last_run: Tick, this_run: Tick, caller: MaybeLocation<&'w [&'static Location<'static>]>, ) -> Option<ContiguousComponentTicksRef<'w>>

Creates a new ContiguousComponentTicksRef using provided values or returns None if lengths of added, changed and changed_by do not match

This is an advanced feature, ContiguousComponentTicksRefs are designed to be created by engine-internal code and consumed by end-user code.

  • added - Ticks that store the tick when the wrapped value was created.
  • changed - Ticks that store the last time the wrapped value was changed.
  • last_run - A Tick, occurring before this_run, which is used as a reference to determine whether the wrapped value is newly added or changed.
  • this_run - A Tick corresponding to the current point in time – “now”.
  • caller - Locations that store the location when the wrapper value was changed.
Source

pub fn added(&self) -> &'w [Tick]

Returns added ticks’ slice.

Source

pub fn changed(&self) -> &'w [Tick]

Returns changed ticks’ slice.

Source

pub fn changed_by(&self) -> MaybeLocation<&[&'static Location<'static>]>

Returns changed by locations’ slice.

Source

pub fn last_run(&self) -> Tick

Returns the tick the system last ran.

Source

pub fn this_run(&self) -> Tick

Returns the tick of the current system’s run.

Source

pub fn is_changed_iter(&self) -> impl Iterator<Item = bool>

Returns an iterator where the i-th item corresponds to whether the i-th component was marked as changed. If the value equals true, then the component was changed.

§Example

fn some_system(mut query: Query<Ref<A>>) {
    for a in query.contiguous_iter().unwrap() {
        let (a_values, a_ticks) = ContiguousRef::split(a);
        for (value, is_changed) in a_values.iter().zip(a_ticks.is_changed_iter()) {
            if is_changed {
                // do something
            }
        }
    }
}
Source

pub fn is_added_iter(&self) -> impl Iterator<Item = bool>

Returns an iterator where the i-th item corresponds to whether the i-th component was marked as added. If the value equals true, then the component was added.

§Example

fn some_system(mut query: Query<Ref<A>>) {
    for a in query.contiguous_iter().unwrap() {
        let (a_values, a_ticks) = ContiguousRef::split(a);
        for (value, is_added) in a_values.iter().zip(a_ticks.is_added_iter()) {
            if is_added {
                // do something
            }
        }
    }
}
Source

pub fn slice(self, range: Range<u32>) -> ContiguousComponentTicksRef<'w>

Narrows the range of rows that this set of ticks represents.

If the range is out of range, this method will panic.

Source

pub fn summary_tick_is_changed(&self) -> Option<bool>

Returns Some(true) if this component has a summary tick and any component in this column may have been changed since the last time the associated query ran.

If the component has no summary tick, this method returns None. If there is a summary tick, but there has been no change since the last time the query ran, this method returns Some(false).

Trait Implementations§

Source§

impl<'w> Clone for ContiguousComponentTicksRef<'w>

Source§

fn clone(&self) -> ContiguousComponentTicksRef<'w>

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<'w> From<ContiguousComponentTicksMut<'w>> for ContiguousComponentTicksRef<'w>

Source§

fn from( value: ContiguousComponentTicksMut<'w>, ) -> ContiguousComponentTicksRef<'w>

Converts to this type from the input type.

Auto Trait Implementations§

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> 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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more