Skip to main content

ave_core/governance/
error.rs

1use thiserror::Error;
2
3#[derive(Debug, Error, Clone)]
4pub enum GovernanceError {
5    // Schema errors
6    #[error("schema '{schema_id}' does not exist")]
7    SchemaDoesNotExist { schema_id: String },
8
9    // Member errors
10    #[error("creator must be a governance member")]
11    CreatorNotMember,
12
13    #[error("member '{name}' not found")]
14    MemberNotFound { name: String },
15
16    // Quorum errors
17    #[error("no quorum found for role {role} and schema {schema_id}")]
18    QuorumNotFound { role: String, schema_id: String },
19
20    // Witnesses errors
21    #[error("attempting to obtain witnesses for a schema that does not exist")]
22    WitnessesForNonexistentSchema,
23
24    // Conversion errors
25    #[error("cannot convert value into GovernanceData: {details}")]
26    ConversionFailed { details: String },
27
28    // General error
29    #[error("{0}")]
30    Generic(String),
31}
32
33impl From<String> for GovernanceError {
34    fn from(s: String) -> Self {
35        Self::Generic(s)
36    }
37}
38
39impl From<&str> for GovernanceError {
40    fn from(s: &str) -> Self {
41        Self::Generic(s.to_string())
42    }
43}