1 | //! Human-friendly time parser and formatter |
2 | //! |
3 | //! Features: |
4 | //! |
5 | //! * Parses durations in free form like `15days 2min 2s` |
6 | //! * Formats durations in similar form `2years 2min 12us` |
7 | //! * Parses and formats timestamp in `rfc3339` format: `2018-01-01T12:53:00Z` |
8 | //! * Parses timestamps in a weaker format: `2018-01-01 12:53:00` |
9 | //! |
10 | //! Timestamp parsing/formatting is super-fast because format is basically |
11 | //! fixed. |
12 | //! |
13 | //! See [humantime-serde] for serde integration (previous crate [serde-humantime] looks unmaintained). |
14 | //! |
15 | //! [serde-humantime]: https://docs.rs/serde-humantime/0.1.1/serde_humantime/ |
16 | //! [humantime-serde]: https://docs.rs/humantime-serde |
17 | |
18 | #![forbid (unsafe_code)] |
19 | #![warn (missing_debug_implementations)] |
20 | #![warn (missing_docs)] |
21 | |
22 | mod duration; |
23 | mod wrapper; |
24 | mod date; |
25 | |
26 | pub use self::duration::{parse_duration, Error as DurationError}; |
27 | pub use self::duration::{format_duration, FormattedDuration}; |
28 | pub use self::wrapper::{Duration, Timestamp}; |
29 | pub use self::date::{parse_rfc3339, parse_rfc3339_weak, Error as TimestampError}; |
30 | pub use self::date::{ |
31 | format_rfc3339, format_rfc3339_micros, format_rfc3339_millis, format_rfc3339_nanos, |
32 | format_rfc3339_seconds, |
33 | }; |
34 | pub use self::date::{Rfc3339Timestamp}; |
35 | |