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

Download history 1597/week @ 2024-03-15 1617/week @ 2024-03-22 1557/week @ 2024-03-29 1687/week @ 2024-04-05 1735/week @ 2024-04-12 1464/week @ 2024-04-19 1442/week @ 2024-04-26 1342/week @ 2024-05-03 1562/week @ 2024-05-10 1375/week @ 2024-05-17 960/week @ 2024-05-24 1681/week @ 2024-05-31 1534/week @ 2024-06-07 1889/week @ 2024-06-14 1498/week @ 2024-06-21 794/week @ 2024-06-28

5,887 每月下载量
用于 4 个 crate (通过 gazebo)

MIT/Apache

42KB
821

Gazebo - Rust 工具库

Support Ukraine GitHub link crates.io version docs.rs availability Build status

此库包含一系列经过充分测试的工具。大多数模块独立存在,但通过一些代表性的示例

  • gazebo::prelude::* 被这样导入,并为常用类型提供扩展特质。例如,它提供了 Vec::map,这相当于 iter().map(f).collect::<Vec<_>>(),以及 str::split1 等与 split 类似,但仅分割一次。我们希望其中一些函数有一天能进入 Rust 标准库。
  • gazebo::dupe 提供了具有成员 dupe 的特质 Dupe,这些成员与 Clone 完全相同。区别在于不应为重新分配或具有昂贵 clone 操作的类型实现 Dupe - 例如,存在 Dupe 对于 Arcusize,但不是对于 StringVec。通过使用 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 的信息,或者从以下博客文章中了解

发布版本

  1. 检查 GitHub Actions 是否为绿色。
  2. 更新 CHANGELOG.md,其中包含自上次发布以来的更改。 此链接 可以帮助(更新以比较上次发布)。
  3. 更新两个 Cargo.toml 文件中的版本号。如果没有不兼容的更改,则通过 0.0.1 升级,如果有则通过 0.1.0 升级。将 gazebo 中的依赖项升级到最新的 gazebo_derive 版本。
  4. CHANGELOG.md、两个 LICENSE 文件和 README.md 文件复制到每个 gazebogazebo_derive 子目录中。
  5. 运行 cargo publish --allow-dirty --dry-run,然后在 gazebo_derivegazebo 目录中,先不带 --dry-run
  6. 创建一个带有 v0.X.YGitHub 发布版,使用 gazebo 版本作为名称。

许可证

Gazebo 具有MIT和Apache许可证版本2.0的双重许可,如LICENSE-MITLICENSE-APACHE 文件所示。

依赖项

~1.5MB
~34K SLoC