|
|
- #nullable enable
- using System;
- using Newtonsoft.Json;
- using Version = Hive.Versioning.Version;
-
- namespace IPA.JsonConverters
- {
- internal class SemverVersionConverter : JsonConverter<Version?>
- {
- public override Version? ReadJson(JsonReader reader, Type objectType, Version? existingValue, bool hasExistingValue, JsonSerializer serializer)
- => reader.Value is string s && Version.TryParse(s, out var version) ? version : existingValue;
-
- public override void WriteJson(JsonWriter writer, Version? value, JsonSerializer serializer)
- {
- if (value == null) writer.WriteNull();
- else writer.WriteValue(value.ToString());
- }
- }
- }
|