Skip to main content

PropertyGraph

Struct PropertyGraph 

Source
pub struct PropertyGraph { /* private fields */ }
Expand description

Owner-thread bridge between shared values and Pax’s local reactive graph.

The wake callback may run on any publishing thread. It must schedule host work, never enter the engine inline. Enter this graph while constructing bindings; call Self::import at a safe UI update boundary before draining local effects. Imports coalesce by property and freeze a snapshot before any local evaluator runs. Graphs and their local views cannot cross threads.

Implementations§

Source§

impl PropertyGraph

Source

pub fn new(wake: impl Fn() + Send + Sync + 'static) -> PropertyGraph

Creates a bridge with a host-owned, transferable wake callback.

Source

pub fn id(&self) -> u64

Unique attachment identity for host scheduling. It never identifies an engine pointer and is not reused after this graph closes.

Source

pub fn has_pending(&self) -> bool

Whether publications still need an owner-thread import. Hosts recheck this after a queued wake because an intervening frame may settle them.

Source

pub fn set_waker(&self, wake: impl Fn() + Send + Sync + 'static)

Installs the host scheduler after construction and wakes it if work arrived before registration. The callback must only schedule work.

Source

pub fn enter(&self) -> PropertyGraphGuard

Selects this graph for shared-to-local bindings on this thread.

Source

pub fn import(&self) -> usize

Imports a finite snapshot of pending publications without running user evaluators. Publications racing this import stay pending for a later turn. Returns the number of imported properties.

Source

pub fn import_batch(&self, limit: usize) -> usize

Imports at most limit queued identities in FIFO order and requests a further host turn if work remains. Repeated writes occupy one slot.

Source

pub fn collect(&self)

Releases local bindings whose shared allocation has no remaining owners.

Source

pub fn close(&self)

Trait Implementations§

Source§

impl Clone for PropertyGraph

Source§

fn clone(&self) -> PropertyGraph

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

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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

Source§

fn downcast(&self) -> &T

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.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> RoundFrom<T> for T

Source§

fn round_from(x: T) -> T

Performs the conversion.
Source§

impl<T, U> RoundInto<U> for T
where U: RoundFrom<T>,

Source§

fn round_into(self) -> U

Performs the conversion.
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.
Source§

impl<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more
Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>