Development Documentation (main branch) - For stable release docs, see docs.rs/eidetica

Observable

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>
where F: Fn(&TransactionMut<'_>, &Self::Event) + 'static, Event: AsRef<Self::Event>,

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)
where K: Into<Origin>, F: Fn(&TransactionMut<'_>, &Self::Event) + 'static, Event: AsRef<Self::Event>,

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
where K: Into<Origin>,

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.

Implementors§