19 个版本 (7 个重大更新)
0.8.1 | 2022 年 10 月 18 日 |
---|---|
0.8.0 | 2022 年 7 月 20 日 |
0.7.1 | 2022 年 6 月 2 日 |
0.6.0 | 2022 年 3 月 18 日 |
0.1.0 | 2020 年 10 月 9 日 |
#304 在 Rust 模式
5,850 每月下载量
用于 3 个 crate (2 个直接使用)
115KB
2K SLoC
Gazebo - Rust 实用工具库
这个库包含了一组经过充分测试的实用工具。大多数模块都是独立的,但通过一些代表性的示例
gazebo::prelude::*
可以这样导入,并提供对常用类型的扩展特质。例如,它提供了Vec::map
,这相当于iter().map(f).collect::<Vec<_>>()
,以及类似split
的str::split1
,但只分割一次。我们希望其中一些函数有一天能进入 Rust 标准库。gazebo::dupe
提供了具有成员dupe
的Dupe
特质,它们都与Clone
完全一样。区别在于Dupe
不应实现为重新分配或有昂贵clone
操作的类型 - 例如,存在Dupe
为Arc
和usize
,但不为String
和Vec
。通过使用dupe
,可以轻松关注clone
调用(应该是很少见的)并忽略成本最小的事物。gazebo::cell::ARef
提供了一种类型,该类型要么是Ref<T>
,要么是直接引用&T
,具有使它看起来像Ref
的操作,允许您将引用统一转换为类似Ref
的东西。gazebo::any::AnyLifetime
提供了一个类似Any
的特性,但不需要'static
生命周期,代价是更多的样板代码。
Gazebo 提供的功能并不稳定,并且随着新功能的添加(当我们发现新的有用功能时)和删除(当我们发现更好的模式或封装想法更好的库时)而不断发展。虽然代码在有用性和设计质量上有所不同,但它都经过了良好的测试和文档记录。
使用 Gazebo
您可以通过将 gazebo
添加到您的 [dependencies]
中,使用标准的 Cargo 模式 来依赖 Gazebo。
该仓库中有两个有趣的目录是 gazebo
(其中包含 Gazebo 本身的源代码)和 gazebo_derive
(其中包含对 #[derive)]
和其他 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
,然后在不包含--dry-run
的情况下,首先在gazebo_derive
目录中,然后在gazebo
目录中运行。 - 使用
gazebo
版本作为名称,创建一个 GitHub 发布,版本号为v0.X.Y
。
许可证
Gazebo 采用 MIT 和 Apache 许可证,版本 2.0,如 LICENSE-MIT 和 LICENSE-APACHE 文件所示。
依赖项
~1.5MB
~35K SLoC