Struct cfrp::primitives::fork::Branch [] [src]

pub struct Branch<A> where A: 'static + Send {
    // some fields omitted
}

A data source of type A which can be used as input more than once

This operation is equivalent to a "let" binding, or variable assignment. Branch implements Clone, and each clone runs in its own thread.

Branches are returned when add is called on a Builder

Methods

impl<A> Branch<A> where A: 'static + Send

fn new(config: Config, fork_txs: Arc<Mutex<Vec<SyncSender<Event<A>>>>>, source_rx: Option<Receiver<Event<A>>>, initial: SignalType<A>) -> Branch<A>

Trait Implementations

impl<A> Signal<A> for Branch<A> where A: 'static + Send + Clone

fn config(&self) -> Config

fn initial(&self) -> SignalType<A>

fn push_to(self: Box<Self>, target: Option<Box<Push<A>>>)

fn init(&mut self)

impl<A> SignalExt<A> for Branch<A> where A: 'static + Send + Clone

fn lift<F, B>(self, f: F) -> LiftSignal<F, A, B> where F: 'static + Send + Fn(A) -> B, B: 'static + Send + Clone

fn lift2<F, SB, B, C>(self, right: SB, f: F) -> Lift2Signal<F, A, B, C> where SB: 'static + Signal<B>, F: 'static + Send + Fn(Value<A>, Value<B>) -> C, B: 'static + Send + Clone, C: 'static + Send + Clone

fn fold<F, B>(self, initial: B, f: F) -> FoldSignal<F, A, B> where F: 'static + Send + Fn(B, A) -> B, B: 'static + Send + Clone

fn add_to(self, builder: &Builder) -> Branch<A>

fn async(self, builder: &Builder) -> Branch<A>

fn map<F, B>(self, f: F) -> LiftSignal<F, A, B> where F: 'static + Send + Fn(A) -> B, B: 'static + Send + Clone

fn zip<SB, B>(self, right: SB) -> Box<Signal<(Value<A>, Value<B>)>> where SB: 'static + Signal<B>, B: 'static + Send + Clone

fn enumerate(self) -> Box<Signal<(usize, A)>>

fn filter<F>(self, f: F) -> Box<Signal<Option<A>>> where F: 'static + Send + Fn(&A) -> bool

fn inspect<F>(self, f: F) -> Box<Signal<A>> where F: 'static + Send + Fn(&A) -> bool

impl<A> Clone for Branch<A> where A: 'static + Send + Clone

fn clone(&self) -> Branch<A>

fn clone_from(&mut self, source: &Self)