in Microsoft.Shared.Dna.Json.Profile/JsonDna.cs [71:119]
private static bool ConfirmReader(JsonParser reader, Stopwatch watch)
{
bool valid = true;
bool parsed = false;
bool outcome = false;
bool asLogical = false;
long asIntegral = 0L;
double asFloating = 0D;
string asText = null;
while (valid && reader.Next())
{
parsed = true;
switch (reader.TokenType)
{
case JsonTokenType.Boolean:
outcome = reader.TryParseToken(out asLogical);
watch.Stop();
valid = valid && outcome && asLogical == Constants.LogicalValue;
watch.Start();
break;
case JsonTokenType.Integer:
outcome = reader.TryParseToken(out asIntegral);
watch.Stop();
valid = valid && outcome && asIntegral == Constants.IntegralValue;
watch.Start();
break;
case JsonTokenType.Float:
outcome = reader.TryParseToken(out asFloating);
watch.Stop();
valid = valid && outcome && asFloating == Constants.FloatValue;
watch.Start();
break;
case JsonTokenType.BeginProperty:
outcome = reader.TryParseToken(out asText);
watch.Stop();
valid = valid && outcome && Constants.AnyProperty.ContainsKey(asText);
watch.Start();
break;
case JsonTokenType.String:
outcome = reader.TryParseToken(out asText);
watch.Stop();
valid = valid && outcome && string.CompareOrdinal(asText, Constants.TextValue) == 0;
watch.Start();
break;
}
}
return parsed && valid;
}