diff --git a/src/NRedisStack/TimeSeries/DataTypes/TimeStamp.cs b/src/NRedisStack/TimeSeries/DataTypes/TimeStamp.cs index 5da7dc17..c7f67b4b 100644 --- a/src/NRedisStack/TimeSeries/DataTypes/TimeStamp.cs +++ b/src/NRedisStack/TimeSeries/DataTypes/TimeStamp.cs @@ -4,14 +4,14 @@ /// A class represents timestamp. /// Value can be either primitive long, DateTime or one of the strings "-", "+", "*". /// - public class TimeStamp + public readonly record struct TimeStamp { private static readonly string[] constants = { "-", "+", "*" }; /// /// TimeStamp value. /// - public object Value { get; private set; } + public object Value { get; } /// /// Build a TimeStamp from primitive long. @@ -34,7 +34,7 @@ public TimeStamp(string timestamp) { if (Array.IndexOf(constants, timestamp) == -1) { - throw new NotSupportedException(string.Format("The string {0} cannot be used", timestamp)); + throw new NotSupportedException($"The string {timestamp} cannot be used"); } Value = timestamp; } @@ -78,14 +78,6 @@ public static implicit operator long(TimeStamp ts) => /// TimeStamp public static implicit operator DateTime(TimeStamp timeStamp) => DateTimeOffset.FromUnixTimeMilliseconds(timeStamp).DateTime; - /// - /// Equality of TimeSeriesTuple objects - /// - /// Object to compare - /// If two TimeStamp objects are equal - public override bool Equals(object? obj) => - obj is TimeStamp stamp && EqualityComparer.Default.Equals(Value, stamp.Value); - /// /// TimeStamp object hash code. /// diff --git a/src/NRedisStack/TimeSeries/TimeSeriesAux.cs b/src/NRedisStack/TimeSeries/TimeSeriesAux.cs index b7dfb289..2cf7bb28 100644 --- a/src/NRedisStack/TimeSeries/TimeSeriesAux.cs +++ b/src/NRedisStack/TimeSeries/TimeSeriesAux.cs @@ -79,9 +79,9 @@ public static void AddOnDuplicate(this IList args, TsDuplicatePolicy? po } } - public static void AddAlign(this IList args, TimeStamp? align) + public static void AddAlign(this IList args, TimeStamp? alignMaybe) { - if (align != null) + if (alignMaybe is {} align) { args.Add(TimeSeriesArgs.ALIGN); args.Add(align.Value); @@ -200,11 +200,8 @@ public static void AddGroupby(this IList args, (string groupby, TsReduce public static void AddTimeStamp(this IList args, TimeStamp timeStamp) { - if (timeStamp != null) - { - args.Add(TimeSeriesArgs.TIMESTAMP); - args.Add(timeStamp.Value); - } + args.Add(TimeSeriesArgs.TIMESTAMP); + args.Add(timeStamp.Value); } public static void AddRule(this IList args, TimeSeriesRule rule) @@ -250,11 +247,11 @@ public static List BuildTsAddArgs(string key, TimeStamp timestamp, doubl return args; } - public static List BuildTsIncrDecrByArgs(string key, double value, TimeStamp? timestamp, long? retentionTime, + public static List BuildTsIncrDecrByArgs(string key, double value, TimeStamp? timestampMaybe, long? retentionTime, IReadOnlyCollection? labels, bool? uncompressed, long? chunkSizeBytes) { var args = new List { key, value }; - if (timestamp != null) args.AddTimeStamp(timestamp); + if (timestampMaybe is {} timestamp) args.AddTimeStamp(timestamp); args.AddRetentionTime(retentionTime); args.AddChunkSize(chunkSizeBytes); if (labels != null) args.AddLabels(labels);