sodium-rust 2.1.2

Sodium FRP (Functional Reactive Programming)
Documentation
use crate::Cell;
use crate::Stream;

/// Operational primitives that must be used with care because they
/// break non-detectability of `Cell` steps/updates.
pub struct Operational {}

impl Operational {
    pub fn updates<A: Clone + Send + 'static>(ca: &Cell<A>) -> Stream<A> {
        Stream {
            impl_: ca.impl_.updates(),
        }
    }

    pub fn value<A: Clone + Send + 'static>(ca: &Cell<A>) -> Stream<A> {
        Stream {
            impl_: ca.impl_.value(),
        }
    }

    pub fn defer<A: Clone + Send + 'static>(sa: &Stream<A>) -> Stream<A> {
        Stream {
            impl_: sa.impl_.defer(),
        }
    }
}