public static new FixedArrayMarshalDescriptor FromReader(IBinaryStreamReader reader)
        {
            var descriptor = new FixedArrayMarshalDescriptor()
            {
                StartOffset = reader.Position,
            };

            uint value;
            if (!reader.TryReadCompressedUInt32(out value))
                return descriptor;
            descriptor.NumberOfElements = (int)value;

            if (reader.CanRead(sizeof(byte)))
                descriptor.ElementType = (NativeType)reader.ReadByte();
            return descriptor;
        }
        public new static FixedArrayMarshalDescriptor FromReader(IBinaryStreamReader reader)
        {
            var  descriptor = new FixedArrayMarshalDescriptor();
            uint value;

            if (!reader.TryReadCompressedUInt32(out value))
            {
                return(descriptor);
            }
            descriptor.NumberOfElements = (int)value;

            if (reader.CanRead(sizeof(byte)))
            {
                descriptor.ElementType = (NativeType)reader.ReadByte();
            }
            return(descriptor);
        }