Ich habe Schwierigkeiten, einen Fehler in meinem Dokumentationsbeispiel für meine Bibliothek zu beheben. Ich habe die Strukturdatei wie für meine Kiste bignum
Ungelöster Import in Dokumentationsbeispiel
.
|-- Cargo.lock
|-- Cargo.toml
|-- examples
| |-- dat
| | `-- euler_13.dat
| |-- debug.rs
| `-- euler_13.rs
|-- README.md
|-- src
| |-- error.rs
| |-- inits.rs
| `-- lib.rs
In meinen Beispielen, meine Header etwas wie
// euler_13.rs
extern crate bignum;
use bignum::inits::Zero;
// ...
Dies kompiliert und funktioniert gut aussehen, aber jetzt, wenn ich schreibe ein Beispiel innen meine Dokumentation zu lib.rs
, kann ich nicht 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 {
// ...
}
zu importieren scheinen Wenn ich cargo test
laufen, erhalte ich th Fehler ist
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
ich this Frage gesehen habe, aber diese befasst sich mit Modulen aus der gleichen Datei zu importieren, die noch Toplevel Umfang erfordern. Allerdings gebe ich hier noch den Top-Level-Bereich mit bignum::
an.
So, während der Import bignum::inits::Zero
funktioniert für alle meine Tests und Beispiele, funktioniert es nicht für meine Dokumente. Warum das? Ich habe versucht, self::
in Front anzuhängen und den gleichen Fehler zu erhalten. Wenn ich die Doc-Beispiele zu
ändern, kompiliert es aber fein. Wie kann ich meine Module korrekt importieren?
@Shempmaster so während ich denke, dass dies verschiedene Fragen sind, hat die andere Antwort tatsächlich mein Problem gelöst. Ich denke, es liegt daran, dass mein Problem darin besteht, dass 'external create bignum' implizit ist, also wird es wieder Fehler erzeugen. Ich habe ein [Problem] eingereicht (https: // github.com/rust-lang/rost/issues/27301) mit einer Empfehlung zur Änderung der Fehlerausgabe für diese Art von Fehler –
Sicher, ich gehe voran und mache das –
Off-Thema: ist es möglich, meine Kommentare nicht zu entfernen, wenn Ich schlage ein Duplikat vor? Es ist sehr frustrierend, eine Nachricht zu verfassen, nur um sie nach einiger Zeit wieder verschwinden zu lassen. Dies ist das [zweite Mal] (http://stackoverflow.com/questions/31609137/why-are-explicit-lifetimes-needed-in-rust) es passiert. – mdup