readable_inlined_date/
lib.rs

1//! Inlined data for [`readable`](https://docs.rs/readable).
2//!
3//! Do not use this crate directly.
4
5mod year;
6mod month;
7mod day;
8
9//---------------------------------------------------------------------------------------------------- Inlined `1900-2100`
10/// # INVARIANT
11/// Input must be [u8; 10].
12///
13pub const fn inlined(bytes: &[u8]) -> Option<(u16, u8, u8, [u8; 10])> {
14	let y = match crate::year::year(&bytes) {
15		Some(y) => y,
16		_ => return None,
17	};
18
19	let m = match crate::month::month(&bytes) {
20		Some(m) => m,
21		_ => return None,
22	};
23
24	let d = match crate::day::day(&bytes) {
25		Some(m) => m,
26		_ => return None,
27	};
28
29	// `-` is `45` in UTF-8 encoding.
30	Some((y.0, m.0, d.0,
31		[
32			y.1[0], y.1[1], y.1[2], y.1[3],
33			45,
34			m.1[0], m.1[1],
35			45,
36			d.1[0], d.1[1],
37		]
38	))
39}