pub struct ParseError;Expand description
Error returned by <NHSNumber as FromStr>::from_str for any string
that is not one of the two accepted shapes (see
spec/05-string-forms.md §5).
ParseError is a unit struct — every error value compares equal:
use nhs_number::NHSNumber;
use nhs_number::parse_error::ParseError;
use std::str::FromStr;
let a = NHSNumber::from_str("not even close").unwrap_err();
let b = NHSNumber::from_str("wrong length").unwrap_err();
assert_eq!(a, b);
assert_eq!(a, ParseError);To map it to your own richer error type:
use nhs_number::NHSNumber;
use std::str::FromStr;
#[derive(Debug, PartialEq)]
enum MyError {
BadNhsNumber(String),
}
let bad = "not a number";
let result: Result<NHSNumber, MyError> =
NHSNumber::from_str(bad).map_err(|_| MyError::BadNhsNumber(bad.into()));
assert_eq!(result, Err(MyError::BadNhsNumber("not a number".into())));ParseError also implements Display and
std::error::Error, so it flows through ? into boxed-error
stacks without manual mapping:
use nhs_number::NHSNumber;
use std::error::Error;
use std::str::FromStr;
fn parse(s: &str) -> Result<NHSNumber, Box<dyn Error>> {
Ok(NHSNumber::from_str(s)?)
}
assert!(parse("999 100 0003").is_ok());
assert!(parse("not a number").is_err());Trait Implementations§
Source§impl Debug for ParseError
impl Debug for ParseError
Source§impl Display for ParseError
A fixed message with no input echo — the rejected candidate
string must never leak into error messages or logs
(see AGENTS/safety.md §3).
impl Display for ParseError
A fixed message with no input echo — the rejected candidate
string must never leak into error messages or logs
(see AGENTS/safety.md §3).
use nhs_number::parse_error::ParseError;
assert_eq!(ParseError.to_string(), "invalid NHS Number string");impl Eq for ParseError
Source§impl Error for ParseError
impl Error for ParseError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl PartialEq for ParseError
impl PartialEq for ParseError
impl StructuralPartialEq for ParseError
Auto Trait Implementations§
impl Freeze for ParseError
impl RefUnwindSafe for ParseError
impl Send for ParseError
impl Sync for ParseError
impl Unpin for ParseError
impl UnsafeUnpin for ParseError
impl UnwindSafe for ParseError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more