#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniBlockLayout {
#[prost(message, optional, tag = "1")]
pub rep_compression: ::core::option::Option<CompressiveEncoding>,
#[prost(message, optional, tag = "2")]
pub def_compression: ::core::option::Option<CompressiveEncoding>,
#[prost(message, optional, tag = "3")]
pub value_compression: ::core::option::Option<CompressiveEncoding>,
#[prost(message, optional, tag = "4")]
pub dictionary: ::core::option::Option<CompressiveEncoding>,
#[prost(uint64, tag = "5")]
pub num_dictionary_items: u64,
#[prost(enumeration = "RepDefLayer", repeated, tag = "6")]
pub layers: ::prost::alloc::vec::Vec<i32>,
#[prost(uint64, tag = "7")]
pub num_buffers: u64,
#[prost(uint32, tag = "8")]
pub repetition_index_depth: u32,
#[prost(uint64, tag = "9")]
pub num_items: u64,
#[prost(bool, tag = "10")]
pub has_large_chunk: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FullZipLayout {
#[prost(uint32, tag = "1")]
pub bits_rep: u32,
#[prost(uint32, tag = "2")]
pub bits_def: u32,
#[prost(uint32, tag = "5")]
pub num_items: u32,
#[prost(uint32, tag = "6")]
pub num_visible_items: u32,
#[prost(message, optional, tag = "7")]
pub value_compression: ::core::option::Option<CompressiveEncoding>,
#[prost(enumeration = "RepDefLayer", repeated, tag = "8")]
pub layers: ::prost::alloc::vec::Vec<i32>,
#[prost(oneof = "full_zip_layout::Details", tags = "3, 4")]
pub details: ::core::option::Option<full_zip_layout::Details>,
}
pub mod full_zip_layout {
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Details {
#[prost(uint32, tag = "3")]
BitsPerValue(u32),
#[prost(uint32, tag = "4")]
BitsPerOffset(u32),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SparseLayout {
#[prost(message, optional, tag = "1")]
pub value_compression: ::core::option::Option<CompressiveEncoding>,
#[prost(uint64, tag = "2")]
pub num_buffers: u64,
#[prost(uint64, tag = "3")]
pub num_items: u64,
#[prost(uint64, tag = "4")]
pub num_visible_items: u64,
#[prost(bool, tag = "5")]
pub has_large_chunk: bool,
#[prost(message, repeated, tag = "6")]
pub structural_layers: ::prost::alloc::vec::Vec<SparseStructuralLayer>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SparseStructuralLayer {
#[prost(oneof = "sparse_structural_layer::Layer", tags = "1, 2, 3")]
pub layer: ::core::option::Option<sparse_structural_layer::Layer>,
}
pub mod sparse_structural_layer {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Layer {
#[prost(message, tag = "1")]
Validity(super::SparseValidityLayer),
#[prost(message, tag = "2")]
List(super::SparseListLayer),
#[prost(message, tag = "3")]
FixedSizeList(super::SparseFixedSizeListLayer),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SparseValidityLayer {
#[prost(uint64, tag = "1")]
pub num_slots: u64,
#[prost(message, optional, tag = "2")]
pub validity: ::core::option::Option<SparseValiditySet>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SparseListLayer {
#[prost(uint64, tag = "1")]
pub num_slots: u64,
#[prost(uint64, tag = "2")]
pub num_child_slots: u64,
#[prost(message, optional, tag = "3")]
pub non_empty_positions: ::core::option::Option<SparsePositionSet>,
#[prost(message, optional, tag = "4")]
pub counts: ::core::option::Option<SparseCountSet>,
#[prost(message, optional, tag = "5")]
pub validity: ::core::option::Option<SparseValiditySet>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SparseFixedSizeListLayer {
#[prost(uint64, tag = "1")]
pub num_slots: u64,
#[prost(uint64, tag = "2")]
pub dimension: u64,
#[prost(message, optional, tag = "3")]
pub validity: ::core::option::Option<SparseValiditySet>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SparseValiditySet {
#[prost(enumeration = "sparse_validity_set::Meaning", tag = "1")]
pub meaning: i32,
#[prost(message, optional, tag = "2")]
pub positions: ::core::option::Option<SparsePositionSet>,
}
pub mod sparse_validity_set {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum Meaning {
SparseValidityUnspecified = 0,
SparseValidityNullPositions = 1,
SparseValidityValidPositions = 2,
}
impl Meaning {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::SparseValidityUnspecified => "SPARSE_VALIDITY_UNSPECIFIED",
Self::SparseValidityNullPositions => "SPARSE_VALIDITY_NULL_POSITIONS",
Self::SparseValidityValidPositions => "SPARSE_VALIDITY_VALID_POSITIONS",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SPARSE_VALIDITY_UNSPECIFIED" => Some(Self::SparseValidityUnspecified),
"SPARSE_VALIDITY_NULL_POSITIONS" => {
Some(Self::SparseValidityNullPositions)
}
"SPARSE_VALIDITY_VALID_POSITIONS" => {
Some(Self::SparseValidityValidPositions)
}
_ => None,
}
}
}
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SparsePositionEmpty {}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SparsePositionAll {}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SparsePositionRange {
#[prost(uint64, tag = "1")]
pub start: u64,
#[prost(uint64, tag = "2")]
pub length: u64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SparsePositionSet {
#[prost(uint64, tag = "5")]
pub num_positions: u64,
#[prost(oneof = "sparse_position_set::Positions", tags = "1, 2, 3, 4")]
pub positions: ::core::option::Option<sparse_position_set::Positions>,
}
pub mod sparse_position_set {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Positions {
#[prost(message, tag = "1")]
Explicit(super::CompressiveEncoding),
#[prost(message, tag = "2")]
Range(super::SparsePositionRange),
#[prost(message, tag = "3")]
All(super::SparsePositionAll),
#[prost(message, tag = "4")]
Empty(super::SparsePositionEmpty),
}
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SparseCountEmpty {}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SparseCountConstant {
#[prost(uint64, tag = "1")]
pub value: u64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SparseCountSet {
#[prost(oneof = "sparse_count_set::Counts", tags = "1, 2, 3")]
pub counts: ::core::option::Option<sparse_count_set::Counts>,
}
pub mod sparse_count_set {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Counts {
#[prost(message, tag = "1")]
Explicit(super::CompressiveEncoding),
#[prost(message, tag = "2")]
Constant(super::SparseCountConstant),
#[prost(message, tag = "3")]
Empty(super::SparseCountEmpty),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConstantLayout {
#[prost(enumeration = "RepDefLayer", repeated, tag = "5")]
pub layers: ::prost::alloc::vec::Vec<i32>,
#[prost(bytes = "vec", optional, tag = "6")]
pub inline_value: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
#[prost(message, optional, tag = "7")]
pub rep_compression: ::core::option::Option<CompressiveEncoding>,
#[prost(message, optional, tag = "8")]
pub def_compression: ::core::option::Option<CompressiveEncoding>,
#[prost(uint64, tag = "9")]
pub num_rep_values: u64,
#[prost(uint64, tag = "10")]
pub num_def_values: u64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BlobLayout {
#[prost(message, optional, boxed, tag = "1")]
pub inner_layout: ::core::option::Option<::prost::alloc::boxed::Box<PageLayout>>,
#[prost(enumeration = "RepDefLayer", repeated, tag = "2")]
pub layers: ::prost::alloc::vec::Vec<i32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PageLayout {
#[prost(oneof = "page_layout::Layout", tags = "1, 2, 3, 4, 5")]
pub layout: ::core::option::Option<page_layout::Layout>,
}
pub mod page_layout {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Layout {
#[prost(message, tag = "1")]
MiniBlockLayout(super::MiniBlockLayout),
#[prost(message, tag = "2")]
ConstantLayout(super::ConstantLayout),
#[prost(message, tag = "3")]
FullZipLayout(super::FullZipLayout),
#[prost(message, tag = "4")]
BlobLayout(::prost::alloc::boxed::Box<super::BlobLayout>),
#[prost(message, tag = "5")]
SparseLayout(super::SparseLayout),
}
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct BufferCompression {
#[prost(enumeration = "CompressionScheme", tag = "1")]
pub scheme: i32,
#[prost(int32, optional, tag = "2")]
pub level: ::core::option::Option<i32>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Flat {
#[prost(uint64, tag = "1")]
pub bits_per_value: u64,
#[prost(message, optional, tag = "2")]
pub data: ::core::option::Option<BufferCompression>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Variable {
#[prost(message, optional, boxed, tag = "1")]
pub offsets: ::core::option::Option<::prost::alloc::boxed::Box<CompressiveEncoding>>,
#[prost(message, optional, tag = "2")]
pub values: ::core::option::Option<BufferCompression>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Constant {
#[prost(bytes = "vec", optional, tag = "1")]
pub value: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OutOfLineBitpacking {
#[prost(uint64, tag = "1")]
pub uncompressed_bits_per_value: u64,
#[prost(message, optional, boxed, tag = "3")]
pub values: ::core::option::Option<::prost::alloc::boxed::Box<CompressiveEncoding>>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct InlineBitpacking {
#[prost(uint64, tag = "1")]
pub uncompressed_bits_per_value: u64,
#[prost(message, optional, tag = "2")]
pub values: ::core::option::Option<BufferCompression>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Fsst {
#[prost(bytes = "vec", tag = "1")]
pub symbol_table: ::prost::alloc::vec::Vec<u8>,
#[prost(message, optional, boxed, tag = "2")]
pub values: ::core::option::Option<::prost::alloc::boxed::Box<CompressiveEncoding>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Dictionary {
#[prost(message, optional, boxed, tag = "1")]
pub indices: ::core::option::Option<::prost::alloc::boxed::Box<CompressiveEncoding>>,
#[prost(message, optional, boxed, tag = "2")]
pub items: ::core::option::Option<::prost::alloc::boxed::Box<CompressiveEncoding>>,
#[prost(uint32, tag = "3")]
pub num_dictionary_items: u32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Rle {
#[prost(message, optional, boxed, tag = "1")]
pub values: ::core::option::Option<::prost::alloc::boxed::Box<CompressiveEncoding>>,
#[prost(message, optional, boxed, tag = "2")]
pub run_lengths: ::core::option::Option<
::prost::alloc::boxed::Box<CompressiveEncoding>,
>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FixedSizeList {
#[prost(uint64, tag = "1")]
pub items_per_value: u64,
#[prost(bool, tag = "3")]
pub has_validity: bool,
#[prost(message, optional, boxed, tag = "2")]
pub values: ::core::option::Option<::prost::alloc::boxed::Box<CompressiveEncoding>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PackedStruct {
#[prost(uint64, repeated, tag = "1")]
pub bits_per_value: ::prost::alloc::vec::Vec<u64>,
#[prost(message, optional, boxed, tag = "2")]
pub values: ::core::option::Option<::prost::alloc::boxed::Box<CompressiveEncoding>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VariablePackedStruct {
#[prost(message, repeated, tag = "1")]
pub fields: ::prost::alloc::vec::Vec<variable_packed_struct::FieldEncoding>,
}
pub mod variable_packed_struct {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldEncoding {
#[prost(message, optional, tag = "1")]
pub value: ::core::option::Option<super::CompressiveEncoding>,
#[prost(oneof = "field_encoding::Layout", tags = "2, 3")]
pub layout: ::core::option::Option<field_encoding::Layout>,
}
pub mod field_encoding {
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Layout {
#[prost(uint64, tag = "2")]
BitsPerValue(u64),
#[prost(uint64, tag = "3")]
BitsPerLength(u64),
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct General {
#[prost(message, optional, tag = "1")]
pub compression: ::core::option::Option<BufferCompression>,
#[prost(message, optional, boxed, tag = "3")]
pub values: ::core::option::Option<::prost::alloc::boxed::Box<CompressiveEncoding>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ByteStreamSplit {
#[prost(message, optional, boxed, tag = "1")]
pub values: ::core::option::Option<::prost::alloc::boxed::Box<CompressiveEncoding>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CompressiveEncoding {
#[prost(
oneof = "compressive_encoding::Compression",
tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13"
)]
pub compression: ::core::option::Option<compressive_encoding::Compression>,
}
pub mod compressive_encoding {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Compression {
#[prost(message, tag = "1")]
Flat(super::Flat),
#[prost(message, tag = "2")]
Variable(::prost::alloc::boxed::Box<super::Variable>),
#[prost(message, tag = "3")]
Constant(super::Constant),
#[prost(message, tag = "4")]
OutOfLineBitpacking(::prost::alloc::boxed::Box<super::OutOfLineBitpacking>),
#[prost(message, tag = "5")]
InlineBitpacking(super::InlineBitpacking),
#[prost(message, tag = "6")]
Fsst(::prost::alloc::boxed::Box<super::Fsst>),
#[prost(message, tag = "7")]
Dictionary(::prost::alloc::boxed::Box<super::Dictionary>),
#[prost(message, tag = "8")]
Rle(::prost::alloc::boxed::Box<super::Rle>),
#[prost(message, tag = "9")]
ByteStreamSplit(::prost::alloc::boxed::Box<super::ByteStreamSplit>),
#[prost(message, tag = "10")]
General(::prost::alloc::boxed::Box<super::General>),
#[prost(message, tag = "11")]
FixedSizeList(::prost::alloc::boxed::Box<super::FixedSizeList>),
#[prost(message, tag = "12")]
PackedStruct(::prost::alloc::boxed::Box<super::PackedStruct>),
#[prost(message, tag = "13")]
VariablePackedStruct(super::VariablePackedStruct),
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum RepDefLayer {
RepdefUnspecified = 0,
RepdefAllValidItem = 1,
RepdefAllValidList = 2,
RepdefNullableItem = 3,
RepdefNullableList = 4,
RepdefEmptyableList = 5,
RepdefNullAndEmptyList = 6,
}
impl RepDefLayer {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::RepdefUnspecified => "REPDEF_UNSPECIFIED",
Self::RepdefAllValidItem => "REPDEF_ALL_VALID_ITEM",
Self::RepdefAllValidList => "REPDEF_ALL_VALID_LIST",
Self::RepdefNullableItem => "REPDEF_NULLABLE_ITEM",
Self::RepdefNullableList => "REPDEF_NULLABLE_LIST",
Self::RepdefEmptyableList => "REPDEF_EMPTYABLE_LIST",
Self::RepdefNullAndEmptyList => "REPDEF_NULL_AND_EMPTY_LIST",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"REPDEF_UNSPECIFIED" => Some(Self::RepdefUnspecified),
"REPDEF_ALL_VALID_ITEM" => Some(Self::RepdefAllValidItem),
"REPDEF_ALL_VALID_LIST" => Some(Self::RepdefAllValidList),
"REPDEF_NULLABLE_ITEM" => Some(Self::RepdefNullableItem),
"REPDEF_NULLABLE_LIST" => Some(Self::RepdefNullableList),
"REPDEF_EMPTYABLE_LIST" => Some(Self::RepdefEmptyableList),
"REPDEF_NULL_AND_EMPTY_LIST" => Some(Self::RepdefNullAndEmptyList),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum CompressionScheme {
CompressionAlgorithmUnspecified = 0,
CompressionAlgorithmLz4 = 1,
CompressionAlgorithmZstd = 2,
}
impl CompressionScheme {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::CompressionAlgorithmUnspecified => "COMPRESSION_ALGORITHM_UNSPECIFIED",
Self::CompressionAlgorithmLz4 => "COMPRESSION_ALGORITHM_LZ4",
Self::CompressionAlgorithmZstd => "COMPRESSION_ALGORITHM_ZSTD",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"COMPRESSION_ALGORITHM_UNSPECIFIED" => {
Some(Self::CompressionAlgorithmUnspecified)
}
"COMPRESSION_ALGORITHM_LZ4" => Some(Self::CompressionAlgorithmLz4),
"COMPRESSION_ALGORITHM_ZSTD" => Some(Self::CompressionAlgorithmZstd),
_ => None,
}
}
}