qdrant_client/builders/
dense_vector_builder.rs

1use crate::qdrant::*;
2
3#[derive(Clone)]
4pub struct DenseVectorBuilder {
5    pub(crate) values: Vec<f32>,
6}
7
8impl DenseVectorBuilder {
9    pub fn new(values: impl Into<Vec<f32>>) -> Self {
10        Self {
11            values: values.into(),
12        }
13    }
14
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}