| use winnow::error::ErrMode; |
| use winnow::error::ErrorKind; |
| use winnow::error::ParserError; |
| #[derive(Debug, PartialEq, Eq)] |
| pub enum CustomError<I> { |
| impl<I: Clone> ParserError<I> for CustomError<I> { |
| fn from_error_kind(input: &I, kind: ErrorKind) -> Self { |
| CustomError::Nom(input.clone(), kind) |
| fn append(self, _: &I, _: ErrorKind) -> Self { |
| pub fn parse<'s>(_input: &mut &'s str) -> PResult<&'s str, CustomError<&'s str>> { |
| Err(ErrMode::Backtrack(CustomError::MyError)) |
| let err = parse.parse_next(&mut "").unwrap_err(); |
| ErrMode::Backtrack(e) => assert_eq!(e, CustomError::MyError), |
| _ => panic!("Unexpected error: {:?}", err), |