2个版本
0.1.1 | 2021年8月21日 |
---|---|
0.1.0 | 2021年8月21日 |
#10 in #pub
5KB
艺术
一个用于建模艺术概念的库。(实际上,它只是用于了解如何使用pub use
重新导出项目,以提供更便捷的公共API,为用户提供比内部层次结构更便捷的替代方案。)
这是来自Rust书第14章第2节的内容。
重新导出项目
依赖于这个库的Crate可以编写如下内容
use rust_book_art::kinds::PrimaryColour;
use rust_book_art::utils::mix;
fn main() {
let red = PrimaryColour::Red;
let yellow = PrimaryColour::Yellow;
mix(red, yellow);
}
这将要求art
库的用户弄清楚颜色位于kinds
模块中,而mix
位于utils
模块中。这种层次结构对开发art
库的人来说更有用,而不是那些只是在自己的项目中使用它的人。
使用重新导出,Crate用户可以编写如下内容
use rust_book_art::PrimaryColour;
use rust_book_art::mix;
fn main() {
// --snip--
}
重新导出深层嵌套的模块,将内部结构从用户所见的内容中分离出来,可以提高用户体验,并允许在Crate代码的内部结构中具有灵活性。
发布Crate
这个Crate的另一个原因是我想学习如何发布到crates.io。
首先,创建一个crates.io账户,并在crates.io/me处获取API令牌,然后运行cargo login <token>
。令牌保存在~/.cargo/credentials中。