use thiserror::Error;
#[derive(Debug, Error)]
pub enum JcsError {
#[error("duplicate object key: {key:?}")]
DuplicateKey { key: String },
#[error("invalid JSON: {reason}")]
InvalidJson { reason: String },
#[error("JSON parse error: {0}")]
ParseError(#[from] serde_json::Error),
#[error("schema validation failed: {0}")]
SchemaValidation(String),
#[error("JSON Schema error: {0}")]
SchemaError(String),
#[error("digest error: {0}")]
DigestError(String),
#[error("invalid profile: {reason}")]
InvalidProfile { reason: String },
#[error("resource ceiling exceeded: {resource} ({used} / {limit})")]
ResourceCeilingExceeded {
resource: String,
used: usize,
limit: usize,
},
}