Skip to content

Commit 5aca04a

Browse files
committed
Updated 'book.toml'.
1 parent f9b5204 commit 5aca04a

File tree

7 files changed

+13
-10
lines changed

7 files changed

+13
-10
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ target
33
Cargo.lock
44
/index.html
55
*.tar.gz
6+
pdf

book.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,5 @@ enable = false
2525

2626
[output.html.favicon]
2727
png = true
28+
29+
[output.epub]

src/crates-io/publishing.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ pub fn add_one(x: i32) -> i32 {
3939

4040
处于便利目的,运行 `cargo doc --open` 将构建出当前代码箱文档(以及咱们代码箱全部依赖的文档)的 HTML,并随后在 web 浏览器中打开得到的结果。导航到那个 `add_one` 函数,咱们将看到文档注释中的文本如何渲染出来,如下图片 14-01 中所示:
4141

42-
![`add_one` 函数的 HTML 文档](images/14-01.png)
42+
![`add_one` 函数的 HTML 文档](../images/14-01.png)
4343

4444
*图 14-01:`add_one` 函数的 HTML 文档*
4545

@@ -141,7 +141,7 @@ error: doctest failed, to rerun pass `--doc`
141141

142142
当咱们运行 `cargo doc --open` 时,这些注释将显示在 `cargo_features_demo` 代码箱文档的首页,he front page,位处代码箱公开项目的清单之上,如下图 14-02 中所示:
143143

144-
![渲染出的 `cargo_features_demo` 代码箱文档](images/14-02.png)
144+
![渲染出的 `cargo_features_demo` 代码箱文档](../images/14-02.png)
145145

146146
*图 14-02:渲染出的 `cargo_features_demo` 代码箱文档, 包括着将该代码箱作为整体描述的注释*
147147

@@ -200,7 +200,7 @@ pub mod utils {
200200

201201
下图 14-03 展示了由 `cargo doc` 产生出的该代码箱文档首页,看起来的样子:
202202

203-
![列出 `kinds``utils` 两个模组的 `art` 代码箱文档首页](images/14-03.png)
203+
![列出 `kinds``utils` 两个模组的 `art` 代码箱文档首页](../images/14-03.png)
204204

205205
*图 14-3:列出 `kinds``utils` 两个模组的 `art` 代码箱文档首页*
206206

@@ -258,7 +258,7 @@ pub mod utils;
258258

259259
如下图 14-04 中所示,`cargo doc` 为此代码箱所产生出的 API 文档,现在将在首页上列出并链接到重导出项,从而令到 `PrimaryColor``SecondaryColor` 两个类型及 `mix` 函数更易于找到。
260260

261-
![列出了重导出项目的 `art` 代码箱文档首页](images/14-04.png)
261+
![列出了重导出项目的 `art` 代码箱文档首页](../images/14-04.png)
262262

263263
*图 14-4:列出重导出项的 `art` 代码箱文档首页*
264264

src/ownership/references_and_borrowing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ fn calculate_length(s: &String) -> usize {
2727
首先,请注意变量声明和函数返回值中的所有元组代码都不见了。其次,请注意我们将 `&s1` 传入到 `calculate_length`,且在其定义中,我们使用了 `&String` 而不是 `String`。这些 `&` 符合表示了 *引用*,而他们允许咱们,在取得某个值所有权的情况下,对其进行引用。下图 4-5 描述了这一概念。
2828

2929

30-
![指向 `String s1``&String s` 图示](images/Ch04_05.svg)
30+
![指向 `String s1``&String s` 图示](../images/Ch04_05.svg)
3131

3232
*图 4-5:指向 `String s1``&String s` 图示*
3333

src/smart_pointers/box-t.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ enum Message {
129129

130130
将此与 Rust 尝试确定递归类型(如清单 15-2 中的 `List` 枚举)需要多少空间时发生的情况进行对比。编译器从查看 `Cons` 变种开始,其持有一个 `i32` 类型的值和一个 `List` 类型的值。因此,`Cons` 需要的空间量等于 `i32` 的大小加上 `List` 的大小。为了计算出 `List` 类型需要多少内存,编译器会从 `Cons` 变体开始查看变种。 `Cons` 变种保存了一个 `i32` 类型的值和一个 `List` 类型的值,这个过程会无限继续下去,如图 15-1 所示。
131131

132-
![由无限的 `Cons` 变种组成的一个无限 `List`](images/15-01.svg)
132+
![由无限的 `Cons` 变种组成的一个无限 `List`](../images/15-01.svg)
133133

134134
*图 15-01:由无限的 `Cons` 变种组成的一个无限 `List`*
135135

@@ -174,7 +174,7 @@ fn main() {
174174

175175
`Cons` 变种需要一个 `i32` 的大小,加上存储匣子指针数据的内存空间。`Nil` 变种不存储存储任何值,所以他需要的空间比 `Cons` 变种少。咱们现在知道,任何 `List` 值都会占用一个 `i32` 的大小,加上一个匣子的指针数据的大小。通过使用匣子,咱们已经破解了无限的递归链,因此编译器可以计算出存储 `List` 值所需的内存大小。下图 15-2 显示了 `Cons` 变种现在的样子:
176176

177-
![由于 `Cons` 保存了一个 `Box` 而不在是无限大小的 `List`](images/15-02.svg)
177+
![由于 `Cons` 保存了一个 `Box` 而不在是无限大小的 `List`](../images/15-02.svg)
178178

179179
*图 15-02:不在是无限大小的 `List`,因为 `Cons` 持有着一个 `Box`*
180180

src/smart_pointers/rc-t.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
让我们回到清单 15-5 中咱们的构造列表示例。回想一下,我们用 `Box<T>` 定义了他。这一次,我们将创建两个列表,二者会公用第三个列表的所有权。从概念上看,这类似于下图 15-3:
2323

24-
![`b``c` 两个列表,共用了第三列表 `a` 的所有权](images/15-03.svg)
24+
![`b``c` 两个列表,共用了第三列表 `a` 的所有权](../images/15-03.svg)
2525

2626
*图 15-03:两个列表`b``c`,共用第三个列表 `a` 的所有权*
2727

@@ -76,7 +76,7 @@ error: could not compile `sp_demos` due to previous error;
7676
文件名:`src/main.rs`
7777

7878
```rust
79-
{{#rustdoc_include ../projects/rc_demo/src/main.rs}}
79+
{{#include ../../projects/rc_demo/src/main.rs}}
8080
```
8181

8282
*清单 15-18:使用 `Rc<T>``List` 定义*

src/smart_pointers/ref-cycles.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ b 的下一条目 = Some(RefCell { value: Cons(5, RefCell { value: Nil }) })
5757

5858
在咱们将 `a` 中的列表改为指向 `b` 后,`a``b` 中的 `Rc<List>` 实例的引用计数均为 `2`。在 `main` 的最后,Rust 弃用了变量 `b`,这使得 `b` 中的 `Rc<List>` 实例的引用计数从 `2` 减少到 `1``Rc<List>` 在内存堆中的内存此时不会被弃用,因为其引用计数为 `1` 而不是 `0`。然后 Rust 弃用 `a`,将 `a` 中的 `Rc<List>` 实例的引用计数从 `2` 减少到 `1`。由于另一 `Rc<List>` 实例仍指向他,因此该实例的内存也不能被弃用。分配给列表内存将永远保持未被收集的状态。为直观地表示这个引用循环,咱们创建了下图 15-4 中的图表。
5959

60-
![相互指向的列表 `a``b` 的一个循环引用](images/15-04.svg)
60+
![相互指向的列表 `a``b` 的一个循环引用](../images/15-04.svg)
6161

6262
*图 15-04:列表 `a``b` 相互指向的引用循环*
6363

0 commit comments

Comments
 (0)