Struct flax::EntityRef

source ·
pub struct EntityRef<'a> { /* private fields */ }
Expand description

Borrow all the components of an entity at once.

This is handy to borrow an entity and perform multiple operations on it without mentioning the id and performing re-lookups.

Implementations§

source§

impl<'a> EntityRef<'a>

source

pub fn get<T: ComponentValue>( &self, component: Component<T> ) -> Result<AtomicRef<'a, T>, MissingComponent>

Access a component

source

pub fn get_mut<T: ComponentValue>( &self, component: Component<T> ) -> Result<RefMut<'a, T>, MissingComponent>

Access a component mutably

source

pub fn get_copy<T: ComponentValue + Copy>( &self, component: Component<T> ) -> Result<T, MissingComponent>

Shorthand to copy and not use a borrowing references

source

pub fn has<T: ComponentValue>(&self, component: Component<T>) -> bool

Check if the entity currently has the specified component without borrowing.

source

pub fn update<T: ComponentValue, U>( &self, component: Component<T>, f: impl FnOnce(&mut T) -> U ) -> Option<U>

Updates a component in place

source

pub fn update_dedup<T: ComponentValue + PartialEq>( &self, component: Component<T>, value: T ) -> Option<()>

Updates a component in place

source

pub fn query<'q, Q: Fetch<'q>>(&'q self, query: &'q Q) -> QueryOne<'q, Q>

Perform a query on the entity

source

pub fn try_get<T: ComponentValue>( &self, component: Component<T> ) -> Result<Option<AtomicRef<'_, T>>, BorrowError>

Attempt concurrently access a component mutably using and fail if the component is already borrowed

source

pub fn try_get_mut<T: ComponentValue>( &self, component: Component<T> ) -> Result<Option<RefMut<'_, T>>, BorrowMutError>

Attempt to concurrently access a component mutably using and fail if the component is already borrowed

source

pub fn relations<T: ComponentValue>( &self, relation: impl RelationExt<T> ) -> RelationIter<'a, T>

Returns all relations to other entities of the specified kind

source

pub fn relations_mut<T: ComponentValue>( &self, relation: impl RelationExt<T> ) -> RelationIterMut<'a, T>

Returns all relations to other entities of the specified kind

source

pub fn id(&self) -> Entity

Returns the entity id

Trait Implementations§

source§

impl<'a> Clone for EntityRef<'a>

source§

fn clone(&self) -> EntityRef<'a>

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl<'a> Debug for EntityRef<'a>

source§

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

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

impl Display for EntityRef<'_>

source§

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

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

impl<'a> Copy for EntityRef<'a>

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for EntityRef<'a>

§

impl<'a> Send for EntityRef<'a>

§

impl<'a> Sync for EntityRef<'a>

§

impl<'a> Unpin for EntityRef<'a>

§

impl<'a> !UnwindSafe for EntityRef<'a>

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

source§

fn from(t: T) -> T

Returns the argument unchanged.

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.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

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

§

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> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

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

§

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>,

§

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> ComponentValue for T
where T: Send + Sync + 'static,