pub type Result<T> = core::result::Result<T, KeepsakeError>;
#[derive(Debug, thiserror::Error, Clone, PartialEq, Eq)]
pub enum KeepsakeError {
#[error("{field} must not be empty")]
EmptyIdentifier {
field: &'static str,
},
#[error("fulfillment threshold must be positive")]
InvalidFulfillmentThreshold,
#[error("relation {relation_id} is disabled")]
RelationDisabled {
relation_id: uuid::Uuid,
},
#[error("invalid keepsake lifecycle: {reason}")]
InvalidKeepsakeLifecycle {
reason: &'static str,
},
#[error(
"active relation keepsake uses relation {keepsake_relation_id}, but definition uses {relation_id}"
)]
ActiveRelationMismatch {
keepsake_relation_id: uuid::Uuid,
relation_id: uuid::Uuid,
},
#[error("active relation keepsake {keepsake_id} is not active")]
InactiveActiveRelation {
keepsake_id: uuid::Uuid,
},
}