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

While<TSource>

sealed class While<TSource> : Producer<TSource, _<TSource>>, IConcatenatable<TSource>
using System.Collections.Generic; namespace System.Reactive.Linq.ObservableImpl { internal sealed class While<TSource> : Producer<TSource, While<TSource>._>, IConcatenatable<TSource> { internal sealed class _ : ConcatSink<TSource> { public _(IObserver<TSource> observer, IDisposable cancel) : base(observer, cancel) { } public override void OnNext(TSource value) { _observer.OnNext(value); } public override void OnError(Exception error) { _observer.OnError(error); base.Dispose(); } } private readonly Func<bool> _condition; private readonly IObservable<TSource> _source; public While(Func<bool> condition, IObservable<TSource> source) { _condition = condition; _source = source; } protected override _ CreateSink(IObserver<TSource> observer, IDisposable cancel) { return new _(observer, cancel); } protected override IDisposable Run(_ sink) { return sink.Run(GetSources()); } public IEnumerable<IObservable<TSource>> GetSources() { while (this._condition()) { yield return this._source; } } } }