use core::{error, fmt};
use alloc::string::String;
#[derive(Clone, Debug, Eq, PartialEq)]
pub enum VcardParseError {
MissingCrlf(String),
MissingPropertyColon(String),
NonUtf8Header(String),
ExpectedBegin(String),
MissingEnd(String),
}
impl fmt::Display for VcardParseError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::MissingCrlf(data) => {
write!(f, "Content is missing a line separator: {data}")
}
Self::MissingPropertyColon(data) => {
write!(f, "Content line is missing a value separator: {data}")
}
Self::NonUtf8Header(data) => {
write!(
f,
"Content line name or parameters are not valid UTF-8: {data}"
)
}
Self::ExpectedBegin(data) => {
write!(f, "Card does not open with a BEGIN line: {data}")
}
Self::MissingEnd(data) => {
write!(f, "Card is left open by a missing END line: {data}")
}
}
}
}
impl error::Error for VcardParseError {}