qdrant_client/builders/
dense_vector_builder.rs

1use crate::qdrant::*;
2
3pub struct DenseVectorBuilder {
4    pub(crate) values: Vec<f32>,
5}
6
7impl DenseVectorBuilder {
8    pub fn new(values: impl Into<Vec<f32>>) -> Self {
9        Self {
10            values: values.into(),
11        }
12    }
13
14    #[allow(unused_mut)]
15    pub fn values(mut self, values: impl Into<Vec<f32>>) -> Self {
16        self.values = values.into();
17        self
18    }
19
20    /// Builds the desired type. Can often be omitted.
21    pub fn build(self) -> DenseVector {
22        DenseVector { data: self.values }
23    }
24}
25
26impl From<Vec<f32>> for DenseVector {
27    fn from(values: Vec<f32>) -> Self {
28        DenseVectorBuilder::new(values).build()
29    }
30}
31
32impl From<DenseVector> for Vector {
33    fn from(dense_vector: DenseVector) -> Self {
34        crate::qdrant::vector::Vector::from(dense_vector).into()
35    }
36}
37
38impl From<DenseVectorBuilder> for Vector {
39    fn from(dense_vector: DenseVectorBuilder) -> Self {
40        crate::qdrant::vector::Vector::from(dense_vector.build()).into()
41    }
42}
43
44impl From<DenseVector> for crate::qdrant::vector::Vector {
45    fn from(dense_vector: DenseVector) -> Self {
46        Self::Dense(dense_vector)
47    }
48}