parse_zoneinfo/
lib.rs

1//! Rust library for reading the text files comprising the [zoneinfo
2//! database][w], which records time zone changes and offsets across the world
3//! from multiple sources.
4//!
5//! The zoneinfo database is distributed in one of two formats: a raw text
6//! format with one file per continent, and a compiled binary format with one
7//! file per time zone. This crate deals with the former; for the latter, see
8//! the [`zoneinfo_compiled` crate][zc] instead.
9//!
10//! The database itself is maintained by IANA. For more information, see
11//! [IANA’s page on the time zone database][iana]. You can also find the text
12//! files themselves in [the tz repository][tz].
13//!
14//! [iana]: https://www.iana.org/time-zones
15//! [tz]: https://github.com/eggert/tz
16//! [w]: https://en.wikipedia.org/wiki/Tz_database
17//! [zc]: https://github.com/rust-datetime/zoneinfo-compiled
18//!
19//! ## Outline
20//!
21//! Reading a zoneinfo text file is split into three stages:
22//!
23//! - **Parsing** individual lines of text into `Lines` is done by the `line`
24//!   module;
25//! - **Interpreting** these lines into a complete `Table` is done by the
26//!   `table` module;
27//! - **Calculating transitions** from this table is done by the `transitions`
28//!   module.
29
30#![warn(missing_copy_implementations)]
31//#![warn(missing_docs)]
32#![warn(nonstandard_style)]
33#![warn(trivial_numeric_casts)]
34#![warn(unreachable_pub)]
35#![warn(unused)]
36
37pub mod line;
38pub mod structure;
39pub mod table;
40pub mod transitions;
41
42pub const FILES: &[&str] = &[
43    "africa",
44    "antarctica",
45    "asia",
46    "australasia",
47    "backward",
48    "etcetera",
49    "europe",
50    "northamerica",
51    "southamerica",
52];