private static IEnumerator <TResult> PushToPull <TSource, TResult>(IObservable <TSource> source, Action <Notification <TSource> > push, Func <Notification <TResult> > pull) { var subscription = new SingleAssignmentDisposable(); var adapter = new PushPullAdapter <TSource, TResult>(push, pull, subscription.Dispose); subscription.Disposable = source.SubscribeSafe(adapter); return(adapter); }
internal static IEnumerator <TSource> PushToPull <TSource>(this IObservable <TSource> source, Action <Notification <TSource> > push, Func <Notification <TSource> > pull) { var subscription = default(IDisposable); var adapter = new PushPullAdapter <TSource>(push, pull, () => subscription.Dispose()); subscription = source.Subscribe(adapter); return(adapter); }