use crate::layout::{
SECTION_ENCODING_FLOAT16, SECTION_ENCODING_INT4, SECTION_ENCODING_INT8, SECTION_ENCODING_RAW,
SECTION_ENCODING_ZSTD,
};
pub const REPRODUCIBLE_CREATED: &str = "1970-01-01T00:00:00Z";
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum SectionEncoding {
Raw,
Zstd,
}
impl SectionEncoding {
pub fn id(self) -> u32 {
match self {
Self::Raw => SECTION_ENCODING_RAW,
Self::Zstd => SECTION_ENCODING_ZSTD,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum EmbeddingDType {
Float32,
Float16,
Int8,
Int4,
}
impl EmbeddingDType {
pub fn manifest_str(self) -> &'static str {
match self {
Self::Float32 => "float32",
Self::Float16 => "float16",
Self::Int8 => "int8",
Self::Int4 => "int4",
}
}
pub fn encoding(self) -> u32 {
match self {
Self::Float32 => SECTION_ENCODING_RAW,
Self::Float16 => SECTION_ENCODING_FLOAT16,
Self::Int8 => SECTION_ENCODING_INT8,
Self::Int4 => SECTION_ENCODING_INT4,
}
}
}