#integer #unaligned #non-standard #misaligned #type #conversion #u63

no-std nsw-types

实现以下非标准整数类型:u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63

2个版本

0.1.7 2024年7月9日
0.1.6 2024年7月7日

#259 in 嵌入式开发

Download history 22/week @ 2024-07-01 239/week @ 2024-07-08 20/week @ 2024-07-22 6/week @ 2024-07-29 7/week @ 2024-08-05

每月51次下载
4个crate中使用(通过bit-cursor

Apache-2.0/MIT

110KB
2.5K SLoC

nsw-types

非标准整数类型,如u7u9u10u63i7i9

注意:此仓库是uX crate的分支,该crate已经处于未维护状态。

当应用程序需要非标准宽度的整数时,通常的做法是使用更大的容器,并确保在操作后值在范围内。nsw-types旨在一次解决所有这些问题,通过

  • 提供与内置Rust类型行为尽可能相似的u1-u127i1-i127类型
    • 定义的类型的方法是内置类型的相同(目前并非所有方法都已实现,但如果有必要,可以提出问题或创建PR)
    • 在调试中会引发panic,在发布中会进行包装。
  • 通过使用From可以实现所有无损且可靠的转换。
  • 通过使用TryFrom可以实现所有可能的无损且可能失败的转换。

类型占用的空间与可以容纳它们的最低整数类型一样多。

许可证

许可协议为以下之一:

任选其一。

贡献

除非您明确声明,否则您根据Apache-2.0许可证定义的任何有意提交以包含在作品中的贡献,应按上述方式双重许可,不附加任何额外条款或条件。

依赖项