Update Ch14

This commit is contained in:
Unisko PENG 2023-04-24 10:25:05 +08:00
parent 216aa52513
commit cca3baf6c0

View File

@ -335,26 +335,26 @@ fn main() {
*清单 14-6使用着 `art` 代码箱重导出项的程序*
在那些其中有着许多嵌套模组的情形下,于代码箱结构的顶部,使用 `pub use` 重导出一些类型,可在那些用到该代码箱的人体验上,造成显著不同。`pub use` 的另一常见用途,则是重导出当前代码箱中某项依赖的一些定义,而把那个依赖代码箱的一些定义,构造为咱们自己代码箱的公开 API
其中有许多嵌套模组的情形下,以 `pub use` 在顶层重导出类型,可在用到该代码箱的人的体验方面,造成显著不同。`pub use` 的另一常见用途则是,为将依赖代码箱的定义构造为咱们自己代码箱公开 API 的一部分,而重导出当前代码箱中某个依赖的定义
创建出一种有用的公开 API 结构,与其说是一门科学,不如说是一门艺术,同时可以不断迭代,来找出对于代码箱用户运作最佳的那种 API。而选择 `pub use` 则会给到在内部组织代码箱方式上的灵活性,同时解偶了内部结构,与呈现给代码箱用户的组织结构。请查看曾安装过的一些代码箱的代码,来检视他们内部结构,是否不同于他们的公开 API。
创建出有用的公开 API 结构,与其说是一门科学,不如说是一门艺术,而咱们可不断迭代,来找到对用户运作最佳的 API。选择 `pub use` 会给到咱们在内部组织代码箱方式上的灵活性,并解除了内部结构与呈现给代码箱用户的组织结构的耦合。请查看咱们曾安装的代码箱代码,来发现他们的内部结构,是否不同于其公开 API。
### 建立一个 Crates.io 帐号
### 建立 Crates.io 帐号
在能发布代码箱之前,咱们需要在 [crates.io](https://crates.io) 上创建一个帐号,并获取到一个 API 令牌an API token。而要这样做就要访问 [crates.io](https://crates.io) 处的主页,并经由一个 GitHub 帐号登录。GitHub 帐号目前是必须的,但该站点后面可能会支持创建帐号的其他途径。)在登录之后,就要访问 [https://crates.io/me/](https://creates.io/me/) 处的帐号设置,并找回自己的 API 密钥API key。然后使用这个 API 密钥,运行 `cargo login` 命令,如下:
咱们能发布代码箱之前,咱们需要在 [crates.io](https://crates.io) 上创建帐号,并得到 API 令牌an API token。而要这样做就要访问 [crates.io](https://crates.io) 处的主页,并通过 GitHub 帐号登录。(目前 GitHub 帐号是必须的,但该站点今后可能会支持其他创建帐号途径。)在登录后,咱们就要访问 [https://crates.io/me/](https://creates.io/me/) 处的帐号设置,而获取自己的 API 密钥API key。然后使用咱们的 API 密钥,运行 `cargo login` 命令,如下:
```console
$ cargo login abcdefghijklmnopqrstuvwxyz012345
```
此命令将告知 Cargo 咱们的 API 令牌,并将其存储在本地的 `~/.cargo/credentials` 文件中。请注意此令牌是个 *秘密secret*不要与其他任何人分享这个秘密。不论以何种方式让任何人知道了API 令牌,那么就都应该吊销这个 API 令牌,并在 [crates.io](https://crates.io) 上重新生成一个新的令牌。
此命令将告知 Cargo 咱们的 API 令牌,并`~/.cargo/credentials` 文件中本地存储起来。请注意此令牌是个 *秘密secret*:不要与任何人分享。不论因何种缘故,与任何人分享了,咱们都应吊销他,并在 [crates.io](https://crates.io) 上生成新的令牌。
### 给新的代码箱添加元数据
### 添加元数据到新代码箱
**Adding Metadata to a New Crate**
Adding Metadata to a New Crate**
好比说有个打算发布的代码箱。在发布之前,就将需要在该代码箱的 `Cargo.toml` 文件的 `[package]` 小节中,添加一些元数据。
假设咱们有了个打算发布的代码箱。在发布前,咱们将需要在该代码箱的 `Cargo.toml` 文件的 `[package]` 小节中,添加一些元数据。
咱们的代码箱将需要一个独特的名字。尽管在本地编写某个代码箱时,可以给代码箱取任意喜欢的名字。但是,[crates.io](https://crates.io) 上代码箱的名字则是以先到先得的原则分配的allocated on a first-come, first-served basis。一旦某个代码箱名字被使用其他人就不能发布有着那个名字的代码箱了。在尝试发布某个代码箱之前就要检索一下咱们打算使用的那个名字。在这个名字已被使用时就需要找到另一个名字并编辑 `Cargo.toml` 文件中 `[package]` 小节下的 `name` 字段,以在使用那个用于发布的新名字,就像下面这样: