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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#![allow(missing_docs)]
mod skeletons;
mod symbols;
use crate::pattern;
use icu_provider::prelude::*;
use icu_provider::{yoke, zerofrom};
pub use skeletons::*;
pub use symbols::*;
#[icu_provider::data_struct(DatePatternsV1Marker = "datetime/lengths@1")]
#[derive(Debug, PartialEq, Clone, Default)]
#[cfg_attr(feature = "datagen", derive(serde::Serialize))]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
pub struct DatePatternsV1<'data> {
#[cfg_attr(feature = "serde", serde(borrow))]
pub date: patterns::LengthPatternsV1<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub time_h11_h12: patterns::LengthPatternsV1<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub time_h23_h24: patterns::LengthPatternsV1<'data>,
pub preferred_hour_cycle: pattern::CoarseHourCycle,
#[cfg_attr(feature = "serde", serde(borrow))]
pub length_combinations: patterns::GenericLengthPatternsV1<'data>,
}
pub mod patterns {
use super::*;
use crate::pattern::runtime::{GenericPattern, Pattern, PatternPlurals};
use icu_provider::{yoke, zerofrom};
#[derive(Debug, PartialEq, Clone, Default, yoke::Yokeable, zerofrom::ZeroFrom)]
#[cfg_attr(feature = "datagen", derive(serde::Serialize))]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
pub struct LengthPatternsV1<'data> {
#[cfg_attr(feature = "serde", serde(borrow))]
pub full: Pattern<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub long: Pattern<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub medium: Pattern<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub short: Pattern<'data>,
}
#[derive(Debug, PartialEq, Clone, Default, yoke::Yokeable, zerofrom::ZeroFrom)]
#[cfg_attr(feature = "datagen", derive(serde::Serialize))]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
pub struct LengthPatternPluralsV1<'data> {
#[cfg_attr(feature = "serde", serde(borrow))]
pub full: PatternPlurals<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub long: PatternPlurals<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub medium: PatternPlurals<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub short: PatternPlurals<'data>,
}
#[derive(Debug, PartialEq, Clone, Default, yoke::Yokeable, zerofrom::ZeroFrom)]
#[cfg_attr(feature = "datagen", derive(serde::Serialize))]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
pub struct GenericLengthPatternsV1<'data> {
#[cfg_attr(feature = "serde", serde(borrow))]
pub full: GenericPattern<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub long: GenericPattern<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub medium: GenericPattern<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub short: GenericPattern<'data>,
}
#[icu_provider::data_struct]
#[derive(Debug, PartialEq, Clone, Default)]
#[cfg_attr(feature = "datagen", derive(serde::Serialize))]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
pub struct PatternPluralsV1<'data>(
#[cfg_attr(feature = "serde", serde(borrow))] pub PatternPlurals<'data>,
);
impl<'data> From<PatternPlurals<'data>> for PatternPluralsV1<'data> {
fn from(pattern: PatternPlurals<'data>) -> Self {
Self(pattern)
}
}
pub(crate) struct PatternPluralsFromPatternsV1Marker;
impl DataMarker for PatternPluralsFromPatternsV1Marker {
type Yokeable = PatternPluralsV1<'static>;
}
}