#documentation #rustdoc #example

include-doc

将示例包含在您的 Rust 文档中

7 个版本

0.2.1 2023 年 8 月 1 日
0.2.0 2023 年 7 月 31 日
0.1.2 2023 年 7 月 30 日
0.0.2 2023 年 1 月 31 日

#7 in #example


3 个包中使用

MIT/Apache

8KB

Include Doc

tests crates.io Documentation MIT/Apache-2 licensed

将示例包含在您的 Rust 文档中。

功能

  • 在常规 Rust 文件中编写和维护示例,具有完整的编辑器支持。
  • 自动隐藏导入。
  • 将多个示例放入一个文件中,并选择要包含的文件部分。这有助于避免导入和设置代码的重复样板。

查看包文档中的示例。


lib.rs:

将 Rust 源文件作为 doctests 包含。

示例

使用 source_file!

我们将示例写入文件 examples/my_example.rs,并使用 source_file! 将示例添加到文档中。文件 examples/my_example.rs 的内容是

使用 #[doc = source_file!("examples/my_example.rs")] 将隐藏导入并包含主函数的主体,得到

使用 function_body!

function_body!source_file! 类似,但允许我们指定要作为 doctests 使用的函数主体。这减少了导入和支持代码的样板,因为我们可以在一个文件中放置多个示例。我们还可以指定要包含的支持代码的部分。

用法

include_doc::function_body!(
    "example.rs",
    example_fn,
    [fn_dependency, StructDependency, etc]
);

tests/doc.rs 中,我们放置了 2 个示例,my_first_examplemy_second_example。有两个不同的设置函数,但它们都使用 MyStruct。这是 tests/doc.rs 的内容

我们只想包含 my_first_example 的示例代码和依赖项,所以我们写入 #[doc = function_body!("tests/doc.rs", my_first_example, [MyStruct, setup_first_example])],得到

对于 my_second_example,我们使用 #[doc = function_body!("tests/doc.rs", my_second_example, [MyStruct, setup_second_example])],结果是

依赖项

~4–16MB
~156K SLoC