using IPA.Updating.ModsaberML; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static IPA.Updating.ModsaberML.ApiEndpoint.Mod; namespace IPA.Updating.Converters { internal class ModsaberDependencyConverter : JsonConverter { public override Dependency ReadJson(JsonReader reader, Type objectType, Dependency existingValue, bool hasExistingValue, JsonSerializer serializer) { var parts = (reader.Value as string).Split('@'); return new Dependency() { Name = parts[0], VersionRange = new SemVer.Range(parts[1]) }; } public override void WriteJson(JsonWriter writer, Dependency value, JsonSerializer serializer) { writer.WriteValue($"{value.Name}@{value.VersionRange.ToString()}"); } } }