public static ISourceAdapter <T> Union <T>(this ITarget <T> self, ITarget <T> other) { var lf = Lifetime.WhenAll(self.Lifetime, other.Lifetime); var signal = new SourceAdapter <T>(lf); self.Subscribe(x => { signal.Fire(x); }); other.Subscribe(x => { signal.Fire(x); }); return(signal); }
public static ISourceAdapter <TRes> Select <T, TRes>(this ITarget <T> self, Func <T, TRes> selector) { var lf = Lifetime.DefineDependent(self.Lifetime).Lifetime; var signal = new SourceAdapter <TRes>(lf); self.Subscribe(x => { signal.Fire(selector(x)); }); return(signal); }
public static ISourceAdapter <T> Where <T>(this ITarget <T> self, Func <T, bool> predecate) { var lf = Lifetime.DefineDependent(self.Lifetime).Lifetime; var signal = new SourceAdapter <T>(lf); self.Subscribe(x => { if (predecate(x)) { signal.Fire(x); } }); return(signal); }
private void Fire(T value) { _pureSourceAdapter.Fire(value); }