in Microsoft.Azure.Cosmos/src/Json/JsonReader.JsonBinaryReader.cs [615:690]
private static int GetArrayOrObjectPrefixLength(byte typeMarker)
{
int prefixLength;
switch (typeMarker)
{
// Array Values
case JsonBinaryEncoding.TypeMarker.Arr0:
case JsonBinaryEncoding.TypeMarker.Arr1:
prefixLength = 1;
break;
case JsonBinaryEncoding.TypeMarker.ArrL1:
prefixLength = 1 + 1;
break;
case JsonBinaryEncoding.TypeMarker.ArrL2:
prefixLength = 1 + 2;
break;
case JsonBinaryEncoding.TypeMarker.ArrL4:
prefixLength = 1 + 4;
break;
case JsonBinaryEncoding.TypeMarker.ArrLC1:
prefixLength = 1 + 1 + 1;
break;
case JsonBinaryEncoding.TypeMarker.ArrLC2:
prefixLength = 1 + 2 + 2;
break;
case JsonBinaryEncoding.TypeMarker.ArrLC4:
prefixLength = 1 + 4 + 4;
break;
// Object Values
case JsonBinaryEncoding.TypeMarker.Obj0:
case JsonBinaryEncoding.TypeMarker.Obj1:
prefixLength = 1;
break;
case JsonBinaryEncoding.TypeMarker.ObjL1:
prefixLength = 1 + 1;
break;
case JsonBinaryEncoding.TypeMarker.ObjL2:
prefixLength = 1 + 2;
break;
case JsonBinaryEncoding.TypeMarker.ObjL4:
prefixLength = 1 + 4;
break;
case JsonBinaryEncoding.TypeMarker.ObjLC1:
prefixLength = 1 + 1 + 1;
break;
case JsonBinaryEncoding.TypeMarker.ObjLC2:
prefixLength = 1 + 2 + 2;
break;
case JsonBinaryEncoding.TypeMarker.ObjLC4:
prefixLength = 1 + 4 + 4;
break;
case JsonBinaryEncoding.TypeMarker.ArrNumC1:
prefixLength = 1 + 1 + 1;
break;
case JsonBinaryEncoding.TypeMarker.ArrNumC2:
prefixLength = 1 + 1 + 2;
break;
case JsonBinaryEncoding.TypeMarker.ArrArrNumC1C1:
prefixLength = 1 + 1 + 1 + 1 + 1;
break;
case JsonBinaryEncoding.TypeMarker.ArrArrNumC2C2:
prefixLength = 1 + 1 + 1 + 2 + 2;
break;
default:
throw new ArgumentException($"Unknown typemarker: {typeMarker}");
}
return prefixLength;
}