private static int GetArrayOrObjectPrefixLength()

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;
            }