我正在尝试为我的Rust库编写示例代码,但我不需要编译示例代码.
重现步骤:
cargo new
将此添加到 src/lib.rs
//! ## How to use
//! Validator usage:
//! ```ignore
//! fn validate(values: &Map) -> ValidateResults {
//! ValidateResults(vec!(
//! Validator::<String>::new(btreemap! {
//! "requiered".to_string() => true.to_json(),
//! "vtype".to_string() => "string".to_json(),
//! }).validate("title".to_string(), values.find(&["pages", "title"]$
//!
//! Validator::<bool>::new(btreemap! {
//! "default".to_string() => false.to_json(),
//! }).validate("published".to_string(), values.find(&["published"])$
//! ))
//! }
//! ```
pub fn main() {
println!("Hello, world!");
}
Run Code Online (Sandbox Code Playgroud)cargo test
我收到一个错误:
$ cargo test
Finished debug [unoptimized + debuginfo] target(s) in 0.0 secs
Running target/debug/deps/sample-661c50cdfb6a999f
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured
Doc-tests sample
running 1 test
test _0 ... FAILED
failures:
---- _0 stdout ----
error: expected one of `.`, `;`, `?`, `}`, or an operator, found `,`
--> <anon>:4:69
|
4 | }).validate("published".to_string(), values.find(&["published"])),
| ^
error: macro undefined: 'btreemap!'
--> <anon>:2:31
|
2 | Validator::<bool>::new(btreemap! {
| ^^^^^^^^
error: aborting due to 2 previous errors
thread '_0' panicked at 'Box<Any>', ../src/librustc_errors/lib.rs:694
note: Run with `RUST_BACKTRACE=1` for a backtrace.
thread '_0' panicked at 'couldn't compile the test', ../src/librustdoc/test.rs:283
failures:
_0
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured
error: test failed
Run Code Online (Sandbox Code Playgroud)
如何忽略编译此示例代码的失败?我正在使用Rust 1.13.0和Cargo 0.13.0.
您已经在Rust的文档解析器中遇到了一个已知问题.Rust(Hoedown)使用的Markdown解析器似乎没有正确识别受防护的代码块(三个反引号),除非它前面有一个空行.对于这是否是期望的行为存在一些争议,但无论哪种方式,都可以通过修改示例来解决问题,如下所示:
//! ## How to use
//! Validator usage:
//!
//! ```ignore
//! fn validate(values: &Map) -> ValidateResults {
//! ValidateResults(vec!(
//! Validator::<String>::new(btreemap! {
//! "requiered".to_string() => true.to_json(),
//! "vtype".to_string() => "string".to_json(),
//! }).validate("title".to_string(), values.find(&["pages", "title"]$
//!
//! Validator::<bool>::new(btreemap! {
//! "default".to_string() => false.to_json(),
//! }).validate("published".to_string(), values.find(&["published"])$
//! ))
//! }
//! ```
pub fn main() {
println!("Hello, world!");
}
Run Code Online (Sandbox Code Playgroud)
注意//!代码块之前的前导行,它允许Hoedown成功识别代码块并适当地忽略它.
| 归档时间: |
|
| 查看次数: |
180 次 |
| 最近记录: |