use semver::Version;
#[derive(Debug, Clone, PartialEq, Eq)]
#[non_exhaustive]
pub enum SchemaRegistrationError {
InvalidJson(String),
AlreadyExists {
product_group: String,
version: Version,
},
InvalidVersion(String),
}
impl std::fmt::Display for SchemaRegistrationError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::InvalidJson(msg) => write!(f, "invalid JSON schema: {msg}"),
Self::AlreadyExists {
product_group,
version,
} => {
write!(f, "schema already exists for {product_group} v{version}")
}
Self::InvalidVersion(v) => write!(f, "invalid semver version: {v}"),
}
}
}
impl std::error::Error for SchemaRegistrationError {}