Skip to main content

ScopeSummary

Enum ScopeSummary 

Source
pub(crate) enum ScopeSummary {
    Empty,
    Uniform(Entity),
    Mixed,
}
Expand description

Which scopes an archetype’s rows live in, as far as a whole-archetype gate can tell.

A derived summary, not part of the archetype’s identity: it is counted from the scope each row was pushed with, and the gates below are the only thing that uses it. Both gates are conservative in the same direction: they never accept a row that the per-row check would reject.

Variants§

§

Empty

No rows.

§

Uniform(Entity)

Every row lives in this scope.

§

Mixed

Rows live in more than one scope.

Implementations§

Source§

impl ScopeSummary

Source

pub(crate) fn any_visible(self, world: &World, caller: Entity) -> bool

Whether at least one row of the archetype is visible from caller.

This is the gate a query applies before it visits any row. A uniform archetype is either entirely visible or has exactly one visible row: the caller’s own entity, which lives in caller’s parent scope and so sits in that parent’s uniform archetype.

Source

pub(crate) fn all_visible(self, world: &World, caller: Entity) -> bool

Whether every row of the archetype is visible from caller.

Vacuously true for an empty archetype, which is why the callers that hand out rows also require the archetype to be non-empty.

Source

pub(crate) fn row_visible( self, archetype: &Archetype, world: &World, caller: Entity, row: usize, ) -> bool

Whether row row of archetype is visible from caller.

The per-row answer for a summary a whole-archetype gate could not decide. The caller’s own row is always visible: a scope sees the entity it is rooted at, and that entity lives in the scope’s parent.

Trait Implementations§

Source§

impl Clone for ScopeSummary

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 Copy for ScopeSummary

Source§

impl Debug for ScopeSummary

Source§

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

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

impl Default for ScopeSummary

Source§

fn default() -> Self

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

impl Eq for ScopeSummary

Source§

impl PartialEq for ScopeSummary

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 StructuralPartialEq for ScopeSummary

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> Component for T
where T: 'static,

Source§

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

§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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

impl<T> WithSubscriber for T

§

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
§

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

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