use thiserror::Error;
#[non_exhaustive]
#[derive(Debug, Error)]
pub enum ProvenanceError {
#[error("invalid: {0}")]
Invalid(String),
#[error("chain broken at sequence {sequence}: {reason}")]
ChainBroken {
sequence: u64,
reason: String,
},
#[error("repository error: {0}")]
Repository(String),
#[error("unsupported chain_version {0}: known versions are 1, 2")]
UnsupportedChainVersion(u8),
#[error("serialization failed")]
Serialization(#[source] serde_json::Error),
}