Browse Source

optimizations on OptionalConverter

pull/981/head
Christopher F 8 years ago
parent
commit
2299dc8cca
1 changed files with 10 additions and 5 deletions
  1. +10
    -5
      src/Discord.Net.Rest/Net/Converters/OptionalConverter.cs

+ 10
- 5
src/Discord.Net.Rest/Net/Converters/OptionalConverter.cs View File

@@ -18,15 +18,20 @@ namespace Discord.Net.Converters

public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
object obj;
T obj;
// custom converters need to be able to safely fail; move this check in here to prevent wasteful casting when parsing primitives
if (_innerConverter != null)
obj = _innerConverter.ReadJson(reader, typeof(T), null, serializer);
{
object o = _innerConverter.ReadJson(reader, typeof(T), null, serializer);
if (o is Optional<T>)
return o;

obj = (T)o;
}
else
obj = serializer.Deserialize<T>(reader);

if (obj is Optional<T>)
return obj;
return new Optional<T>((T)obj);
return new Optional<T>(obj);
}

public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)


Loading…
Cancel
Save