From a14dea8c6adfdc5df46cdbe40aa9cebcfede6fca Mon Sep 17 00:00:00 2001 From: wencan Date: Sat, 3 Jun 2023 11:28:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B07.3=E4=B8=AD=E6=9C=80?= =?UTF-8?q?=E4=BD=B3=E5=AE=9E=E8=B7=B5=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ch07-03-paths-for-referring-to-an-item-in-the-module-tree.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ch07-03-paths-for-referring-to-an-item-in-the-module-tree.md b/src/ch07-03-paths-for-referring-to-an-item-in-the-module-tree.md index e4b085d..ca334bd 100644 --- a/src/ch07-03-paths-for-referring-to-an-item-in-the-module-tree.md +++ b/src/ch07-03-paths-for-referring-to-an-item-in-the-module-tree.md @@ -93,7 +93,7 @@ Rust 选择以这种方式来实现模块系统功能,因此默认隐藏内部 > ### 二进制和库 crate 包的最佳实践 > -> 我们提到过包可以同时包含一个 *src/main.rs* 二进制 crate 根和一个 *src/lib.rs* 库 crate 根,并且这两个 crate 默认以包名来命名。通常这种包含二进制程序和库模式的包的二进制 crate 中会有刚好足够的代码来调用库 crate 中的代码。这使得其它项目受益于包提供的绝大部分功能,因为库 crate 可以被共享。 +> 我们提到过包可以同时包含一个 *src/main.rs* 二进制 crate 根和一个 *src/lib.rs* 库 crate 根,并且这两个 crate 默认以包名来命名。通常,这种包含二进制 crate 和库 crate 的模式的包,在二进制 crate 中只有足够的代码来启动一个可执行文件,可执行文件调用库 crate 的代码。又因为库 crate 可以共享,这使得其它项目从包提供的大部分功能中受益。 > > 模块树应该定义在 *src/lib.rs* 中。这样通过以包名开头的路径,公有项就可以在二进制 crate 中使用。二进制 crate 就完全变成了同其它 外部 crate 一样的库 crate 的用户:它只能使用公有 API。这有助于你设计一个好的 API;你不仅仅是作者,也是用户! > 在[第十二章][ch12]我们会通过一个同时包含二进制 crate 和库 crate 的命令行程序来展示这些包组织上的实践。