【发布时间】:2021-08-03 01:25:42
【问题描述】:
在 nom 5.0 中编译得很好:
fn escaped_space(i: &str) -> nom::IResult<&str, &str> {
nom::combinator::value(" ", nom::bytes::complete::tag("040"))(i)
}
assert_eq!(escaped_space(" "), Err(nom::Err::Error((" ", nom::error::ErrorKind::Tag))));
但在当前版本 6.2.1 中,断言行无法编译并出现类型不匹配错误 [E0308]:
expected Result<(&str, &str), nom::Err<nom::error::Error<&str>>>
found Result<_, nom::Err<(&str, nom::error::ErrorKind)>>
如何创建错误以使其现在与最上面的错误匹配?
【问题讨论】: