use thiserror::Error;
#[derive(Debug, Error)]
pub enum PermissionConfigError {
#[error("missing required field: {0}")]
MissingField(String),
#[error("invalid value for field '{field}': {reason}")]
InvalidValue {
field: String,
reason: String,
},
#[error("policy file not found: {0}")]
PolicyFileNotFound(String),
}
#[derive(Debug, Error)]
pub enum PermissionError {
#[error("permission denied for {operation} on {resource}")]
Denied {
resource: String,
operation: String,
},
#[error("role not found: {0}")]
RoleNotFound(String),
#[error("invalid policy configuration: {0}")]
InvalidPolicy(String),
#[error("rate limit exceeded")]
RateLimited,
#[error("policy parse error: {0}")]
ParseError(String),
}