| 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 | |