pub struct Elem<T>where
T: 'static,{ /* private fields */ }Expand description
One element of a keyed store, addressed by a key that survives reordering.
Implementations§
Source§impl<T> Elem<T>where
T: Identified + 'static,
impl<T> Elem<T>where
T: Identified + 'static,
Trait Implementations§
impl<T> Copy for Elem<T>
Source§impl<T> SelectionKey for Elem<T>where
T: Identified + 'static,
A store row names itself by its key, so a store list binds List::selection.
impl<T> SelectionKey for Elem<T>where
T: Identified + 'static,
A store row names itself by its key, so a store list binds List::selection.
fn selection_key(&self) -> u64
Source§impl<T> Source<T> for Elem<T>where
T: Identified + 'static,
impl<T> Source<T> for Elem<T>where
T: Identified + 'static,
Source§fn path(self) -> Path
fn path(self) -> Path
The path this source occupies. Implementations revalidate against the interner, so the
result is always current.
Source§fn node(self) -> NodeId
fn node(self) -> NodeId
This source’s interned id, so a child can be built with no lookup of its own. Read more
Source§fn components(self, out: &mut Vec<u64>)
fn components(self, out: &mut Vec<u64>)
The path as plain components, resolved by walking the handle chain rather than the
interner. This is what crosses a thread boundary: a worker names what it changed with
components, and the main thread re-establishes them on its own side when it announces.
fn with_value_untracked<R>(self, f: impl FnOnce(Option<&T>) -> R) -> R
Source§fn update_value(self, f: impl FnOnce(&mut T)) -> bool
fn update_value(self, f: impl FnOnce(&mut T)) -> bool
Returns false when the value is gone (a deleted row), in which case nothing is
announced either.
fn bump_version(self)
Source§const DYNAMIC: bool = false
const DYNAMIC: bool = false
Whether this source’s location can change over the handle’s lifetime: a recycled list
slot whose current row rotates. Fields projected from a dynamic source resolve their
path through the source on every operation instead of trusting the one cached at
projection time, and their tracked reads also run
Source::track_extra.Source§fn track_extra(self)
fn track_extra(self)
Extra tracking a projected field’s tracked reads perform. A dynamic source tracks its
own rebind signal here, so a control bound at build follows the slot to its next row.
Auto Trait Implementations§
impl<T> Freeze for Elem<T>
impl<T> RefUnwindSafe for Elem<T>
impl<T> Send for Elem<T>
impl<T> Sync for Elem<T>
impl<T> Unpin for Elem<T>
impl<T> UnsafeUnpin for Elem<T>
impl<T> UnwindSafe for Elem<T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more