Skip to main content

cognee_vector/
error.rs

1use thiserror::Error;
2
3/// Error type for vector database operations.
4#[derive(Error, Debug)]
5pub enum VectorDBError {
6    /// The requested collection does not exist.
7    #[error("Collection not found: {0}")]
8    CollectionNotFound(String),
9
10    /// A collection with the given name already exists.
11    #[error("Collection already exists: {0}")]
12    CollectionExists(String),
13
14    /// The vector dimension does not match the collection's expected dimension.
15    #[error("Dimension mismatch in collection '{collection}': expected {expected}, got {actual}")]
16    DimensionMismatch {
17        /// Collection name.
18        collection: String,
19        /// Expected vector dimension.
20        expected: usize,
21        /// Actual vector dimension provided.
22        actual: usize,
23    },
24
25    /// A generic storage-level error.
26    #[error("Storage error: {0}")]
27    StorageError(String),
28
29    /// An I/O error occurred.
30    #[error("IO error: {0}")]
31    IoError(#[from] std::io::Error),
32
33    /// A serialization or deserialization error occurred.
34    #[error("Serialization error: {0}")]
35    SerializationError(#[from] serde_json::Error),
36}
37
38/// Convenience `Result` alias for vector database operations.
39pub type VectorDBResult<T> = Result<T, VectorDBError>;