Fehler beim Verwenden lokaler Module in Dokumentationstests
Ich spiele mit einer kleinen Kiste für die Erzeugung von 2D-Rauschen herum. Hier ist ein vereinfachtes Snippet meiner "lib.rs" -Datei:
pub mod my_math {
pub struct Vec2<T> {
...
}
...
}
pub mod my_noise {
use num::Float;
use std::num::Wrapping;
use my_math::*;
/// Gets pseudo-random noise based on a seed vector.
///
/// # Examples
///
/// ```
/// use my_math::Vec2;
///
/// let v_seed = Vec2::<f32>::new_values(4.134, -23.141);
/// let noise_val = get_noise_white(&v_seed);
///
/// assert!(noise_val >= 0.0);
/// assert!(noise_val <= 1.0);
/// ```
pub fn get_noise_white(seed: &Vec2<f32>) -> f32 {
...
}
}
Allerdings, wenn ich laufecargo test, Ich erhalte den folgenden Fehler:
---- my_noise :: get_noise_white_0 stdout ----
<anon>: 3: 9: 3:16 Fehler: ungelöster Importmy_math::Vec2
. Vielleicht ein fehlendesextern crate my_math
?
<anon>: 3 benutze my_math :: Vec2;
Ich habe auch andere Formen des @ ausprobieuse
-Anweisung im Dokumentkommentar, einschließlichuse my_math::*;
unduse self::my_math::*;
. Wenn ich die Zeile vollständig entferne, erhalte ich den Fehler, dassVec2
ist nicht definiert
Was ist der richtige Weg, um dies zu tun?