1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! Ergonomic, human friendly way to handle date-based time.
//!
//! ## Motivation
//!
//! `chrono` is a great crate, and this library uses it, but it doesn't easily cover the fact that
//! lots of time humans just want to talk in dates. They might want to do something tomorrow, they
//! want a date to do that, and developers want an easy way to make that happen without a lot of
//! fuss.
//!
//! Also with error handling, yes it might be the heat death date of the universe, but we don't want
//! or need error handling to fail when this is the case. If someone is being weird and giving the
//! library extreme data, we fall back to sensible dates, to make the whole thing ergonomic and
//! delightful to use.
//!
//! ## Modules
//!
//! `date`: simple way of managing simple dates.
//! `time`: simple way to manage what time it is, as an `Instant`.
//! `recurrence`: simple, text-driven recurrence rules, that, yes, don't cover every recurrence but
//! also make it easy for a human to do most things.
//! `offset`: language for relative dates, like yesterday, tomorrow, or a month from now.
//! `query`: parser for human and agent friendly expression of relative dates, into this library's types.
//! `clock`: easily test for time changes with a testable clock.
pub