<PackageReference Include="Relativity.Transfer.Client" Version="7.2.7" />

PushToPullSink<TSource, TResult>

abstract class PushToPullSink<TSource, TResult> : IObserver<TSource>, IEnumerator<TResult>, IDisposable, IEnumerator
using System.Collections; using System.Collections.Generic; namespace System.Reactive.Linq.ObservableImpl { internal abstract class PushToPullSink<TSource, TResult> : IObserver<TSource>, IEnumerator<TResult>, IDisposable, IEnumerator { private readonly IDisposable _subscription; private bool _done; public TResult Current { get; set; } object IEnumerator.Current { get { return Current; } } public PushToPullSink(IDisposable subscription) { _subscription = subscription; } public abstract void OnNext(TSource value); public abstract void OnError(Exception error); public abstract void OnCompleted(); public abstract bool TryMoveNext(out TResult current); public bool MoveNext() { if (!_done) { if (TryMoveNext(out TResult current)) { Current = current; return true; } _done = true; _subscription.Dispose(); } return false; } public void Reset() { throw new NotSupportedException(); } public void Dispose() { _subscription.Dispose(); } } }