dos_date_time/dos_date_time/consts.rs
1// SPDX-FileCopyrightText: 2025 Shun Sakai
2//
3// SPDX-License-Identifier: Apache-2.0 OR MIT
4
5//! Constants for [`DateTime`].
6
7use super::DateTime;
8use crate::{Date, Time};
9
10impl DateTime {
11 /// The smallest value that can be represented by MS-DOS date and time.
12 ///
13 /// This is "1980-01-01 00:00:00".
14 ///
15 /// # Examples
16 ///
17 /// ```
18 /// # use dos_date_time::{
19 /// # DateTime,
20 /// # time::{Time, macros::date},
21 /// # };
22 /// #
23 /// assert_eq!(
24 /// DateTime::MIN,
25 /// DateTime::from_date_time(date!(1980-01-01), Time::MIDNIGHT).unwrap()
26 /// );
27 /// ```
28 pub const MIN: Self = Self::new(Date::MIN, Time::MIN);
29
30 /// The largest value that can be represented by MS-DOS date and time.
31 ///
32 /// This is "2107-12-31 23:59:58".
33 ///
34 /// # Examples
35 ///
36 /// ```
37 /// # use dos_date_time::{
38 /// # DateTime,
39 /// # time::macros::{date, time},
40 /// # };
41 /// #
42 /// assert_eq!(
43 /// DateTime::MAX,
44 /// DateTime::from_date_time(date!(2107-12-31), time!(23:59:58)).unwrap()
45 /// );
46 /// ```
47 pub const MAX: Self = Self::new(Date::MAX, Time::MAX);
48}
49
50#[cfg(test)]
51mod tests {
52 use time::macros::{date, time};
53
54 use super::*;
55
56 #[test]
57 fn min() {
58 assert_eq!(
59 DateTime::MIN,
60 DateTime::from_date_time(date!(1980-01-01), time::Time::MIDNIGHT).unwrap()
61 );
62 }
63
64 #[test]
65 fn max() {
66 assert_eq!(
67 DateTime::MAX,
68 DateTime::from_date_time(date!(2107-12-31), time!(23:59:58)).unwrap()
69 );
70 }
71}