Skip to content

Commit

Permalink
Merge pull request #376 from AnderEnder/remove-deprecated-error-descr…
Browse files Browse the repository at this point in the history
…iption

Allow deprecated Error::description and replace it with a stub implementation.
  • Loading branch information
quodlibetor committed Dec 23, 2019
2 parents df0e6ae + 977ad60 commit 6daed98
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 24 deletions.
27 changes: 11 additions & 16 deletions src/format/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -318,30 +318,25 @@ enum ParseErrorKind {
/// Same to `Result<T, ParseError>`.
pub type ParseResult<T> = Result<T, ParseError>;

impl ParseError {
fn description(&self) -> &str {
match self.0 {
ParseErrorKind::OutOfRange => "input is out of range",
ParseErrorKind::Impossible => "no possible date and time matching input",
ParseErrorKind::NotEnough => "input is not enough for unique date and time",
ParseErrorKind::Invalid => "input contains invalid characters",
ParseErrorKind::TooShort => "premature end of input",
ParseErrorKind::TooLong => "trailing input",
ParseErrorKind::BadFormat => "bad or unsupported format string",
}
}
}

impl fmt::Display for ParseError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
self.description().fmt(f)
match self.0 {
ParseErrorKind::OutOfRange => write!(f, "input is out of range"),
ParseErrorKind::Impossible => write!(f, "no possible date and time matching input"),
ParseErrorKind::NotEnough => write!(f, "input is not enough for unique date and time"),
ParseErrorKind::Invalid => write!(f, "input contains invalid characters"),
ParseErrorKind::TooShort => write!(f, "premature end of input"),
ParseErrorKind::TooLong => write!(f, "trailing input"),
ParseErrorKind::BadFormat => write!(f, "bad or unsupported format string"),
}
}
}

#[cfg(any(feature = "std", test))]
impl Error for ParseError {
#[allow(deprecated)]
fn description(&self) -> &str {
self.description()
"parser error, see to_string() for details"
}
}

Expand Down
11 changes: 3 additions & 8 deletions src/oldtime.rs
Original file line number Diff line number Diff line change
Expand Up @@ -393,22 +393,17 @@ impl fmt::Display for Duration {
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct OutOfRangeError(());

impl OutOfRangeError {
fn description(&self) -> &str {
"Source duration value is out of range for the target type"
}
}

impl fmt::Display for OutOfRangeError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
write!(f, "Source duration value is out of range for the target type")
}
}

#[cfg(any(feature = "std", test))]
impl Error for OutOfRangeError {
#[allow(deprecated)]
fn description(&self) -> &str {
self.description()
"out of range error"
}
}

Expand Down

0 comments on commit 6daed98

Please sign in to comment.