rustdoc链接到枚举变量

jutyujz0  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(154)

在rust中,我想让rustdoc文本链接到一个枚举变量。这是什么语法?

示例

给定位于项目文件src/common.rs中的rust code,(此rustdoc代码链接失败)

  1. /// your result!
  2. # [derive(Clone, Copy, Debug, PartialEq)]
  3. pub enum MyResult<T, E> {
  4. /// this is good!
  5. Found(T),
  6. /// task completed!
  7. Done,
  8. /// this is bad!
  9. Err(E),
  10. }
  11. impl<T, E> MyResult<T, E> {
  12. /// Returns `true` if the result is [`Found`], [`Done`].
  13. ///
  14. /// In other words, this is not an [`Err`](Err)
  15. ///
  16. /// [Found]: self::MyResult::Found
  17. /// [Done]: self::Done
  18. /// [Err]: crate::common::MyResult::Err
  19. pub const fn is_ok(&self) -> bool {
  20. matches!(*self, MyResult::Found(_) | MyResult::Done)
  21. }
  22. }
  23. fn main() {}

rust文档是使用以下命令构建的:

  1. cargo doc --locked --release --frozen --no-deps -v

问题
在生成的rust文档中,各种链接锚点无法链接到MyResult内的枚举变体。
创建的文档如下所示:

  1. Returns true if the result is [Found], [Done].
  2. In other words, this is not an Err
  • 文本[Found][Done]无法链接。
  • 文本Err链接到https://doc.rust-lang.org/beta/core/result/enum.Result.html#variant.Err
  • 我还尝试了链接语法的其他变体,如
  • /// [Done]: MyResult#variant.Done
  • /// [Done]: self::MyResult#variant.Done

我如何创建rust doc到模块内enum变体的文档内链接?

szqfcxe2

szqfcxe21#

使用语法形式

  1. /// [SomeVariant]: self::MyEnum#variant.SomeVariant

问题的示例rustdoc代码将具有#variant.链接锚:

  1. /// your result!
  2. # [derive(Clone, Copy, Debug, PartialEq)]
  3. pub enum MyResult<T, E> {
  4. /// this is good!
  5. Found(T),
  6. /// task completed!
  7. Done,
  8. /// this is bad!
  9. Err(E),
  10. }
  11. impl<T, E> MyResult<T, E> {
  12. /// Returns `true` if the result is [`Found`], [`Done`].
  13. ///
  14. /// In other words, this is not an [`Err`]
  15. ///
  16. /// [`Found`]: self::MyResult#variant.Found
  17. /// [`Done`]: self::MyResult#variant.Done
  18. /// [`Err`]: self::MyResult#variant.Err
  19. pub const fn is_ok(&self) -> bool {
  20. matches!(*self, MyResult::Found(_) | MyResult::Done)
  21. }
  22. }
  23. fn main() {}

在rustdoc输出中,单击文本Found,然后跳转到枚举变量Found的定义。
相关,链接方法类似,使用#method.链接锚:

  1. /// [`MyStruct.my_method()`]: self::MyStruct#method.my_method
展开查看全部

相关问题