Apache.Arrow.Scalars.Variant.VariantEncodingHelper
namespace Apache.Arrow.Scalars.Variant
{
public ref struct VariantArrayReader
{
public int ElementCount { get; }
public VariantArrayReader(ReadOnlySpan<byte> metadata, ReadOnlySpan<byte> value);
public VariantReader GetElement(int index);
}
}
namespace Apache.Arrow.Scalars.Variant
{
public ref struct VariantObjectReader
{
public int FieldCount { get; }
public VariantObjectReader(ReadOnlySpan<byte> metadata, ReadOnlySpan<byte> value);
public int GetFieldId(int index);
public string GetFieldName(int index);
public ReadOnlySpan<byte> GetFieldNameBytes(int index);
public VariantReader GetFieldValue(int index);
public bool TryGetField(ReadOnlySpan<byte> name, out VariantReader value);
public bool TryGetField(string name, out VariantReader value);
}
}
namespace Apache.Arrow.Scalars.Variant
{
internal static class VariantEncodingHelper
{
public const int MetadataVersion = 1;
public static VariantBasicType GetBasicType(byte header);
public static int GetValueHeader(byte header);
public static byte MakeValueHeader(VariantBasicType basicType, int valueHeader);
public static VariantPrimitiveType GetPrimitiveType(byte header);
public static byte MakePrimitiveHeader(VariantPrimitiveType primitiveType);
public static int GetShortStringLength(byte header);
public static byte MakeShortStringHeader(int length);
public static byte MakeObjectHeader(int fieldIdSize, int offsetSize, bool isLarge);
public static void ParseObjectHeader(byte header, out int fieldIdSize, out int offsetSize, out bool isLarge);
public static byte MakeArrayHeader(int offsetSize, bool isLarge);
public static void ParseArrayHeader(byte header, out int offsetSize, out bool isLarge);
public static void ParseMetadataHeader(byte header, out int version, out bool sortedStrings, out int offsetSize);
public static byte MakeMetadataHeader(bool sortedStrings, int offsetSize);
public static int ReadLittleEndianInt(ReadOnlySpan<byte> span, int byteWidth);
public static void WriteLittleEndianInt(Span<byte> span, int value, int byteWidth);
public static int ByteWidthForValue(int value);
}
}