cel_memory_sqlite/
error.rs1use cel_memory::MemoryError;
7use thiserror::Error;
8
9#[derive(Debug, Error)]
11pub enum SqliteMemoryError {
12 #[error("sqlite error: {0}")]
14 Sqlite(#[from] rusqlite::Error),
15
16 #[error("migration {name} failed: {source}")]
18 Migration {
19 name: String,
21 #[source]
23 source: rusqlite::Error,
24 },
25
26 #[error("sqlite-vec load failed: {0}")]
28 VecLoad(String),
29
30 #[error("blocking task panicked: {0}")]
32 BlockingJoin(String),
33
34 #[error("embedding dim mismatch: provider expects {expected}, embedder produced {actual}")]
36 DimMismatch {
37 expected: usize,
39 actual: usize,
41 },
42
43 #[error("json error: {0}")]
45 Json(#[from] serde_json::Error),
46}
47
48impl From<SqliteMemoryError> for MemoryError {
49 fn from(e: SqliteMemoryError) -> Self {
50 match e {
51 SqliteMemoryError::DimMismatch { expected, actual } => MemoryError::InvalidArgument(
52 format!("embedding dim mismatch: expected {expected}, got {actual}"),
53 ),
54 SqliteMemoryError::Json(err) => MemoryError::Storage(format!("json: {err}")),
55 other => MemoryError::Storage(other.to_string()),
56 }
57 }
58}