2016-11-28 3 views
3

私はRustライブラリ用のサンプルコードを書こうとしていますが、サンプルコードをコンパイルする必要はありません。サンプルコードをコンパイルする際の失敗を無視できない

再現手順:

  1. cargo new

  2. 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!"); 
    } 
    
  3. 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 

私はエラーを取得しますか?私は錆1.13.0と貨物0.13.0を使用しています。

+0

マークダウンの楽しさ... – mcarton

答えて

5

あなたはRustのドキュメントパーサーのknown issueにヒットしました。 Rust(Hoedown)が使用しているMarkdownパーサーは、その前に空白行がない限り、分離されたコードブロック(3つのバッククォート)を正しく認識していないようです。問題は次のようにあなたの例を修正することによって解決することができるいずれかの方法がありsome disputeが、これは望ましい動作であるかどうかですが、:

//! ## 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!"); 
} 

お知らせホーダウンが正常に識別するためのコードブロックの前に大手//!ラインは、適切に無視してください。

関連する問題