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

System.Reactive.Timestamped<T>

public struct Timestamped<T> : IEquatable<Timestamped<T>>
Represents value with a timestamp on it. The timestamp typically represents the time the value was received, using an IScheduler's clock to obtain the current time.
namespace System.Reactive { public readonly struct Timestamped<[System.Runtime.CompilerServices.Nullable(2)] T> : IEquatable<Timestamped<T>> { public T Value { get; } public DateTimeOffset Timestamp { get; } public Timestamped(T value, DateTimeOffset timestamp); public void Deconstruct(out T value, out DateTimeOffset timestamp); public bool Equals(Timestamped<T> other); public static bool operator ==(Timestamped<T> first, Timestamped<T> second); public static bool operator !=(Timestamped<T> first, Timestamped<T> second); } }