cel_memory_duckdb/
error.rs1use cel_memory::MemoryError;
5use thiserror::Error;
6
7#[derive(Debug, Error)]
9pub enum DuckdbMemoryError {
10 #[error("duckdb error: {0}")]
12 Duckdb(#[from] duckdb::Error),
13
14 #[error("migration failed ({name}): {source}")]
16 Migration {
17 name: String,
19 source: duckdb::Error,
21 },
22
23 #[error("embedding dim mismatch: provider expects {expected}, embedder declares {actual}")]
25 DimMismatch {
26 expected: usize,
28 actual: usize,
30 },
31
32 #[error("blocking task join failed: {0}")]
34 BlockingJoin(String),
35
36 #[error("json error: {0}")]
38 Json(#[from] serde_json::Error),
39}
40
41impl From<DuckdbMemoryError> for MemoryError {
42 fn from(e: DuckdbMemoryError) -> Self {
43 match e {
44 DuckdbMemoryError::DimMismatch { expected, actual } => MemoryError::InvalidArgument(
45 format!("embedding dim mismatch: expected {expected}, got {actual}"),
46 ),
47 DuckdbMemoryError::Json(err) => MemoryError::Storage(format!("json: {err}")),
48 other => MemoryError::Storage(other.to_string()),
49 }
50 }
51}