11个版本
0.3.7 | 2023年6月6日 |
---|---|
0.3.6 | 2022年6月23日 |
0.3.5 | 2022年2月14日 |
0.3.3 | 2021年12月25日 |
0.1.4 | 2021年10月31日 |
#44 in 嵌入式开发
67,844 每月下载量
用于 220 个 包(97个直接使用)
150KB
2.5K SLoC
fugit
fugit
提供了一个全面的Duration
和Instant
库,用于在嵌入式系统中处理时间,并在编译时尽可能完成所有操作。
这个库受到了 C++ 中 std::chrono
的 Duration
的强烈启发,该库在编译时尽可能完成所有操作。
目标
no_std
库,以用户友好性和性能为目标- 所有方法都是
const fn
(即非特质方法) - 不使用特质,所有具体类型都使用以实现最大化的
const
-ification - 支持不同基数和后备存储之间的操作,而不是实现自定义特质
- 确保生成所有用于比较或更改时间基的常量都是在编译时生成的
- 所有方法都是
- 支持
u32
和u64
后备存储,在MCU上高效地降低指令- 在Cortex-M3及以上:除非在
u64
上更改基数,否则不会为u32
和u64
拖入软实现 - 在
u32
和u64
上的比较不使用除法,仅更改基数,所有常量都是在编译时计算的
- 在Cortex-M3及以上:除非在
- 基数的选择发生在编译时
- 一个常见问题是运行时更改基数使我们失去了许多优化机会,但由于没有特质和简写,我们可以在编译时选择正确的基数。
依赖项
~170KB