jiff/tz/db/zoneinfo/
disabled.rs

1use crate::tz::{TimeZone, TimeZoneNameIter};
2
3#[derive(Clone)]
4pub(crate) struct Database;
5
6impl Database {
7    pub(crate) fn from_env() -> Database {
8        Database
9    }
10
11    #[cfg(feature = "std")]
12    pub(crate) fn from_dir(
13        dir: &std::path::Path,
14    ) -> Result<Database, crate::Error> {
15        Err(crate::error::err!(
16            "system tzdb unavailable: \
17             crate feature `tzdb-zoneinfo` is disabled, \
18             opening tzdb at {dir} has therefore failed",
19            dir = dir.display(),
20        ))
21    }
22
23    pub(crate) fn none() -> Database {
24        Database
25    }
26
27    pub(crate) fn reset(&self) {}
28
29    pub(crate) fn get(&self, _query: &str) -> Option<TimeZone> {
30        None
31    }
32
33    pub(crate) fn available<'d>(&'d self) -> TimeZoneNameIter<'d> {
34        TimeZoneNameIter::empty()
35    }
36
37    pub(crate) fn is_definitively_empty(&self) -> bool {
38        true
39    }
40}
41
42impl core::fmt::Debug for Database {
43    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
44        write!(f, "ZoneInfo(unavailable)")
45    }
46}