pub struct ParseError { /* private fields */ }Expand description
Why a value was refused, and where.
Eight bytes, Copy, and it never contains input bytes, so it is safe to
log.
§Examples
use parse_net::{ErrorKind, ParseError};
let err = ParseError::new(ErrorKind::InvalidByte, 4);
assert_eq!(err.kind(), ErrorKind::InvalidByte);
assert_eq!(err.offset(), 4);
assert_eq!(err.to_string(), "invalid byte at offset 4");
assert_eq!(core::mem::size_of::<ParseError>(), 8);Implementations§
Source§impl ParseError
impl ParseError
Sourcepub const fn new(kind: ErrorKind, offset: usize) -> Self
pub const fn new(kind: ErrorKind, offset: usize) -> Self
Builds an error of kind at byte offset.
For callers that implement a visitor or wrap parse-net. Offsets above
u32::MAX saturate.
§Examples
use parse_net::{ErrorKind, ParseError};
let e = ParseError::new(ErrorKind::TooLong, 12);
assert_eq!((e.kind(), e.offset(), e.line()), (ErrorKind::TooLong, 12, 0));
assert_eq!(ParseError::new(ErrorKind::TooLong, usize::MAX).offset(), u32::MAX as usize);Sourcepub const fn kind(&self) -> ErrorKind
pub const fn kind(&self) -> ErrorKind
What was refused.
§Examples
use parse_net::ErrorKind;
let e = parse_net::list(b"a, \"b").unwrap_err();
assert_eq!(e.kind(), ErrorKind::UnterminatedQuote);Sourcepub const fn offset(&self) -> usize
pub const fn offset(&self) -> usize
The offset of the first byte that could not be accepted, relative to
the start of the value passed in, or of the field line named by
line when several lines were parsed as one field.
§Examples
use parse_net::ErrorKind;
let e = parse_net::list(b"gzip, b\x01r").unwrap_err();
assert_eq!((e.kind(), e.offset()), (ErrorKind::Control, 7));Sourcepub const fn line(&self) -> usize
pub const fn line(&self) -> usize
The zero-based index of the field line that failed when several lines
were parsed as one field; 0 otherwise. Saturates at 255.
§Examples
use parse_net::{list, ErrorKind, Limits};
let lines: [&[u8]; 3] = [b"gzip", b"br", b"x\x00"];
let e = list::combined(lines, &Limits::DEFAULT).unwrap_err();
assert_eq!((e.kind(), e.line(), e.offset()), (ErrorKind::Nul, 2, 1));Trait Implementations§
Source§impl Clone for ParseError
impl Clone for ParseError
impl Copy for ParseError
Source§impl Debug for ParseError
impl Debug for ParseError
Source§impl Display for ParseError
impl Display for ParseError
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 Hash for ParseError
impl Hash for ParseError
Source§impl PartialEq for ParseError
impl PartialEq for ParseError
impl StructuralPartialEq for ParseError
Auto Trait Implementations§
impl Forget for ParseError
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