Trait Observable
pub trait Observable: AsRef<Branch> {
type Event;
// Provided methods
fn observe<F>(&self, f: F) -> Arc<dyn Drop>
where F: Fn(&TransactionMut<'_>, &Self::Event) + 'static,
Event: AsRef<Self::Event> { ... }
fn observe_with<K, F>(&self, key: K, f: F)
where K: Into<Origin>,
F: Fn(&TransactionMut<'_>, &Self::Event) + 'static,
Event: AsRef<Self::Event> { ... }
fn unobserve<K>(&self, key: K) -> bool
where K: Into<Origin> { ... }
}Required Associated Types§
type Event
Provided Methods§
fn observe<F>(&self, f: F) -> Arc<dyn Drop>
fn observe<F>(&self, f: F) -> Arc<dyn Drop>
Subscribes a given callback to be triggered whenever current y-type is changed. A callback is triggered whenever a transaction gets committed. This function does not trigger if changes have been observed by nested shared collections.
All array-like event changes can be tracked by using [Event::delta] method. All map-like event changes can be tracked by using [Event::keys] method. All text-like event changes can be tracked by using TextEvent::delta method.
Returns a Subscription which, when dropped, will unsubscribe current callback.
fn observe_with<K, F>(&self, key: K, f: F)
fn observe_with<K, F>(&self, key: K, f: F)
Subscribes a given callback to be triggered whenever current y-type is changed. A callback is triggered whenever a transaction gets committed. This function does not trigger if changes have been observed by nested shared collections.
All array-like event changes can be tracked by using [Event::delta] method. All map-like event changes can be tracked by using [Event::keys] method. All text-like event changes can be tracked by using TextEvent::delta method.
Provided key may be used later to unsubscribe from the event.
fn unobserve<K>(&self, key: K) -> bool
fn unobserve<K>(&self, key: K) -> bool
Unsubscribes a given callback identified by key, that was previously subscribed using Self::observe_with.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.