1237 {
1241 ReadOnlySpan<byte>
readOnlySpan =
default(ReadOnlySpan<byte>);
1243 try
1244 {
1245 JsonTokenType tokenType = reader.TokenType;
1246 ReadOnlySpan<byte>
bytes;
1247 if ((tokenType == JsonTokenType.None || tokenType == JsonTokenType.PropertyName) && !reader.Read())
1248 {
1250 {
1251 bytes =
default(ReadOnlySpan<byte>);
1253 }
1256 return false;
1257 }
1258 switch (reader.TokenType)
1259 {
1260 case JsonTokenType.StartObject:
1261 case JsonTokenType.StartArray:
1262 {
1264 if (!reader.TrySkip())
1265 {
1267 {
1268 bytes =
default(ReadOnlySpan<byte>);
1270 }
1273 return false;
1274 }
1278 {
1279 bytes = reader.OriginalSpan;
1281 }
1282 else
1283 {
1285 }
1286 break;
1287 }
1288 case JsonTokenType.True:
1289 case JsonTokenType.False:
1290 case JsonTokenType.Null:
1292 {
1293 if (reader.HasValueSequence)
1294 {
1296 }
1297 else
1298 {
1300 }
1301 break;
1302 }
1304 return true;
1305 case JsonTokenType.Number:
1306 if (reader.HasValueSequence)
1307 {
1309 }
1310 else
1311 {
1313 }
1314 break;
1315 case JsonTokenType.String:
1316 {
1319 {
1320 bytes = reader.ValueSpan;
1323 break;
1324 }
1326 if (reader.HasValueSequence)
1327 {
1328 num += reader.ValueSequence.Length;
1329 }
1330 else
1331 {
1333 bytes = reader.ValueSpan;
1335 }
1337 break;
1338 }
1339 default:
1341 {
1342 bytes = reader.ValueSpan;
1344 bytes =
default(ReadOnlySpan<byte>);
1346 }
1349 return false;
1350 }
1351 }
1352 catch
1353 {
1355 throw;
1356 }
1359 {
1362 try
1363 {
1365 {
1367 }
1368 else
1369 {
1371 }
1373 }
1374 catch
1375 {
1378 throw;
1379 }
1380 }
1381 else
1382 {
1385 }
1386 return true;
1387 }
static ArrayPool< T > Shared
static JsonDocument CreateForLiteral(JsonTokenType tokenType)
static void CheckSupportedOptions(JsonReaderOptions readerOptions, string paramName)
static JsonDocument ParseUnrented(ReadOnlyMemory< byte > utf8Json, JsonReaderOptions readerOptions, JsonTokenType tokenType=JsonTokenType.None)
static void Parse(ReadOnlySpan< byte > utf8JsonSpan, JsonReaderOptions readerOptions, ref MetadataDb database, ref StackRowStack stack)
ReadOnlySequence< T > Slice(long start, long length)