#integer #misaligned #unaligned #conversion

no-std ux_serde

实现以下非标准整数: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

1个不稳定版本

使用旧的Rust 2015

0.2.0 2021年1月10日

#1100嵌入式开发

22 每月下载量
3 个crate中使用了(直接使用2个)

Apache-2.0/MIT

71KB
1K SLoC

uX_serde Crates.io

由meh添加了可选serde支持的kjetilkjeka/uX的分支。

非标准整数类型如u7u9u10u63i7i9

当应用需要非标准宽度的整数时,通常的做法是使用更大的容器,并在操作后确保值在范围内。uX旨在通过以下方式一次解决所有问题:

  • 提供u1-u127i1-i127类型,这些类型的行为应尽可能接近内置的Rust类型
    • 定义的类型的方法与内置类型的方法相同(目前并未全部实现,但如果有缺失的必要功能,请提交issue或创建PR)
    • 在调试中,溢出会触发panic,在发布版本中会自动回绕。
  • 通过使用From,可以实现所有可能的无损转换。
  • TryFrom稳定时,也将支持可失败转换。

许可证

许可协议为以下之一

由您选择。

贡献

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

依赖项

~175KB