pub enum TimeEventCallback {
Python(Arc<PythonTimeEventCallback>),
Rust(Arc<dyn Fn(TimeEvent) + Send + Sync>),
RustLocal(Rc<dyn Fn(TimeEvent)>),
}Expand description
Represents a callback invoked 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 does not 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 and with LiveClock when its event channel
is drained on the callback’s originating thread.
§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.
Trait Implementations§
Source§impl Clone for TimeEventCallback
impl Clone for TimeEventCallback
Source§fn clone(&self) -> TimeEventCallback
fn clone(&self) -> TimeEventCallback
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§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.Auto Trait Implementations§
impl !RefUnwindSafe for TimeEventCallback
impl !Send for TimeEventCallback
impl !Sync 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