Parse ISO8601 duration format.
toml
iso8601-duration = "0.1.0"
```rust use iso8601_duration::Duration; use nom::{error::ErrorKind, Err};
asserteq!( Duration::parse("P23DT23H"), Ok(Duration::new(0., 0., 23., 23., 0., 0.)) ); asserteq!( Duration::parse("P3Y6M4DT12H30M5S"), Ok(Duration::new(3., 6., 4., 12., 30., 5.)) ); asserteq!( Duration::parse("P0.5Y"), Ok(Duration::new(0.5, 0., 0., 0., 0., 0.)) ); asserteq!( Duration::parse("P0.5Y0.5M"), Ok(Duration::new(0.5, 0.5, 0., 0., 0., 0.)) ); assert_eq!( Duration::parse("P12W"), Ok(Duration::new(0., 0., 84., 0., 0., 0.)) );
asserteq!( Duration::parse("PT"), Err(Err::Error(("", ErrorKind::Verify))) ); asserteq!( Duration::parse("P12WT12H30M5S"), Err(Err::Error(("T12H30M5S", ErrorKind::Eof))) ); asserteq!( Duration::parse("P0.5S0.5M"), Err(Err::Error(("0.5S0.5M", ErrorKind::Verify))) ); asserteq!( Duration::parse("P0.5A"), Err(Err::Error(("0.5A", ErrorKind::Verify))) ); ```
License: MIT