cel_memory_postgres/
error.rs1use cel_memory::MemoryError;
5use thiserror::Error;
6
7#[derive(Debug, Error)]
9pub enum PostgresMemoryError {
10 #[error("postgres error: {0}")]
12 Sqlx(#[from] sqlx::Error),
13
14 #[error("migration failed: {0}")]
16 Migration(String),
17
18 #[error("embedding dim mismatch: provider expects {expected}, embedder declares {actual}")]
20 DimMismatch {
21 expected: usize,
23 actual: usize,
25 },
26
27 #[error("json error: {0}")]
29 Json(#[from] serde_json::Error),
30}
31
32impl From<PostgresMemoryError> for MemoryError {
33 fn from(e: PostgresMemoryError) -> Self {
34 match e {
35 PostgresMemoryError::DimMismatch { expected, actual } => MemoryError::InvalidArgument(
36 format!("embedding dim mismatch: expected {expected}, got {actual}"),
37 ),
38 PostgresMemoryError::Json(err) => MemoryError::Storage(format!("json: {err}")),
39 other => MemoryError::Storage(other.to_string()),
40 }
41 }
42}