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