Skip to main content

NodeHandle

Struct NodeHandle 

Source
pub struct NodeHandle {
    pub entity: Entity,
    pub generation: u32,
}
Expand description

Opaque handle to a live element: an Entity plus the generation it carried when the handle was minted. Resolving a handle validates the generation, so a handle to a despawned entity returns None rather than addressing whatever entity later reused that index.

Fields§

§entity: Entity

The referenced entity (index + generation).

§generation: u32

The entity’s generation bits at mint time, kept for the packed wire form and for cross-checking after an unpack.

Implementations§

Source§

impl NodeHandle

Source

pub fn new(entity: Entity) -> Self

Mint a handle for entity, capturing its current generation.

Source

pub fn pack(self) -> u64

Pack into the u64 wire form used by the C-ABI LumenNode and by hosts whose value type can hold 64 bits. The layout is Entity::to_bits (index in the low half, generation in the high half); treat it as opaque and round-trip only through Self::unpack.

Source

pub fn unpack(bits: u64) -> Option<Self>

Reconstruct from the packed wire form. Returns None for bits that never came from Self::pack (invalid index), never panicking.

Source

pub fn validate(&self, entities: &Entities) -> Option<Entity>

Resolve against the live entity allocator: Some(entity) when the exact (index, generation) is still alive, None when it has been despawned (stale handle). Never panics.

Trait Implementations§

Source§

impl Clone for NodeHandle

Source§

fn clone(&self) -> NodeHandle

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 Debug for NodeHandle

Source§

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

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

impl PartialEq for NodeHandle

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for NodeHandle

Source§

impl Eq for NodeHandle

Source§

impl StructuralPartialEq for NodeHandle

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
§

impl<T> DynEq for T
where T: Any + Eq,

§

fn dyn_eq(&self, other: &(dyn DynEq + 'static)) -> bool

This method tests for self and other values to be equal. Read more
§

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.

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

§

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

Converts this type into the system output type.
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.
§

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