pub enum TimeEventCallback {
Python(Arc<PythonTimeEventCallback>),
Rust(Arc<dyn Fn(TimeEvent) + Send + Sync>),
RustLocal(Rc<dyn Fn(TimeEvent)>),
}Expand description
Callback type for time events.
§Variants
Python: For Python callbacks (requirespythonfeature).Rust: Thread-safe callbacks usingArc. Use when the closure isSend + Sync.RustLocal: Single-threaded callbacks usingRc. Use when capturingRc<RefCell<...>>.
§Choosing Between Rust and RustLocal
Use Rust (thread-safe) when:
- The callback doesn’t capture
Rc<RefCell<...>>or other non-Sendtypes. - The closure is
Send + Sync(most simple closures qualify).
Use RustLocal when:
- The callback captures
Rc<RefCell<...>>for shared mutable state. - Thread safety constraints prevent using
Arc.
RustLocal works with TestClock. With LiveClock, use it only for existing
single-threaded callback paths; live timer callback registry dispatch is still pending.
§Automatic Conversion
- Closures that are
Fn + Send + Sync + 'staticautomatically convert toRust. Rc<dyn Fn(TimeEvent)>converts toRustLocal.Arc<dyn Fn(TimeEvent) + Send + Sync>converts toRust.
Variants§
Python(Arc<PythonTimeEventCallback>)
Python callable for use from Python via PyO3.
Rust(Arc<dyn Fn(TimeEvent) + Send + Sync>)
Thread-safe Rust callback using Arc (Send + Sync).
RustLocal(Rc<dyn Fn(TimeEvent)>)
Local Rust callback using Rc (not Send/Sync).
Implementations§
Source§impl TimeEventCallback
impl TimeEventCallback
Source§impl TimeEventCallback
impl TimeEventCallback
Sourcepub fn from_python_time_event(callback: Py<PyAny>) -> Self
pub fn from_python_time_event(callback: Py<PyAny>) -> Self
Creates a Python callback that receives a PyO3 TimeEvent.
Sourcepub fn from_python_legacy_capsule(callback: Py<PyAny>) -> Self
pub fn from_python_legacy_capsule(callback: Py<PyAny>) -> Self
Creates a legacy Python callback that receives a PyCapsule.
Trait Implementations§
Source§impl Clone for TimeEventCallback
impl Clone for TimeEventCallback
Source§impl Debug for TimeEventCallback
impl Debug for TimeEventCallback
Source§impl<F> From<F> for TimeEventCallback
impl<F> From<F> for TimeEventCallback
Source§impl From<Py<PyAny>> for TimeEventCallback
Available on crate feature python only.
impl From<Py<PyAny>> for TimeEventCallback
Available on crate feature
python only.impl Send for TimeEventCallback
impl Sync for TimeEventCallback
Auto Trait Implementations§
impl !RefUnwindSafe for TimeEventCallback
impl !UnwindSafe for TimeEventCallback
impl Freeze for TimeEventCallback
impl Unpin for TimeEventCallback
impl UnsafeUnpin for TimeEventCallback
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