Beispiel #1
0
        private bool UnpackPrimitiveInt8(LmPackFormat format, out sbyte value)
        {
            if (this.ReadData[this.Position] != (byte)format)
            {
                value = default;
                return(false);
            }

            this.Position++;
            value = unchecked ((sbyte)this.ReadData[this.Position]);
            this.Position++;

            return(true);
        }
Beispiel #2
0
        private bool UnpackPrimitiveUInt64(LmPackFormat format, out ulong value)
        {
            if (this.ReadData[this.Position] != (byte)format)
            {
                value = default;
                return(false);
            }

            this.Position++;
            value          = BitConverter.ToUInt64(this.ReadData, this.Position);
            this.Position += 8;

            return(true);
        }
Beispiel #3
0
        private bool UnpackContainerUInt16(LmPackFormat format, out ushort value)
        {
            if (this.ReadData[this.Position] != (byte)format)
            {
                value = default;
                return(false);
            }

            this.Position++;
            value          = BitConverter.ToUInt16(this.ReadData, this.Position);
            this.Position += sizeof(ushort);

            return(true);
        }
Beispiel #4
0
        private bool UnpackString(LmPackFormat format, out byte[] data, out uint size)
        {
            if (this.ReadData[this.Position] != (byte)format)
            {
                data = default;
                size = 0;
                return(false);
            }

            this.Position++;
            size           = BitConverter.ToUInt32(this.ReadData, this.Position);
            this.Position += 4;

            data = new byte[(int)size];
            Array.Copy(this.ReadData, this.Position, data, 0, (int)size);
            this.Position += (int)size;

            return(true);
        }
Beispiel #5
0
        private bool UnpackBin8(LmPackFormat format, out byte[] data, out uint size)
        {
            if (this.ReadData[this.Position] != (byte)format)
            {
                data = default;
                size = 0;
                return(false);
            }

            this.Position++;
            size = this.ReadData[this.Position];
            this.Position++;

            data = new byte[(int)size];
            Array.Copy(this.ReadData, this.Position, data, 0, (int)size);
            this.Position += (int)size;

            return(true);
        }