1个稳定版本
1.0.0 | 2024年5月17日 |
---|
#1423 在 过程宏
33,657 每月下载量
在 20 个crates中使用(通过 interprocess)
11KB
232 代码行
从专用文件中提取doctests到Rustdoc文档的过程宏,支持隐藏行。
示例用法
/// ```
#[doc = doctest_file::include_doctest!("examples/foo.rs")]
/// ```
与include_str!()
不同,include_doctest!()
允许您隐藏某些行,就像使用#
语法进行带内doctests一样。不过,您无需在每个要隐藏的行前都加上#
前缀,而是可以加上//
后缀。空行尾注释不会使.rs
文件格式不正确,因此在编写doctests并放入examples/
目录时,您可以获得丰富的编辑器支持。请注意,检测此后缀时忽略空白。
在底层,//
后缀被简单地转换为#
前缀,然后由Rustdoc进行解释。
也可以隐藏行块——这有助于绕过Rustfmt的不灵活的格式化选择。使用//{
开始隐藏块,如果该行除了标记之外没有其他内容(除了空白),则只包括该行。使用//}
结束隐藏块,无条件地隐藏该行。
当在单独的文件中存储doctests时,另一个有用的功能是自动缩进:宏会减少可见行的缩进,使得最少的可见缩进行看起来完全未缩进。这意味着您无需修改Rustfmt强制执行的缩进规则,就可以在Rustdoc中正确显示doctests。
此外,删除文件末尾的空行,也有助于与Rustfmt的互操作性。
这个包没有任何依赖:没有 proc_macro2
,没有 syn
,没有 quote
。它也非常简单,代码行数不到200行。
许可证
doctest-file
在0条款BSD许可证下授权,这意味着不可能违反许可条款。这在功能上等同于公共领域,但在德国等国家也是合法的。