lance_index/vector/sq/
builder.rs1use crate::vector::quantizer::QuantizerBuildParams;
5
6#[derive(Debug, Clone)]
7pub struct SQBuildParams {
8 pub num_bits: u16,
10
11 pub sample_rate: usize,
13}
14
15impl From<&SQBuildParams> for crate::pb::vector_index_details::ScalarQuantization {
16 fn from(params: &SQBuildParams) -> Self {
17 Self {
18 num_bits: params.num_bits as u32,
19 }
20 }
21}
22
23impl Default for SQBuildParams {
24 fn default() -> Self {
25 Self {
26 num_bits: 8,
27 sample_rate: 256,
28 }
29 }
30}
31
32impl QuantizerBuildParams for SQBuildParams {
33 fn sample_size(&self) -> usize {
34 self.sample_rate * 2usize.pow(self.num_bits as u32)
35 }
36}