icu_datetime/scaffold/
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//! Scaffolding traits and types for the datetime crate.
6//!
7//! Items in this module are mostly for trait bounds. Most users should not need to reference
8//! these items in userland code.
9
10mod calendar;
11mod dynamic_impls;
12mod fieldset_traits;
13mod get_field;
14mod names_storage;
15
16pub use calendar::CalMarkers;
17pub use calendar::CldrCalendar;
18pub use calendar::ConvertCalendar;
19pub(crate) use calendar::FormattableAnyCalendar;
20pub(crate) use calendar::FormattableAnyCalendarKind;
21pub(crate) use calendar::FormattableAnyCalendarNamesLoader;
22pub use calendar::FullDataCalMarkers;
23pub use calendar::InFixedCalendar;
24pub use calendar::InSameCalendar;
25pub use calendar::IntoFormattableAnyCalendar;
26pub use calendar::NoDataCalMarkers;
27pub(crate) use calendar::UntaggedFormattableAnyCalendar;
28
29pub(crate) use fieldset_traits::datetime_marker_helper;
30pub use fieldset_traits::AllAnyCalendarExternalDataMarkers;
31pub use fieldset_traits::AllAnyCalendarFormattingDataMarkers;
32pub use fieldset_traits::AllAnyCalendarPatternDataMarkers;
33pub use fieldset_traits::AllFixedCalendarExternalDataMarkers;
34pub use fieldset_traits::AllFixedCalendarFormattingDataMarkers;
35pub use fieldset_traits::AllFixedCalendarPatternDataMarkers;
36pub use fieldset_traits::AllInputMarkers;
37pub use fieldset_traits::DateDataMarkers;
38pub use fieldset_traits::DateInputMarkers;
39pub use fieldset_traits::DateTimeMarkers;
40pub use fieldset_traits::TimeMarkers;
41pub use fieldset_traits::TypedDateDataMarkers;
42pub use fieldset_traits::ZoneMarkers;
43
44pub use get_field::GetField;
45
46pub use names_storage::DataPayloadWithVariables;
47pub use names_storage::DataPayloadWithVariablesBorrowed;
48pub use names_storage::DateTimeNamesFrom;
49pub use names_storage::DateTimeNamesMarker;
50pub use names_storage::MaybePayload;
51pub use names_storage::MaybePayloadError;
52pub use names_storage::NamesContainer;
53pub(crate) use names_storage::OptionalNames;
54
55/// Trait marking other traits that are considered unstable and should not generally be
56/// implemented outside of the datetime crate.
57///
58/// <div class="stab unstable">
59/// 🚧 This trait is considered unstable; it may change at any time, in breaking or non-breaking ways,
60/// including in SemVer minor releases. Do not implement this trait in userland unless you are prepared for things to occasionally break.
61/// </div>
62pub trait UnstableSealed {}