Skip to main content

SchedulerHandle

Struct SchedulerHandle 

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

A weak handle to the animation scheduler

This is passed to components that need to register animations. It won’t prevent the scheduler from being dropped.

Implementations§

Source§

impl SchedulerHandle

Source

pub fn register_spring(&self, spring: Spring) -> Option<SpringId>

Register a spring and return its ID

Source

pub fn set_spring_target(&self, id: SpringId, target: f32)

Update a spring’s target

Source

pub fn get_spring_value(&self, id: SpringId) -> Option<f32>

Get current spring value

Source

pub fn is_spring_settled(&self, id: SpringId) -> bool

Check if a spring has settled (at rest at target)

Returns true if the spring exists and has settled, or if the spring doesn’t exist (considered settled since there’s nothing animating).

Source

pub fn remove_spring(&self, id: SpringId)

Remove a spring

Source

pub fn register_keyframe( &self, keyframe: KeyframeAnimation, ) -> Option<KeyframeId>

Register a keyframe animation and return its ID

Source

pub fn get_keyframe_value(&self, id: KeyframeId) -> Option<f32>

Get current keyframe animation value

Source

pub fn get_keyframe_progress(&self, id: KeyframeId) -> Option<f32>

Get keyframe animation progress (0.0 to 1.0)

Source

pub fn is_keyframe_playing(&self, id: KeyframeId) -> bool

Check if keyframe animation is playing

Source

pub fn start_keyframe(&self, id: KeyframeId)

Start a keyframe animation

Source

pub fn stop_keyframe(&self, id: KeyframeId)

Stop a keyframe animation

Source

pub fn remove_keyframe(&self, id: KeyframeId)

Remove a keyframe animation

Source

pub fn register_timeline(&self, timeline: Timeline) -> Option<TimelineId>

Register a timeline and return its ID

Source

pub fn is_timeline_playing(&self, id: TimelineId) -> bool

Check if timeline is playing

Source

pub fn start_timeline(&self, id: TimelineId)

Start a timeline

Source

pub fn stop_timeline(&self, id: TimelineId)

Stop a timeline

Source

pub fn remove_timeline(&self, id: TimelineId)

Remove a timeline

Source

pub fn with_timeline<F, R>(&self, id: TimelineId, f: F) -> Option<R>
where F: FnOnce(&mut Timeline) -> R,

Access a timeline to add entries or get values

The closure receives a mutable reference to the timeline. Returns None if the scheduler is dropped or timeline doesn’t exist.

Source

pub fn is_alive(&self) -> bool

Check if the scheduler is still alive

Source

pub fn register_tick_callback<F>(&self, callback: F) -> Option<TickCallbackId>
where F: FnMut(f32) + Send + Sync + 'static,

Register a tick callback that runs each frame

The callback receives delta time in seconds. Use this to integrate custom systems (like ECS) with the animation scheduler’s background thread.

Returns None if the scheduler has been dropped.

§Example
let world = Arc::new(Mutex::new(World::new()));
let world_clone = world.clone();
let id = handle.register_tick_callback(move |dt| {
    let mut world = world_clone.lock().unwrap();
    // Run ECS systems with delta time
    world.run_systems(dt);
});
Source

pub fn remove_tick_callback(&self, id: TickCallbackId)

Remove a tick callback

Trait Implementations§

Source§

impl AnimationAccess for SchedulerHandle

Implement AnimationAccess for SchedulerHandle

This allows the handle to be used with ValueContext for resolving dynamic animation values at render time.

Source§

fn get_spring_value(&self, id: u64, generation: u32) -> Option<f32>

Get a spring’s current value
Source§

fn get_keyframe_value(&self, id: u64) -> Option<f32>

Get a keyframe animation’s current value
Source§

fn get_timeline_value(&self, _timeline_id: u64, _property: &str) -> Option<f32>

Get a timeline’s current value for a given property
Source§

impl Clone for SchedulerHandle

Source§

fn clone(&self) -> SchedulerHandle

Returns a duplicate of the value. Read more
1.0.0 · 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<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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> NodeState for T
where T: Send + 'static,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Get self as Any for downcasting
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Get self as mutable Any for downcasting
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.
Source§

impl<T> Upcast<T> for T

Source§

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

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

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

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,