Skip to main content

qdrant_client/builders/
dense_vector_builder.rs

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