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    #[allow(unused_mut)]
16    pub fn values(mut self, values: impl Into<Vec<f32>>) -> Self {
17        self.values = values.into();
18        self
19    }
20
21    /// Builds the desired type. Can often be omitted.
22    pub fn build(self) -> DenseVector {
23        DenseVector { data: self.values }
24    }
25}
26
27impl From<Vec<f32>> for DenseVector {
28    fn from(values: Vec<f32>) -> Self {
29        DenseVectorBuilder::new(values).build()
30    }
31}
32
33impl From<DenseVector> for Vector {
34    fn from(dense_vector: DenseVector) -> Self {
35        crate::qdrant::vector::Vector::from(dense_vector).into()
36    }
37}
38
39impl From<DenseVectorBuilder> for Vector {
40    fn from(dense_vector: DenseVectorBuilder) -> Self {
41        crate::qdrant::vector::Vector::from(dense_vector.build()).into()
42    }
43}
44
45impl From<DenseVector> for crate::qdrant::vector::Vector {
46    fn from(dense_vector: DenseVector) -> Self {
47        Self::Dense(dense_vector)
48    }
49}