manifold_vectors/
integration.rs1use crate::dense::{VectorGuard, VectorIter};
4use manifold::StorageError;
5use uuid::Uuid;
6
7pub trait VectorSource<const DIM: usize> {
12 type Iter<'a>: Iterator<Item = Result<(Uuid, VectorGuard<'a, DIM>), StorageError>>
14 where
15 Self: 'a;
16
17 fn all_vectors(&self) -> Result<Self::Iter<'_>, StorageError>;
21
22 fn len(&self) -> Result<u64, StorageError>;
24
25 fn is_empty(&self) -> Result<bool, StorageError> {
27 Ok(self.len()? == 0)
28 }
29}
30
31impl<const DIM: usize> VectorSource<DIM> for crate::dense::VectorTableRead<DIM> {
32 type Iter<'a>
33 = VectorIter<'a, DIM>
34 where
35 Self: 'a;
36
37 fn all_vectors(&self) -> Result<Self::Iter<'_>, StorageError> {
38 self.all_vectors()
39 }
40
41 fn len(&self) -> Result<u64, StorageError> {
42 self.len()
43 }
44}