use uuid::Uuid;
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum Error {
#[error("sqlite: {0}")]
Sqlite(#[from] rusqlite::Error),
#[error("json: {0}")]
Json(#[from] serde_json::Error),
#[error("io: {0}")]
Io(#[from] std::io::Error),
#[error("grit writer is closed")]
Closed,
#[error("not found: {0}")]
NotFound(Uuid),
#[error("invalid hlc: {0}")]
InvalidHlc(String),
#[error("db schema version {found} is newer than supported version {supported}")]
SchemaTooNew {
found: i64,
supported: i64,
},
#[error("invalid op: {0}")]
InvalidOp(String),
#[error("embedding: {0}")]
Embedding(String),
#[error("import: {0}")]
Import(String),
#[error("corrupt row: {0}")]
Corrupt(String),
}