Expand description
§simple_duration
simple_duration is a crate that provides a “simple and minimal dependency” second-precision Duration type for Rust.
It’s optimized for everyday “hours, minutes, seconds” handling and embedded environments (no_std).
§Features
- Simple time representation in seconds: Specialized for use cases that don’t require high precision like milliseconds or nanoseconds
- Intuitive creation and formatting: Easy creation from hours/minutes/seconds and conversion to
"hh:mm:ss"format strings - String parsing support: Can create Duration objects from
"hh:mm:ss"format strings - Addition and subtraction operations: Duration objects can be added and subtracted (results never become negative)
- SystemTime integration: Can create Duration from two
SystemTimeinstances (whenstdfeature is enabled) - no_std support & minimal dependencies: Safe to use in embedded projects or projects that want to minimize dependencies
- Safe error handling: Failures like string parsing return explicit errors via Option/Result without panicking
§Usage Examples
use simple_duration::Duration;
// Create from hours, minutes, seconds
let duration = Duration::from_hms(1, 30, 45); // 1 hour 30 minutes 45 seconds
// Create from hours
let duration = Duration::from_hours(2); // 2 hours
// Create from minutes
let duration = Duration::from_minutes(90); // 90 minutes (1 hour 30 minutes)
// Create from seconds
let duration = Duration::from_seconds(3661); // 1 hour 1 minute 1 second
// Create from string
let duration = Duration::parse("01:30:45").unwrap();
// Format
assert_eq!(duration.format(), "01:30:45");
// Get total amounts in each unit
assert_eq!(duration.as_seconds(), 5445);
assert_eq!(duration.as_minutes(), 90); // 90 minutes
assert_eq!(duration.as_hours(), 1); // 1 hour (truncated)
// Get each component (in h:m:s format)
assert_eq!(duration.seconds_part(), 45); // seconds component (0-59)
assert_eq!(duration.minutes_part(), 30); // minutes component (0-59)
assert_eq!(duration.hours_part(), 1); // hours component
// Arithmetic operations
let d1 = Duration::from_seconds(100);
let d2 = Duration::from_seconds(50);
let sum = d1 + d2; // 150 seconds
let diff = d1 - d2; // 50 secondsStructs§
- Duration
- Simple Duration type with second precision
Enums§
- Duration
Error - Possible errors that can occur during Duration operations