我正在玩一个小箱子来制作2D噪音。这是我的" lib.rs"的简化片段。文件:
my_math::Vec2
但是,当我运行货物测试时,我收到以下错误:
---- my_noise :: get_noise_white_0 stdout ----
< anon>:3:9:3:16错误:未解决的导入
extern crate my_math
。也许缺少use
?< anon>:3使用my_math :: Vec2;
我还在文档评论中尝试了其他形式的use my_math::*;
语句,包括use self::my_math::*;
和Vec2
。如果我完全删除该行,则会收到var string = "*Other text that is dynamic in length* width: 4874px; height: 898px; *more dynamic length text*";
var windexStart=string.indexOf('width')+6;
var windexStop=string.indexOf('px;');
var hindexStart=string.indexOf('height')+7;
var hindexStop=string.lastIndexOf('px;');
var width=string.substring(windexStart,windexStop);
var height=string.substring(hindexStart,hindexStop);
alert(width+' '+height);
未定义的错误。
这样做的正确方法是什么?
答案 0 :(得分:5)
你必须指定你的箱子的顶级名称(我们称之为mylib):
use mylib::my_math::Vec2;
理由是您的doc示例必须由您的库的客户端按原样使用。如果你把自己放在他们的鞋子里,他们会拿你的图书馆(通常是货物,但没关系),然后在他们的顶级lib.rs/main.rs中放一个extern crate mylib
。然后,为了使用库的某些部分,他们必须指定完全限定的名称才能使用其子代。
这正是你在rustdoc测试评论中所要做的。
另外,我认为值得引用Rust书的相关部分Documentation as tests,它解释了应用于doc-code片段的一些小修改。其中之一是:
如果示例中不包含
extern crate
,则会插入extern crate <mycrate>;
。