Files
organic/src/error/error.rs
Tom Alexander f47d688be4
Some checks failed
rustfmt Build rustfmt has failed
rust-test Build rust-test has failed
clippy Build clippy has failed
rust-build Build rust-build has failed
rust-foreign-document-test Build rust-foreign-document-test has succeeded
Remove owned String from CustomError.
This is a 15% performance improvement.
2023-10-21 14:29:37 -04:00

36 lines
807 B
Rust

use nom::error::ErrorKind;
use nom::error::ParseError;
use nom::IResult;
pub(crate) type Res<T, U> = IResult<T, U, CustomError>;
#[derive(Debug)]
pub enum CustomError {
Static(&'static str),
IO(std::io::Error),
Parser(ErrorKind),
}
impl<I: std::fmt::Debug> ParseError<I> for CustomError {
fn from_error_kind(_input: I, kind: ErrorKind) -> Self {
CustomError::Parser(kind)
}
fn append(_input: I, _kind: ErrorKind, /*mut*/ other: Self) -> Self {
// Doesn't do append like VerboseError
other
}
}
impl From<std::io::Error> for CustomError {
fn from(value: std::io::Error) -> Self {
CustomError::IO(value)
}
}
impl From<&'static str> for CustomError {
fn from(value: &'static str) -> Self {
CustomError::Static(value)
}
}