icu_calendar/cal/
mod.rs

1// This file is part of ICU4X. For terms of use, please see the file
2// called LICENSE at the top level of the ICU4X source tree
3// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
4
5//! Types for individual calendars
6pub(crate) mod buddhist;
7pub(crate) mod coptic;
8#[path = "east_asian_traditional.rs"]
9pub(crate) mod east_asian_traditional_internal;
10pub(crate) mod ethiopian;
11pub(crate) mod gregorian;
12pub(crate) mod hebrew;
13#[path = "hijri.rs"]
14pub(crate) mod hijri_internal;
15pub(crate) mod indian;
16pub(crate) mod iso;
17pub(crate) mod japanese;
18pub(crate) mod julian;
19pub(crate) mod persian;
20pub(crate) mod roc;
21
22pub(crate) mod abstract_gregorian;
23
24pub use buddhist::Buddhist;
25/// Customizations for the [`EastAsianTraditional`](east_asian_traditional::EastAsianTraditional) calendar.
26pub mod east_asian_traditional {
27    pub use super::east_asian_traditional_internal::{China, EastAsianTraditional, Korea};
28
29    // TODO(#6962) Stabilize
30    #[cfg(feature = "unstable")]
31    pub use super::east_asian_traditional_internal::{EastAsianTraditionalYearData, Rules};
32}
33pub use coptic::Coptic;
34pub use east_asian_traditional_internal::{ChineseTraditional, KoreanTraditional};
35pub use ethiopian::{Ethiopian, EthiopianEraStyle};
36pub use gregorian::Gregorian;
37pub use hebrew::Hebrew;
38pub use hijri_internal::Hijri;
39/// Customizations for the [`Hijri`] calendar.
40pub mod hijri {
41    pub use super::hijri_internal::{
42        AstronomicalSimulation, TabularAlgorithm, TabularAlgorithmEpoch, TabularAlgorithmLeapYears,
43        UmmAlQura,
44    };
45
46    // TODO(#6962) Stabilize
47    #[cfg(feature = "unstable")]
48    pub use super::hijri_internal::{HijriYearData, Rules};
49
50    #[doc(hidden)]
51    /// These are unstable traits but we expose them on stable to
52    /// icu_datetime.
53    pub mod unstable_internal {
54        pub use super::super::hijri_internal::Rules;
55    }
56}
57
58pub use indian::Indian;
59pub use iso::Iso;
60pub use japanese::{Japanese, JapaneseExtended};
61pub use julian::Julian;
62pub use persian::Persian;
63pub use roc::Roc;
64
65/// Deprecated
66#[deprecated]
67pub use hijri::{
68    TabularAlgorithmEpoch as HijriTabularEpoch, TabularAlgorithmLeapYears as HijriTabularLeapYears,
69};
70/// Deprecated
71#[deprecated]
72pub type HijriSimulated = Hijri<hijri::AstronomicalSimulation>;
73/// Deprecated
74#[deprecated]
75pub type HijriUmmAlQura = Hijri<hijri::UmmAlQura>;
76/// Deprecated
77#[deprecated]
78pub type HijriTabular = Hijri<hijri::TabularAlgorithm>;
79/// Use [`KoreanTraditional`]
80#[deprecated(since = "2.1.0", note = "use `KoreanTraditional`")]
81pub type Dangi = KoreanTraditional;
82/// Use [`ChineseTraditional`]
83#[deprecated(since = "2.1.0", note = "use `ChineseTraditional`")]
84pub type Chinese = ChineseTraditional;
85
86pub use crate::any_calendar::{AnyCalendar, AnyCalendarDifferenceError, AnyCalendarKind};
87
88/// Internal scaffolding types
89#[cfg_attr(not(feature = "unstable"), doc(hidden))]
90pub mod scaffold {
91    /// Trait marking other traits that are considered unstable and should not generally be
92    /// implemented outside of the calendar crate.
93    ///
94    /// <div class="stab unstable">
95    /// 🚧 This trait is considered unstable; it may change at any time, in breaking or non-breaking ways,
96    /// including in SemVer minor releases. Do not implement this trait in userland unless you are prepared for things to occasionally break.
97    /// </div>
98    pub trait UnstableSealed {}
99}