예제 #1
0
        public static bool ReadBool(BinaryReader br)
        {
            var n = br.ReadUInt32();

            return(n switch
            {
                TrueNum => true,
                FalseNum => false,
                _ => throw TgRpcDeserializeException.UnexpectedBoolTypeNumber(n),
            });
예제 #2
0
        public static bool ReadBool(BinaryReader br)
        {
            var n = br.ReadUInt32();

            switch (n)
            {
            case TrueNum: return(true);

            case FalseNum: return(false);

            default: throw TgRpcDeserializeException.UnexpectedBoolTypeNumber(n);
            }
        }
예제 #3
0
        public static Func <BinaryReader, Arr <T> > ReadVector <T>(
            Func <BinaryReader, T> deserializer
            ) => br =>
        {
            var typeNumber = ReadUint(br);
            if (typeNumber != VectorNum)
            {
                throw TgRpcDeserializeException.UnexpectedVectorTypeNumber(typeNumber);
            }

            var count = ReadInt(br);
            var arr   = new T[count];
            for (var i = 0; i < count; i++)
            {
                arr[i] = deserializer(br);
            }
            return(arr.ToArr());
        };