#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, thiserror::Error)]
pub enum Error {
#[error("Local part is empty")]
LocalPartEmpty,
#[error("Domain is empty")]
DomainEmpty,
#[error("Local part is too long: max = {0}, provided = {1}")]
LocalPartTooLong(usize, usize),
#[error("Invalid character")]
InvalidCharacter,
#[error("Missing separator character")]
MissingSeparator,
#[error("Domain part is too long: max = {0}, provided = {1}")]
DomainTooLong(usize, usize),
#[error("Sub-domain is empty")]
SubDomainEmpty,
#[error("Sub-domain is too long: max = {0}, provided = {1}")]
SubDomainTooLong(usize, usize),
#[error("End bracket is missing")]
MissingEndBracket,
}
pub type Result<T> = std::result::Result<T, Error>;