You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

17 lines
637 B

  1. using System;
  2. using Newtonsoft.Json;
  3. using Version = SemVer.Version;
  4. namespace IPA.JsonConverters
  5. {
  6. internal class SemverVersionConverter : JsonConverter<Version>
  7. {
  8. public override Version ReadJson(JsonReader reader, Type objectType, Version existingValue, bool hasExistingValue, JsonSerializer serializer) => reader.Value == null ? null : new Version(reader.Value as string, true);
  9. public override void WriteJson(JsonWriter writer, Version value, JsonSerializer serializer)
  10. {
  11. if (value == null) writer.WriteNull();
  12. else writer.WriteValue(value.ToString());
  13. }
  14. }
  15. }