From e95e13d06365eb81db52eb3c507278e0e95e0853 Mon Sep 17 00:00:00 2001 From: sunface Date: Thu, 30 Dec 2021 16:53:03 +0800 Subject: [PATCH] =?UTF-8?q?update=E6=96=87=E6=A1=A3=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- book-contents/advance/comment.md | 81 +++++++++++++++++++++++++++++++ book-contents/img/comment-05.png | Bin 0 -> 35745 bytes writing-material/books.md | 4 +- 3 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 book-contents/img/comment-05.png diff --git a/book-contents/advance/comment.md b/book-contents/advance/comment.md index d08ec4fc..15a8b6c7 100644 --- a/book-contents/advance/comment.md +++ b/book-contents/advance/comment.md @@ -256,6 +256,87 @@ pub fn try_div(a: i32, b: i32) -> Result { +## 文档注释中的代码跳转 +Rust在文档注释中还提供了一个非常强大的功能,那就是可以实现对外部项的链接: + +#### 跳转到标准库 +```rust +/// `add_one`返回一个[`Option`]类型 +pub fn add_one(x: i32) -> Option { + Some(x + 1) +} +``` + +此处的**[`Option`]**就是一个链接,指向了标准库中的`Option`枚举类型,有两种方式可以进行跳转: +- 在IDE中,使用`Command + 鼠标左键`(mac系统下) +- 在文档中直接点击链接 + +再比如,还可以使用路径的方式跳转: +```rust +use std::sync::mpsc::Receiver; + +/// [`Receiver`] [`std::future`]. +/// +/// [`std::future::Future`] [`Self::recv()`]. +pub struct AsyncReceiver { + sender: Receiver, +} + +impl AsyncReceiver { + pub async fn recv() -> T { + unimplemented!() + } +} +``` + +#### 使用完整路径跳转到指定项 +除了跳转到标准库,你还可以通过指定具体的路径跳转到自己代码或者其它库的指定项,例如在`lib.rs`中添加以下代码: +```rust +mod a { + /// `add_one`返回一个[`Option`]类型 + /// 跳转到[`crate::MySpecialFormatter`] + pub fn add_one(x: i32) -> Option { + Some(x + 1) + } +} + +struct MySpecialFormatter; +``` + +使用`crate::MySpecialFormatter`这种路径就可以实现跳转到`lib.rs`中定义的结构体上。 + +#### 同名项的跳转 +如果遇到同名项,可以使用标示类型的方式进行跳转: +```rust +/// 跳转到结构体 [`Foo`](struct@Foo) +struct Bar; + +/// 跳转到同名函数 [`Foo`](fn@Foo) +struct Foo {} + +/// 跳转到同名宏 [`foo!`] +fn Foo() {} + +macro_rules! foo { + () => {} +} +``` + +## 文档搜索别名 +Rust文档支持搜索功能,我们可以为自己的类型定义几个别名,以实现更好的搜索展现,当别名命中时,搜索结果会被放在第一位: +```rust +#[doc(alias = "x")] +#[doc(alias = "big")] +pub struct BigX; + +#[doc(alias("y", "big"))] +pub struct BigY; +``` + +结果如下图所示: + + + ## 一个综合例子 这个例子我们将重点应用几个知识点: diff --git a/book-contents/img/comment-05.png b/book-contents/img/comment-05.png new file mode 100644 index 0000000000000000000000000000000000000000..719a40648428e9d5105aa47c6e1999ba1ed8d51b GIT binary patch literal 35745 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 S$Q;A~J~UKxls_t3hW#JRbcGWD literal 0 HcmV?d00001 diff --git a/writing-material/books.md b/writing-material/books.md index 30896994..677bf519 100644 --- a/writing-material/books.md +++ b/writing-material/books.md @@ -23,4 +23,6 @@ 12. [Rust Style](https://doc.rust-lang.org/1.6.0/style/README.html) -13. [Learning Rust](https://learning-rust.github.io/docs/a1.why_rust.html) \ No newline at end of file +13. [Learning Rust](https://learning-rust.github.io/docs/a1.why_rust.html) + +14. [Rust doc](https://doc.rust-lang.org/rustdoc/the-doc-attribute.html) \ No newline at end of file