use crate::collection::tier::StorageTier;
use crate::flat::FlatIndex;
use crate::hnsw::{HnswIndex, HnswParams};
use crate::mmap_segment::MmapVectorSegment;
use crate::quantize::pq::PqCodec;
use crate::quantize::sq8::Sq8Codec;
pub const DEFAULT_SEAL_THRESHOLD: usize = 65_536;
pub struct BuildRequest {
pub key: String,
pub segment_id: u32,
pub vectors: Vec<Vec<f32>>,
pub dim: usize,
pub params: HnswParams,
}
pub struct BuildComplete {
pub key: String,
pub segment_id: u32,
pub index: HnswIndex,
}
pub struct BuildingSegment {
pub flat: FlatIndex,
pub base_id: u32,
pub segment_id: u32,
}
pub struct SealedSegment {
pub index: HnswIndex,
pub base_id: u32,
pub sq8: Option<(Sq8Codec, Vec<u8>)>,
pub pq: Option<(PqCodec, Vec<u8>)>,
pub tier: StorageTier,
pub mmap_vectors: Option<MmapVectorSegment>,
}