semver_extra/
error.rs

1use core::fmt::{self, Debug, Display};
2use std::error;
3
4pub(crate) enum ErrorKind {
5    InvalidIncrementLevel(String),
6}
7
8pub struct Error {
9    pub(crate) kind: ErrorKind,
10}
11
12impl Error {
13    pub(crate) fn new(kind: ErrorKind) -> Self {
14        Self { kind }
15    }
16}
17
18impl error::Error for Error {}
19
20impl Display for Error {
21    fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
22        match &self.kind {
23            ErrorKind::InvalidIncrementLevel(level) => {
24                write!(formatter, "invalid attempted increment level {level}")
25            }
26        }
27    }
28}
29
30impl Debug for Error {
31    fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
32        formatter.write_str("Error(\"")?;
33        Display::fmt(self, formatter)?;
34        formatter.write_str("\")")?;
35        Ok(())
36    }
37}