#traits #operator #no-std #general #standard #error

no-std ext-ops

标准库中缺失的通用算术操作符特性

1个不稳定版本

0.1.0 2023年5月1日

#1635 in 数学


用于 vectorial

MPL-2.0 许可证

29KB
647 代码行

ext-ops

版权所有 (c) 2023 Martin Mills [[email protected]]

License: MPL 2.0

为Rust提供的通用算术操作符特性,这些特性在标准库中缺失。名称 ext-ops 是 "扩展操作符" 的缩写。

此crate旨在解决 num-traits crate 的一些不足。

  • ext-ops 提供的 Try* 特性返回一个 Result 而不是 Option,因此可以通过 ? 操作符传播算术错误。
  • ext-ops 特性不需要操作数是引用。这允许进行优化,这些优化可能无法使用 num-traits 实现,例如,消耗一个 BigInt 操作数而不是构造一个新的操作数。
  • ext-ops 特性没有特质约束。例如,可以为不实现 Add 的类型实现 TryAdd

在撰写本文档时,某些预期的特性可能尚未为某些类型实现,甚至根本未定义。这是因为尚未确定哪种可能的操作行为最佳。如果您发现缺少某些功能,请随时提交问题。

无运行时依赖项

功能