use thiserror::Error;
#[derive(Debug, Error, Clone, PartialEq)]
pub enum CoreError {
#[error("Entity ID too long: {0} characters (max 1024)")]
EntityIdTooLong(usize),
#[error("Entity ID must not be empty")]
EntityIdEmpty,
#[error("Missing required element: {0}")]
MissingRequiredElement(String),
#[error("Missing required attribute: {element}.{attribute}")]
MissingRequiredAttribute {
element: String,
attribute: String,
},
#[error("Invalid datetime: {0}")]
InvalidDateTime(String),
#[error("Invalid URI: {0}")]
InvalidUri(String),
#[error("Invalid SAML version: {0}")]
InvalidVersion(String),
#[error("Invalid SAML ID: {0}")]
InvalidId(String),
#[error("Invalid value for {field}: {value}")]
InvalidValue {
field: String,
value: String,
},
#[error("Unexpected element: {0}")]
UnexpectedElement(String),
#[error("Unexpected attribute: {0}")]
UnexpectedAttribute(String),
}