### Goal Represents a duration. A duration is represented as ISO8601 string. ### Use Cases * Calculate with two durations, for example add two durations (1 day + 1 day = 2 days) * Calculate with a date time and a duration (see #23) * Use durations in schedulers / periodically executed tasks * Execute task every `duration` * Execute task in `duration` * Use durations for defining lifetimes * A particle lives for `duration` * A projectile explodes in `duration` * A game ends in `duration` * The game last `duration` * Use durations for polling * Send HTTP Request every `duration` * Synchronize `something` every `duration` ### Tasks - [ ] Component Duration - [ ] Property `duration` (string) - [ ] Extension `duration_format` - [ ] Implement Component Model - [ ] `to_duration() -> std::time::Duration` - [ ] `from_iso8601_duration(iso8601_duration_str: String)` - [ ] `parse(duration_with_time_unit: String)` (https://crates.io/crates/fundu#time-units) - [ ] from f64 - [ ] `as_secs() -> u64` (https://doc.rust-lang.org/std/time/struct.Duration.html#method.as_secs) - [ ] `as_millis() -> u128` (https://doc.rust-lang.org/std/time/struct.Duration.html#method.as_millis) - [ ] Implement Behaviours - [ ] From: Creates a duration (string) from a number of time units - [ ] `from_millis(millis) -> result` - [ ] `from_secs(sec) -> result` - [ ] `from_secs(sec) -> result` - [ ] Calculate with durations - [ ] `add(lhs, rhs) -> result` - [ ] `sub(lhs, rhs) -> result` - [ ] `mul(lhs, rhs) -> result` - [ ] `div(lhs, rhs) -> result` ### Reference * https://en.wikipedia.org/wiki/ISO_8601#Durations * https://doc.rust-lang.org/std/time/struct.Duration.html ### Crates * https://crates.io/crates/duration-str * https://crates.io/crates/fundu
Goal
Represents a duration. A duration is represented as ISO8601 string.
Use Cases
durationdurationdurationdurationdurationdurationdurationsomethingeverydurationTasks
duration(string)duration_formatto_duration() -> std::time::Durationfrom_iso8601_duration(iso8601_duration_str: String)parse(duration_with_time_unit: String)(https://crates.io/crates/fundu#time-units)as_secs() -> u64(https://doc.rust-lang.org/std/time/struct.Duration.html#method.as_secs)as_millis() -> u128(https://doc.rust-lang.org/std/time/struct.Duration.html#method.as_millis)from_millis(millis) -> resultfrom_secs(sec) -> resultfrom_secs(sec) -> resultadd(lhs, rhs) -> resultsub(lhs, rhs) -> resultmul(lhs, rhs) -> resultdiv(lhs, rhs) -> resultReference
Crates