use std::error::Error;
use std::fmt;
#[derive(Clone, Debug, PartialEq, Eq)]
pub(crate) struct StatusCodeError {
value: String,
}
impl StatusCodeError {
pub(crate) fn new(value: impl Into<String>) -> Self {
Self {
value: value.into(),
}
}
}
impl fmt::Display for StatusCodeError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(
f,
"OCS statuscode `{}` is not a recognised verdict",
self.value
)
}
}
impl Error for StatusCodeError {}
#[cfg(test)]
mod tests {
use super::StatusCodeError;
#[test]
fn display_names_the_offending_value() {
let rendered = StatusCodeError::new("").to_string();
assert_eq!(rendered, "OCS statuscode `` is not a recognised verdict");
}
}