我有一个模块,我试图测试。该模块使用nom宏来生成函数。在测试模块I use super::*
中,但功能不在范围内。
pub mod v4 {
use nom::be_i16;
named!(Ch_D<i16>, preceded!(tag!([0x65;1]), be_i16));
//... lots more of these
#[cfg(test)]
mod tests {
use super::*;
#[test]
#[allow(overflowing_literals)]
fn Ch_D_test() {
let bytes = &[0x65, 0xf0, 0xe7];
assert_eq!(Ch_D(bytes), IResult::Done(EMPTY_SLICE,0xf0e7));
}
}
}
我得到error[E0425]: unresolved name 'Ch_D'
或者我use super::Ch_D
它有效,但我真的不想写出每一个函数名称。
由于nom宏不会创建公共函数,所以我没有多少选择,只能在不将函数标记为pub
的情况下完成此工作。