#编译时 #数字 #无符号整数 #有符号整数 # #类型级别 #数组

无 std typenum

Typenum 是一个在编译时评估类型级别数字的 Rust 库。它目前支持位、无符号整数和有符号整数。它还提供了一个类型级别的数字数组,但它的实现尚不完整。

26 个稳定版本

1.17.0 2023 年 9 月 15 日
1.16.0 2022 年 12 月 5 日
1.15.0 2021 年 12 月 26 日
1.14.0 2021 年 9 月 1 日
0.1.1 2015 年 10 月 16 日

Rust 模式 中排名 46

Download history 1768938/week @ 2024-04-20 1656273/week @ 2024-04-27 1681969/week @ 2024-05-04 1771355/week @ 2024-05-11 1737555/week @ 2024-05-18 1671412/week @ 2024-05-25 1866261/week @ 2024-06-01 1816195/week @ 2024-06-08 1807610/week @ 2024-06-15 1821864/week @ 2024-06-22 1695697/week @ 2024-06-29 1869978/week @ 2024-07-06 1849855/week @ 2024-07-13 1924129/week @ 2024-07-20 1948381/week @ 2024-07-27 1941243/week @ 2024-08-03

每月下载量 7,990,196
用于 26,744 个 crate (280 个直接使用)

MIT/Apache 协议

200KB
6K SLoC

crates.io Build Status

Typenum

Typenum 是一个在编译时评估类型级别数字的 Rust 库。它目前支持位、无符号整数和有符号整数。

Typenum 只依赖于 libcore,因此适用于任何平台!

要查看完整文档,请点击 这里

导入

虽然 typenum 被划分为几个模块,但它们都通过 crate 根重新导出,因此您可以使用 use typenum:: whatever; 导入其中任何内容,忽略 crate 结构。

您还可以将 consts 模块视为预言录,执行全局导入。

示例

以下是一个关于 typenum 的简单示例

use typenum::{Sum, Exp, Integer, N2, P3, P4};

type X = Sum<P3, P4>;
assert_eq!(<X as Integer>::to_i32(), 7);

type Y = Exp<N2, P3>;
assert_eq!(<Y as Integer>::to_i32(), -8);

要查看其使用的非简单示例,请查看依赖它的一个 crate。完整的列表见 这里。值得注意的是 dimensioned,它为任意单位系统提供编译时类型检查,以及 generic-array,它提供可以泛型引用长度的数组。

错误信息

Typenum 的错误信息并不理想,可能难以解析。好消息是,Auxon 的一些优秀人士已经编写了一个工具来帮助解决这个问题。请查看 tnfilt

许可

以下任一许可下授权:

由您自行选择。

贡献

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

依赖项

~0–630KB
~13K SLoC