1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// This file is part of ICU4X. For terms of use, please see the file
// called LICENSE at the top level of the ICU4X source tree
// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).

//! Scaffolding traits and types for the datetime crate.
//!
//! Items in this module are mostly for trait bounds. Most users should not need to reference
//! these items in userland code.

mod calendar;
mod dynamic_impls;
mod fieldset_traits;
mod get_field;

pub(crate) use calendar::AnyCalendarProvider;
pub use calendar::CalMarkers;
pub use calendar::CldrCalendar;
pub use calendar::ConvertCalendar;
pub use calendar::FullDataCalMarkers;
pub use calendar::IsAnyCalendarKind;
pub use calendar::IsInCalendar;
pub use calendar::NoDataCalMarkers;

pub(crate) use fieldset_traits::datetime_marker_helper;
pub use fieldset_traits::AllAnyCalendarExternalDataMarkers;
pub use fieldset_traits::AllAnyCalendarFormattingDataMarkers;
pub use fieldset_traits::AllFixedCalendarExternalDataMarkers;
pub use fieldset_traits::AllFixedCalendarFormattingDataMarkers;
pub use fieldset_traits::AllInputMarkers;
pub use fieldset_traits::DateDataMarkers;
pub use fieldset_traits::DateInputMarkers;
pub use fieldset_traits::DateTimeMarkers;
pub use fieldset_traits::NeoNeverMarker;
pub use fieldset_traits::TimeMarkers;
pub use fieldset_traits::TypedDateDataMarkers;
pub use fieldset_traits::ZoneMarkers;

pub(crate) use get_field::impl_get_field;
pub use get_field::GetField;

/// Trait marking other traits that are considered unstable and should not generally be
/// implemented outside of the datetime crate.
///
/// <div class="stab unstable">
/// 🚧 This trait is considered unstable; it may change at any time, in breaking or non-breaking ways,
/// including in SemVer minor releases. Do not implement this trait in userland.
/// </div>
pub trait UnstableSealed {}