use serde_json::Value;
use thiserror::Error;
pub type BoxError = Box<dyn std::error::Error + Send + Sync>;
#[derive(Error, Debug)]
pub enum BTreeError {
#[error("BTree index {name:?}, error: {source:?}")]
Generic { name: String, source: BoxError },
#[error("BTree index {name:?}, CBOR serialization error: {source:?}")]
Serialization { name: String, source: BoxError },
#[error("BTree index {name:?}, value {value:?} not found in document {id}")]
NotFound {
name: String,
id: Value,
value: Value,
},
#[error("BTree index {name:?}, value {value} already exists in document {id}")]
AlreadyExists {
name: String,
id: Value,
value: Value,
},
}