9 个版本 (5 个重大变更)
0.8.0 | 2022年7月20日 |
---|---|
0.7.1 | 2022年6月2日 |
0.7.0 | 2022年5月5日 |
0.6.0 | 2022年3月18日 |
0.1.0 | 2020年10月9日 |
#8 in #dupe
5,887 每月下载量
用于 4 个 crate (通过 gazebo)
42KB
821 行
Gazebo - Rust 工具库
此库包含一系列经过充分测试的工具。大多数模块独立存在,但通过一些代表性的示例
gazebo::prelude::*
被这样导入,并为常用类型提供扩展特质。例如,它提供了Vec::map
,这相当于iter().map(f).collect::<Vec<_>>()
,以及str::split1
等与split
类似,但仅分割一次。我们希望其中一些函数有一天能进入 Rust 标准库。gazebo::dupe
提供了具有成员dupe
的特质Dupe
,这些成员与Clone
完全相同。区别在于不应为重新分配或具有昂贵clone
操作的类型实现Dupe
- 例如,存在Dupe
对于Arc
和usize
,但不是对于String
和Vec
。通过使用dupe
,可以轻松关注clone
调用(应该是很少见的)并忽略成本最小的事物。gazebo::cell::ARef
提供了一种类型,这种类型可以是Ref<T>
或直接引用&T
,具有使它看起来像Ref
的操作 -- 允许您将引用统一转换为类似Ref
的东西。gazebo::any::AnyLifetime
提供了一个类似于Any
的特质,但不需要'static
生命周期,但代价是更多的模板代码。
Gazebo 提供的功能并不稳定,并且随着新功能的添加(我们发现新的有用功能)和移除(我们发现更好的模式或封装这些想法的库)而不断演变。虽然代码在实用性和设计质量上有所不同,但它都经过了良好的测试和文档化。
使用 Gazebo
您可以通过将 gazebo
添加到您的 [dependencies]
中来依赖 Gazebo,使用标准的 Cargo 模式。
此存储库中有两个有趣的目录是 gazebo
(其中包含 Gazebo 本身的源代码)和 gazebo_derive
(其中包含对 #[derive(Dupe)]
和其他 Gazebo 特质的支持)。通常您将直接导入 gazebo
,但如果您是从 GitHub 获取库,则需要 gazebo_derive
作为必需的传递依赖项。
了解更多信息
您可以在 这个入门视频 中了解更多关于 Gazebo 的信息,或者从以下博客文章中了解
- Rust Nibbles - Gazebo: 序言
- Rust Nibbles - Gazebo: Dupe
- Rust Nibbles - Gazebo: 变体
- Rust Nibbles - Gazebo: AnyLifetime
- Rust Nibbles - Gazebo: 比较
- Rust Nibbles - Gazebo: 强制类型转换和转换
- Rust Nibbles - Gazebo: 帐篷的其余部分
发布版本
- 检查 GitHub Actions 是否为绿色。
- 更新
CHANGELOG.md
,其中包含自上次发布以来的更改。 此链接 可以帮助(更新以比较上次发布)。 - 更新两个
Cargo.toml
文件中的版本号。如果没有不兼容的更改,则通过 0.0.1 升级,如果有则通过 0.1.0 升级。将gazebo
中的依赖项升级到最新的gazebo_derive
版本。 - 将
CHANGELOG.md
、两个LICENSE
文件和README.md
文件复制到每个gazebo
和gazebo_derive
子目录中。 - 运行
cargo publish --allow-dirty --dry-run
,然后在gazebo_derive
和gazebo
目录中,先不带--dry-run
。 - 创建一个带有
v0.X.Y
的 GitHub 发布版,使用gazebo
版本作为名称。
许可证
Gazebo 具有MIT和Apache许可证版本2.0的双重许可,如LICENSE-MIT 和 LICENSE-APACHE 文件所示。
依赖项
~1.5MB
~34K SLoC