nmea0183-parser 0.3.2

A zero-allocation NMEA 0183 parser that separates message framing from content parsing
Documentation
use nom::{Err, IResult, Parser, error::ErrorKind};

use crate::nmea0183::{LineEndingMode, crlf};

#[test]
fn test_crlf() {
    let res: IResult<_, _> = crlf(LineEndingMode::Required).parse("12345\r\n");
    assert!(res.is_ok());
    let (data, _) = res.unwrap();
    assert_eq!(data, "12345");

    let res: IResult<_, _> = crlf(LineEndingMode::Required).parse("12345");
    assert!(res.is_err());
    let err = res.unwrap_err();
    if let Err::Error(e) = err {
        assert_eq!(e.code, ErrorKind::CrLf);
    }

    let res: IResult<_, _> = crlf(LineEndingMode::Forbidden).parse("12345");
    assert!(res.is_ok());
    let (data, _) = res.unwrap();
    assert_eq!(data, "12345");

    let res: IResult<_, _> = crlf(LineEndingMode::Forbidden).parse("12345\r\n");
    assert!(res.is_err());
    let err = res.unwrap_err();
    if let Err::Error(e) = err {
        assert_eq!(e.code, ErrorKind::CrLf);
    }
}