7 releases
0.1.6 | Apr 6, 2023 |
---|---|
0.1.5 | Apr 6, 2023 |
#392 in Date and time
19KB
466 lines
About
A counter stores start
and end
times, and implements Display
to either show the time passed since start
, or until end
,
formatted as HH(+):MM:SS
.
The timer will not go down past 00:00:00.
Examples
Basic functionality is very simple:
let now = TimeStamp::now();
let mut counter = Counter::down(
Some(now - 600),
Some(now + 600)
);
// A small amount of time will have passed since `now` was assigned
assert_eq!(counter.to_string(), "00:09:59");
counter.flip();
// It now counts up from `start`
assert_eq!(counter.to_string(), "00:10:00")
Both start
and end
times are adjustable:
let mut counter = Counter::up(Some(TimeStamp::now()), None);
counter.try_move_start(-30).unwrap();
assert_eq!(counter.to_string(), "00:00:30")
Documentation
The full documentation is available here on docs.rs!
Motivation
The primary motivation for the creation of this library is the concept of a marathon livestream, where the stream begins with a timer set to e.g. 4 hours at the beginning, and viewers can increase this time by paying.
Dependencies
~1MB
~18K SLoC