Skip to content

Commit 0bd43e4

Browse files
committed
refactor: change IntOrString and ResourceQuantity from records to structs, update implicit conversions, and simplify null checks
1 parent ff80688 commit 0bd43e4

File tree

7 files changed

+13
-13
lines changed

7 files changed

+13
-13
lines changed

src/KubernetesClient/Models/IntOrString.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
namespace k8s.Models
22
{
33
[JsonConverter(typeof(IntOrStringJsonConverter))]
4-
public record IntOrString
4+
public struct IntOrString
55
{
66
[JsonPropertyName("value")]
7-
public string Value { get; init; }
7+
public string Value { get; private init; }
88

99
public static implicit operator IntOrString(int v)
1010
{
11-
return new IntOrString(Convert.ToString(v));
11+
return Convert.ToString(v);
1212
}
1313

1414
public static implicit operator IntOrString(long v)
1515
{
16-
return new IntOrString(Convert.ToString(v));
16+
return Convert.ToString(v);
1717
}
1818

1919
public static implicit operator string(IntOrString v)
2020
{
21-
return v?.Value;
21+
return v.Value;
2222
}
2323

2424
public static implicit operator IntOrString(string v)
2525
{
26-
return new IntOrString(v);
26+
return new IntOrString { Value = v };
2727
}
2828

2929
public override string ToString()

src/KubernetesClient/Models/IntOrStringJsonConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public override void Write(Utf8JsonWriter writer, IntOrString value, JsonSeriali
2424
throw new ArgumentNullException(nameof(writer));
2525
}
2626

27-
var s = value?.Value;
27+
var s = value.Value;
2828

2929
if (long.TryParse(s, out var intv))
3030
{

src/KubernetesClient/Models/IntOrStringYamlConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public object ReadYaml(IParser parser, Type type, ObjectDeserializer rootDeseria
3535
public void WriteYaml(IEmitter emitter, object value, Type type, ObjectSerializer serializer)
3636
{
3737
var obj = (IntOrString)value;
38-
emitter?.Emit(new YamlDotNet.Core.Events.Scalar(obj?.Value));
38+
emitter?.Emit(new YamlDotNet.Core.Events.Scalar(obj.Value));
3939
}
4040
}
4141
}

src/KubernetesClient/Models/ResourceQuantity.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ namespace k8s.Models
5454
/// cause implementors to also use a fixed point implementation.
5555
/// </summary>
5656
[JsonConverter(typeof(ResourceQuantityJsonConverter))]
57-
public record ResourceQuantity
57+
public struct ResourceQuantity
5858
{
5959
public enum SuffixFormat
6060
{
@@ -171,7 +171,7 @@ private static bool HasMantissa(Fraction value)
171171

172172
public static implicit operator decimal(ResourceQuantity v)
173173
{
174-
return v?.ToDecimal() ?? 0;
174+
return v.ToDecimal();
175175
}
176176

177177
public static implicit operator ResourceQuantity(decimal v)

src/KubernetesClient/Models/ResourceQuantityJsonConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public override void Write(Utf8JsonWriter writer, ResourceQuantity value, JsonSe
2828
throw new ArgumentNullException(nameof(writer));
2929
}
3030

31-
writer.WriteStringValue(value?.ToString());
31+
writer.WriteStringValue(value.ToString());
3232
}
3333
}
3434
}

src/KubernetesClient/Models/ResourceQuantityYamlConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public object ReadYaml(IParser parser, Type type, ObjectDeserializer rootDeseria
3535
public void WriteYaml(IEmitter emitter, object value, Type type, ObjectSerializer serializer)
3636
{
3737
var obj = (ResourceQuantity)value;
38-
emitter?.Emit(new YamlDotNet.Core.Events.Scalar(obj?.ToString()));
38+
emitter?.Emit(new YamlDotNet.Core.Events.Scalar(obj.ToString()));
3939
}
4040
}
4141
}

tests/KubernetesClient.Classic.Tests/SimpleTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
namespace k8s.tests;
99

10-
public class BasicTests
10+
public class SimpleTests
1111
{
1212
// TODO: fail to setup asp.net core 6 on net48
1313
private class DummyHttpServer : System.IDisposable

0 commit comments

Comments
 (0)