<PackageReference Include="System.Reactive" Version="6.0.2" />

MostRecent<TSource>

sealed class MostRecent<TSource> : PushToPullAdapter<TSource, TSource>
using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; namespace System.Reactive.Linq.ObservableImpl { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(new byte[] { 0, 1, 1 })] internal sealed class MostRecent<[System.Runtime.CompilerServices.Nullable(2)] TSource> : PushToPullAdapter<TSource, TSource> { [System.Runtime.CompilerServices.Nullable(new byte[] { 0, 1, 1 })] private sealed class _ : PushToPullSink<TSource, TSource> { private volatile NotificationKind _kind; private TSource _value; [System.Runtime.CompilerServices.Nullable(2)] private Exception _error; public _(TSource initialValue) { _kind = NotificationKind.OnNext; _value = initialValue; } public override void OnNext(TSource value) { _value = value; _kind = NotificationKind.OnNext; } public override void OnError(Exception error) { Dispose(); _error = error; _kind = NotificationKind.OnError; } public override void OnCompleted() { Dispose(); _kind = NotificationKind.OnCompleted; } public override bool TryMoveNext([System.Diagnostics.CodeAnalysis.MaybeNullWhen(false)] out TSource current) { switch (_kind) { case NotificationKind.OnNext: current = _value; return true; case NotificationKind.OnError: _error.Throw(); break; } current = default(TSource); return false; } } private readonly TSource _initialValue; public MostRecent(IObservable<TSource> source, TSource initialValue) : base(source) { _initialValue = initialValue; } protected override PushToPullSink<TSource, TSource> Run() { return new _(_initialValue); } } }