#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BloomFilterMeta {
#[prost(uint64, tag = "1")]
pub rows_per_segment: u64,
#[prost(uint64, tag = "2")]
pub segment_count: u64,
#[prost(uint64, tag = "3")]
pub row_count: u64,
#[prost(uint64, tag = "4")]
pub bloom_filter_size: u64,
#[prost(uint64, repeated, tag = "5")]
pub segment_loc_indices: ::prost::alloc::vec::Vec<u64>,
#[prost(message, repeated, tag = "6")]
pub bloom_filter_locs: ::prost::alloc::vec::Vec<BloomFilterLoc>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct BloomFilterLoc {
#[prost(uint64, tag = "1")]
pub offset: u64,
#[prost(uint64, tag = "2")]
pub size: u64,
#[prost(uint64, tag = "3")]
pub element_count: u64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InvertedIndexMetas {
#[prost(map = "string, message", tag = "1")]
pub metas: ::std::collections::HashMap<
::prost::alloc::string::String,
InvertedIndexMeta,
>,
#[prost(uint64, tag = "2")]
pub total_row_count: u64,
#[prost(uint64, tag = "3")]
pub segment_row_count: u64,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct InvertedIndexMeta {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(uint64, tag = "2")]
pub base_offset: u64,
#[prost(uint64, tag = "3")]
pub inverted_index_size: u64,
#[prost(uint32, tag = "4")]
pub relative_fst_offset: u32,
#[prost(uint32, tag = "5")]
pub fst_size: u32,
#[prost(uint32, tag = "6")]
pub relative_null_bitmap_offset: u32,
#[prost(uint32, tag = "7")]
pub null_bitmap_size: u32,
#[prost(message, optional, tag = "8")]
pub stats: ::core::option::Option<InvertedIndexStats>,
#[prost(enumeration = "BitmapType", tag = "9")]
pub bitmap_type: i32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct InvertedIndexStats {
#[prost(uint64, tag = "1")]
pub null_count: u64,
#[prost(uint64, tag = "2")]
pub distinct_count: u64,
#[prost(bytes = "vec", tag = "3")]
pub min_value: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "4")]
pub max_value: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum BitmapType {
BitVec = 0,
Roaring = 1,
}
impl BitmapType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::BitVec => "BitVec",
Self::Roaring => "Roaring",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"BitVec" => Some(Self::BitVec),
"Roaring" => Some(Self::Roaring),
_ => None,
}
}
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct VectorIndexMeta {
#[prost(enumeration = "VectorIndexEngine", tag = "1")]
pub engine: i32,
#[prost(uint32, tag = "2")]
pub dim: u32,
#[prost(enumeration = "VectorDistanceMetric", tag = "3")]
pub metric: i32,
#[prost(uint32, tag = "4")]
pub connectivity: u32,
#[prost(uint32, tag = "5")]
pub expansion_add: u32,
#[prost(uint32, tag = "6")]
pub expansion_search: u32,
#[prost(uint32, tag = "7")]
pub null_bitmap_size: u32,
#[prost(uint64, tag = "8")]
pub index_size: u64,
#[prost(message, optional, tag = "9")]
pub stats: ::core::option::Option<VectorIndexStats>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct VectorIndexStats {
#[prost(uint64, tag = "1")]
pub total_row_count: u64,
#[prost(uint64, tag = "2")]
pub indexed_row_count: u64,
#[prost(uint64, tag = "3")]
pub null_count: u64,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum VectorIndexEngine {
Usearch = 0,
}
impl VectorIndexEngine {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Usearch => "VECTOR_INDEX_ENGINE_USEARCH",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"VECTOR_INDEX_ENGINE_USEARCH" => Some(Self::Usearch),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum VectorDistanceMetric {
L2sq = 0,
Cosine = 1,
InnerProduct = 2,
}
impl VectorDistanceMetric {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::L2sq => "VECTOR_DISTANCE_METRIC_L2SQ",
Self::Cosine => "VECTOR_DISTANCE_METRIC_COSINE",
Self::InnerProduct => "VECTOR_DISTANCE_METRIC_INNER_PRODUCT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"VECTOR_DISTANCE_METRIC_L2SQ" => Some(Self::L2sq),
"VECTOR_DISTANCE_METRIC_COSINE" => Some(Self::Cosine),
"VECTOR_DISTANCE_METRIC_INNER_PRODUCT" => Some(Self::InnerProduct),
_ => None,
}
}
}