ライブラリのドキュメント サンプル内のエラーを修正するのに苦労しています。クレートのようなファイル構造を持っていますbignum
.
|-- Cargo.lock
|-- Cargo.toml
|-- examples
| |-- dat
| | `-- euler_13.dat
| |-- debug.rs
| `-- euler_13.rs
|-- README.md
|-- src
| |-- error.rs
| |-- inits.rs
| `-- lib.rs
私の例では、ヘッダーは次のようになります
// euler_13.rs
extern crate bignum;
use bignum::inits::Zero;
// ...
これはコンパイルして問題なく動作しますが、 のドキュメント内に例を書いているときに、lib.rs
インポートできないようですbignum::inits::Zero
//lib.rs
//...
impl BigNum {
//...
/// Constructs a ...
///
/// # Examples
///
/// ```
/// extern crate bignum;
/// use bignum::inits::Zero;
///
/// let a = bignum::BigNum::new(Zero::zero());
/// ```
///
pub fn new(base: BigNum) -> BigNum {
// ...
}
を実行するcargo test
と、このエラーが表示されます
Running target/debug/lib-fe3dd7a75a504b04
running 3 tests
test crate_from_u32 ... ok
test create_from_string ... ok
test adding_no_carry ... ok
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured
Doc-tests bignum
running 1 test
test new_0 ... FAILED
failures:
---- new_0 stdout ----
<anon>:3:9: 3:15 error: unresolved import `self::bignum::inits::Zero`. Did you mean `self::self::bignum::inits`?
<anon>:3 use self::bignum::inits::Zero;
^~~~~~
error: aborting due to previous error
thread 'new_0' panicked at 'Box<Any>', /home/rustbuild/src/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libsyntax/diagnostic.rs:192
failures:
new_0
この質問を見たことがありますが、これは同じファイルからモジュールをインポートすることを扱っていますが、それでもトップレベルのスコープが必要です。ただし、ここではまだトップレベルのスコープを で指定していbignum::
ます。
そのため、インポートbignum::inits::Zero
はすべてのテストと例で機能しますが、ドキュメントでは機能しません。何故ですか?前に追加しようとしましself::
たが、同じエラーが発生します。ドキュメントの例を次のように変更すると
extern crate bignum;
let a = bignum::BigNum::new(bignum::inits::Zero::zero());
ただし、正常にコンパイルされます。モジュールを正しくインポートするにはどうすればよいですか?