pub enum TimeEventCallback {
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§
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§
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
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