11 releases
0.3.7 | Jun 6, 2023 |
---|---|
0.3.6 | Jun 23, 2022 |
0.3.5 | Feb 14, 2022 |
0.3.3 | Dec 25, 2021 |
0.1.4 | Oct 31, 2021 |
#30 in Embedded development
67,588 downloads per month
Used in 229 crates
(105 directly)
150KB
2.5K
SLoC
fugit
fugit
provides a comprehensive library ofDuration
andInstant
for the handling of time in embedded systems, doing all it can at compile time.
This library is a heavily inspired of std::chrono
's Duration
from C++ which does all it can at compile time.
Aims
no_std
library with goals of user-friendliness and performance first- All methods are
const fn
that can be (i.e. non-trait methods) - Use no traits, concrete types all the way for maximum
const
-ification - Operations are supported between different bases and backing storages instead of implementing custom traits
- All constants needed for comparing or changing timebase are guaranteed compile time generated
- All methods are
- Support for both
u32
andu64
backing storage with efficient instruction lowering on MCUs- On Cortex-M3 and up: no soft-impls pulled in for both
u32
andu64
except when changing base onu64
- Comparisons on
u32
andu64
do not use division, only changing base with all constants calculated at compile time
- On Cortex-M3 and up: no soft-impls pulled in for both
- Selection of base happens at compile time
- A common problem is that run time changing of base robs us of a lot of optimization opportunities, but since there are no traits and short-hands select the correct base at compile time.
Dependencies
~165KB