pub struct RuntimePropertiesStackFrame { /* private fields */ }Expand description
Data structure for a single frame of our runtime stack, including
a reference to its parent frame and properties for
runtime evaluation, e.g. of Expressions. RuntimePropertiesStackFrames also track
timeline playhead position.
Components push RuntimePropertiesStackFrames before computing properties and pop them after computing, thus providing a
hierarchical store of node-relevant data that can be bound to symbols in expressions.
Implementations§
source§impl RuntimePropertiesStackFrame
impl RuntimePropertiesStackFrame
pub fn new( symbols_within_frame: HashMap<String, Variable>, properties: Rc<RefCell<PaxAny>>, ) -> Rc<Self>
pub fn push( self: &Rc<Self>, symbols_within_frame: HashMap<String, Variable>, properties: &Rc<RefCell<PaxAny>>, ) -> Rc<Self>
pub fn pop(self: &Rc<Self>) -> Option<Rc<Self>>
sourcepub fn peek_nth(self: &Rc<Self>, n: isize) -> Option<Rc<RefCell<PaxAny>>>
pub fn peek_nth(self: &Rc<Self>, n: isize) -> Option<Rc<RefCell<PaxAny>>>
Traverses stack recursively n times to retrieve ancestor;
useful for runtime lookups for identifiers, where n is the statically known offset determined by the Pax compiler
when resolving a symbol
pub fn resolve_symbol(&self, symbol: &str) -> Option<Rc<RefCell<PaxAny>>>
pub fn insert_stack_local_store<T: Store>(&self, store: T)
pub fn peek_stack_local_store<T: Store, V>( self: &Rc<Self>, f: impl FnOnce(&mut T) -> V, ) -> Result<V, String>
pub fn resolve_symbol_as_variable(&self, symbol: &str) -> Option<Variable>
pub fn resolve_symbol_as_erased_property( &self, symbol: &str, ) -> Option<UntypedProperty>
pub fn resolve_symbol_as_pax_value(&self, symbol: &str) -> Option<PaxValue>
pub fn get_properties(&self) -> Rc<RefCell<PaxAny>>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for RuntimePropertiesStackFrame
impl !RefUnwindSafe for RuntimePropertiesStackFrame
impl !Send for RuntimePropertiesStackFrame
impl !Sync for RuntimePropertiesStackFrame
impl Unpin for RuntimePropertiesStackFrame
impl !UnwindSafe for RuntimePropertiesStackFrame
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, U> RoundInto<U> for Twhere
U: RoundFrom<T>,
impl<T, U> RoundInto<U> for Twhere
U: RoundFrom<T>,
source§fn round_into(self) -> U
fn round_into(self) -> U
Performs the conversion.