#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct UnknownFileType;
impl core::fmt::Display for UnknownFileType {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
f.write_str("unknown file type")
}
}
impl core::error::Error for UnknownFileType {}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct InvalidNumericRange;
impl core::fmt::Display for InvalidNumericRange {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
f.write_str("numeric range is invalid")
}
}
impl core::error::Error for InvalidNumericRange {}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct DigitsParseError;
impl core::fmt::Display for DigitsParseError {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
f.write_str("failed to parse digits")
}
}
impl core::error::Error for DigitsParseError {}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct DataTypeParseError;
impl core::fmt::Display for DataTypeParseError {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
f.write_str("failed to parse data type")
}
}
impl core::error::Error for DataTypeParseError {}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct TimeStampParseError {
kind: TimestampParseErrorKind,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct FlagParseError;
impl core::fmt::Display for FlagParseError {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
f.write_str("failed to parse flag")
}
}
impl core::error::Error for FlagParseError {}
impl TimeStampParseError {
#[inline]
pub const fn new(kind: TimestampParseErrorKind) -> Self {
Self { kind }
}
#[inline]
pub const fn kind(&self) -> TimestampParseErrorKind {
self.kind
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum TimestampParseErrorKind {
InvalidLength,
InvalidCharacter,
InvalidMinute,
InvalidSecond,
InvalidFrame,
}
impl core::fmt::Display for TimestampParseErrorKind {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self {
TimestampParseErrorKind::InvalidLength => f.write_str("timestamp length is incorrect"),
TimestampParseErrorKind::InvalidCharacter => {
f.write_str("timestamp contains invalid character")
}
TimestampParseErrorKind::InvalidMinute => f.write_str("timestamp minute is invalid"),
TimestampParseErrorKind::InvalidSecond => f.write_str("timestamp second is invalid"),
TimestampParseErrorKind::InvalidFrame => f.write_str("timestamp frame is invalid"),
}
}
}
impl core::fmt::Display for TimeStampParseError {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
f.write_fmt(format_args!("invalid timestamp: {}", self.kind))
}
}
impl core::error::Error for TimeStampParseError {}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct CueStrError {
kind: CueStrErrorKind,
}
impl CueStrError {
#[inline]
pub const fn new(kind: CueStrErrorKind) -> Self {
Self { kind }
}
#[inline]
pub const fn kind(&self) -> CueStrErrorKind {
self.kind
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum CueStrErrorKind {
MissingQuotes,
MissingEndingQuote,
UnescapedSpecialChar,
InvalidUtf8,
}
impl From<CueStrErrorKind> for CueStrError {
#[inline]
fn from(value: CueStrErrorKind) -> Self {
Self::new(value)
}
}
impl core::fmt::Display for CueStrErrorKind {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self {
Self::InvalidUtf8 => f.write_str("string is not a valid utf-8"),
Self::MissingQuotes => f.write_str("string needs to be quoted"),
Self::MissingEndingQuote => f.write_str("string is missing ending double quote"),
Self::UnescapedSpecialChar => f.write_str("unescaped special character found"),
}
}
}
impl core::fmt::Display for CueStrError {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
f.write_fmt(format_args!("invalid cue string: {}", self.kind))
}
}
impl core::error::Error for CueStrError {}