Coverage Report

Created: 2025-10-13 06:52

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/icu_provider-1.5.0/src/response.rs
Line
Count
Source
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
use crate::buf::BufferMarker;
6
use crate::error::{DataError, DataErrorKind};
7
use crate::marker::DataMarker;
8
use crate::request::DataLocale;
9
use alloc::boxed::Box;
10
use core::convert::TryFrom;
11
use core::fmt::Debug;
12
use core::marker::PhantomData;
13
use core::ops::Deref;
14
use yoke::cartable_ptr::CartableOptionPointer;
15
use yoke::trait_hack::YokeTraitHack;
16
use yoke::*;
17
18
#[cfg(not(feature = "sync"))]
19
use alloc::rc::Rc as SelectedRc;
20
#[cfg(feature = "sync")]
21
use alloc::sync::Arc as SelectedRc;
22
23
/// A response object containing metadata about the returned data.
24
#[derive(Debug, Clone, PartialEq, Default)]
25
#[non_exhaustive]
26
pub struct DataResponseMetadata {
27
    /// The resolved locale of the returned data, if locale fallbacking was performed.
28
    pub locale: Option<DataLocale>,
29
    /// The format of the buffer for buffer-backed data, if known (for example, JSON).
30
    pub buffer_format: Option<crate::buf::BufferFormat>,
31
}
32
33
/// A container for data payloads returned from a data provider.
34
///
35
/// [`DataPayload`] is built on top of the [`yoke`] framework, which allows for cheap, zero-copy
36
/// operations on data via the use of self-references.
37
///
38
/// The type of the data stored in [`DataPayload`] is determined by the [`DataMarker`] type parameter.
39
///
40
/// ## Accessing the data
41
///
42
/// To get a reference to the data inside [`DataPayload`], use [`DataPayload::get()`]. If you need
43
/// to store the data for later use, you need to store the [`DataPayload`] itself, since `get` only
44
/// returns a reference with an ephemeral lifetime.
45
///
46
/// ## Mutating the data
47
///
48
/// To modify the data stored in a [`DataPayload`], use [`DataPayload::with_mut()`].
49
///
50
/// ## Transforming the data to a different type
51
///
52
/// To transform a [`DataPayload`] to a different type backed by the same data store (cart), use
53
/// [`DataPayload::map_project()`] or one of its sister methods.
54
///
55
/// # Cargo feature: `sync`
56
///
57
/// By default, the payload uses non-concurrent reference counting internally, and hence is neither
58
/// [`Sync`] nor [`Send`]; if these traits are required, the `sync` Cargo feature can be enabled.
59
///
60
/// # Examples
61
///
62
/// Basic usage, using the `HelloWorldV1Marker` marker:
63
///
64
/// ```
65
/// use icu_provider::hello_world::*;
66
/// use icu_provider::prelude::*;
67
/// use std::borrow::Cow;
68
///
69
/// let payload = DataPayload::<HelloWorldV1Marker>::from_owned(HelloWorldV1 {
70
///     message: Cow::Borrowed("Demo"),
71
/// });
72
///
73
/// assert_eq!("Demo", payload.get().message);
74
/// ```
75
pub struct DataPayload<M: DataMarker>(pub(crate) DataPayloadInner<M>);
76
77
/// A container for data payloads with storage for something else.
78
///
79
/// The type parameter `O` is stored as part of the interior enum, leading to
80
/// better stack size optimization. `O` can be as large as the [`DataPayload`]
81
/// minus two words without impacting stack size.
82
///
83
/// # Examples
84
///
85
/// Create and use DataPayloadOr:
86
///
87
/// ```
88
/// use icu_provider::hello_world::*;
89
/// use icu_provider::prelude::*;
90
/// use icu_provider::DataPayloadOr;
91
///
92
/// let payload: DataPayload<HelloWorldV1Marker> = HelloWorldProvider
93
///     .load(DataRequest {
94
///         locale: &"de".parse().unwrap(),
95
///         metadata: Default::default(),
96
///     })
97
///     .expect("Loading should succeed")
98
///     .take_payload()
99
///     .expect("Data should be present");
100
///
101
/// let payload_some =
102
///     DataPayloadOr::<HelloWorldV1Marker, ()>::from_payload(payload);
103
/// let payload_none = DataPayloadOr::<HelloWorldV1Marker, ()>::from_other(());
104
///
105
/// assert_eq!(
106
///     payload_some.get(),
107
///     Ok(&HelloWorldV1 {
108
///         message: "Hallo Welt".into()
109
///     })
110
/// );
111
/// assert_eq!(payload_none.get(), Err(&()));
112
/// ```
113
///
114
/// Stack size comparison:
115
///
116
/// ```
117
/// use core::mem::size_of;
118
/// use icu_provider::prelude::*;
119
/// use icu_provider::DataPayloadOr;
120
///
121
/// const W: usize = size_of::<usize>();
122
///
123
/// // SampleStruct is 3 words:
124
/// # #[icu_provider::data_struct(SampleStructMarker)]
125
/// # pub struct SampleStruct<'data>(usize, usize, &'data ());
126
/// assert_eq!(W * 3, size_of::<SampleStruct>());
127
///
128
/// // DataPayload adds a word for a total of 4 words:
129
/// assert_eq!(W * 4, size_of::<DataPayload<SampleStructMarker>>());
130
///
131
/// // Option<DataPayload> balloons to 5 words:
132
/// assert_eq!(W * 5, size_of::<Option<DataPayload<SampleStructMarker>>>());
133
///
134
/// // But, using DataPayloadOr is the same size as DataPayload:
135
/// assert_eq!(W * 4, size_of::<DataPayloadOr<SampleStructMarker, ()>>());
136
///
137
/// // The largest optimized Other type is two words smaller than the DataPayload:
138
/// assert_eq!(W * 4, size_of::<DataPayloadOr<SampleStructMarker, [usize; 1]>>());
139
/// assert_eq!(W * 4, size_of::<DataPayloadOr<SampleStructMarker, [usize; 2]>>());
140
/// assert_eq!(W * 5, size_of::<DataPayloadOr<SampleStructMarker, [usize; 3]>>());
141
/// ```
142
#[doc(hidden)] // TODO(#4467): establish this as an internal API
143
pub struct DataPayloadOr<M: DataMarker, O>(pub(crate) DataPayloadOrInner<M, O>);
144
145
pub(crate) enum DataPayloadInner<M: DataMarker> {
146
    Yoke(Yoke<M::Yokeable, CartableOptionPointer<CartInner>>),
147
    StaticRef(&'static M::Yokeable),
148
}
149
150
pub(crate) enum DataPayloadOrInner<M: DataMarker, O> {
151
    Yoke(Yoke<M::Yokeable, CartableOptionPointer<CartInner>>),
152
    Inner(DataPayloadOrInnerInner<M, O>),
153
}
154
155
pub(crate) enum DataPayloadOrInnerInner<M: DataMarker, O> {
156
    StaticRef(&'static M::Yokeable),
157
    Other(O),
158
}
159
160
/// The type of the "cart" that is used by [`DataPayload`].
161
///
162
/// This type is public but the inner cart type is private. To create a
163
/// [`Yoke`] with this cart, use [`Cart::try_make_yoke`]. Then, convert
164
/// it to a [`DataPayload`] with [`DataPayload::from_yoked_buffer`].
165
#[derive(Clone, Debug)]
166
#[allow(clippy::redundant_allocation)] // false positive, it's cheaper to wrap an existing Box in an Rc than to reallocate a huge Rc
167
pub struct Cart(CartInner);
168
169
/// The actual cart type (private typedef).
170
pub(crate) type CartInner = SelectedRc<Box<[u8]>>;
171
172
impl Deref for Cart {
173
    type Target = Box<[u8]>;
174
0
    fn deref(&self) -> &Self::Target {
175
0
        &self.0
176
0
    }
177
}
178
// Safe because both Rc and Arc are StableDeref, and our impl delegates.
179
unsafe impl stable_deref_trait::StableDeref for Cart {}
180
// Safe because both Rc and Arc are CloneableCart, and our impl delegates.
181
unsafe impl yoke::CloneableCart for Cart {}
182
183
impl Cart {
184
    /// Creates a `Yoke<Y, Option<Cart>>` from owned bytes by applying `f`.
185
0
    pub fn try_make_yoke<Y, F, E>(cart: Box<[u8]>, f: F) -> Result<Yoke<Y, Option<Self>>, E>
186
0
    where
187
0
        for<'a> Y: Yokeable<'a>,
188
0
        F: FnOnce(&[u8]) -> Result<<Y as Yokeable>::Output, E>,
189
    {
190
0
        Yoke::try_attach_to_cart(SelectedRc::new(cart), |b| f(b))
191
            // Safe because the cart is only wrapped
192
0
            .map(|yoke| unsafe { yoke.replace_cart(Cart) })
193
0
            .map(Yoke::wrap_cart_in_option)
194
0
    }
195
196
    /// Helper function to convert `Yoke<Y, Option<Cart>>` to `Yoke<Y, Option<CartInner>>`.
197
    #[inline]
198
0
    pub(crate) fn unwrap_cart<Y>(yoke: Yoke<Y, Option<Cart>>) -> Yoke<Y, Option<CartInner>>
199
0
    where
200
0
        for<'a> Y: Yokeable<'a>,
201
    {
202
        // Safety: `Cart` has one field and we are removing it from the newtype,
203
        // and we are preserving it in the new cart, unwrapping it from the newtype.
204
0
        unsafe { yoke.replace_cart(|option_cart| option_cart.map(|cart| cart.0)) }
205
0
    }
206
}
207
208
impl<M> Debug for DataPayload<M>
209
where
210
    M: DataMarker,
211
    for<'a> &'a <M::Yokeable as Yokeable<'a>>::Output: Debug,
212
{
213
0
    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
214
0
        self.get().fmt(f)
215
0
    }
216
}
217
218
impl<M, O> Debug for DataPayloadOr<M, O>
219
where
220
    M: DataMarker,
221
    for<'a> &'a <M::Yokeable as Yokeable<'a>>::Output: Debug,
222
    O: Debug,
223
{
224
0
    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
225
0
        self.get()
226
0
            .map(|v| Debug::fmt(&v, f))
227
0
            .unwrap_or_else(|v| Debug::fmt(v, f))
228
0
    }
229
}
230
231
/// Cloning a DataPayload is generally a cheap operation.
232
/// See notes in the `Clone` impl for [`Yoke`].
233
///
234
/// # Examples
235
///
236
/// ```no_run
237
/// use icu_provider::hello_world::*;
238
/// use icu_provider::prelude::*;
239
///
240
/// let resp1: DataPayload<HelloWorldV1Marker> = todo!();
241
/// let resp2 = resp1.clone();
242
/// ```
243
impl<M> Clone for DataPayload<M>
244
where
245
    M: DataMarker,
246
    for<'a> YokeTraitHack<<M::Yokeable as Yokeable<'a>>::Output>: Clone,
247
{
248
0
    fn clone(&self) -> Self {
249
0
        Self(match &self.0 {
250
0
            DataPayloadInner::Yoke(yoke) => DataPayloadInner::Yoke(yoke.clone()),
251
0
            DataPayloadInner::StaticRef(r) => DataPayloadInner::StaticRef(*r),
252
        })
253
0
    }
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GeneralCategoryV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ScriptWithExtensionsPropertyV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::WeekDataV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::WeekDataV2Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::JapaneseExtendedErasV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_timezone::provider::MetazonePeriodV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::CanonicalCompositionsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::CanonicalDecompositionDataV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::CanonicalDecompositionTablesV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::CompatibilityDecompositionTablesV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::NonRecursiveDecompositionSupplementV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::CompatibilityDecompositionSupplementV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_list::provider::OrListV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_list::provider::AndListV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_list::provider::UnitListV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_plurals::provider::OrdinalV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_plurals::provider::CardinalV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::LineBreakDataV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::WordBreakDataV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::SentenceBreakDataV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::GraphemeClusterBreakDataV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::DictionaryForWordOnlyAutoV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::DictionaryForWordLineExtendedV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationDataV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationJamoV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationMetadataV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationDiacriticsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationReorderingV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationSpecialPrimariesV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_casemap::provider::CaseMapV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_decimal::provider::DecimalSymbolsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_timezone::provider::names::Bcp47ToIanaMapV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_timezone::provider::names::IanaToBcp47MapV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_timezone::provider::names::IanaToBcp47MapV2Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::ExemplarCitiesV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::TimeZoneFormatsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::MetazoneGenericNamesLongV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::MetazoneGenericNamesShortV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::MetazoneSpecificNamesLongV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::MetazoneSpecificNamesShortV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::TimeLengthsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::RocDateLengthsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::DangiDateLengthsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::CopticDateLengthsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::HebrewDateLengthsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::IndianDateLengthsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::ChineseDateLengthsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::IslamicDateLengthsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::PersianDateLengthsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::BuddhistDateLengthsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::JapaneseDateLengthsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::EthiopianDateLengthsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::GregorianDateLengthsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::JapaneseExtendedDateLengthsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::lstm::LstmForWordLineAutoV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_casemap::provider::unfold::CaseMapUnfoldV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::canonicalizer::AliasesV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::canonicalizer::AliasesV2Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::directionality::ScriptDirectionV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::expander::LikelySubtagsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::expander::LikelySubtagsExtendedV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::expander::LikelySubtagsForLanguageV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::expander::LikelySubtagsForScriptRegionV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::fallback::LocaleFallbackParentsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::fallback::CollationFallbackSupplementV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::fallback::LocaleFallbackLikelySubtagsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::TimeSymbolsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::RocDateSymbolsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::DangiDateSymbolsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::CopticDateSymbolsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::HebrewDateSymbolsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::IndianDateSymbolsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::ChineseDateSymbolsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::IslamicDateSymbolsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::PersianDateSymbolsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::BuddhistDateSymbolsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::JapaneseDateSymbolsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::EthiopianDateSymbolsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::GregorianDateSymbolsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::JapaneseExtendedDateSymbolsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::patterns::PatternPluralsFromPatternsV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::JapaneseErasV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::chinese_based::DangiCacheV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::chinese_based::ChineseCacheV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::islamic::IslamicUmmAlQuraCacheV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::islamic::IslamicObservationalCacheV1Marker> as core::clone::Clone>::clone
Unexecuted instantiation: <icu_provider::response::DataPayload<_> as core::clone::Clone>::clone
254
}
255
256
impl<M, O> Clone for DataPayloadOr<M, O>
257
where
258
    M: DataMarker,
259
    for<'a> YokeTraitHack<<M::Yokeable as Yokeable<'a>>::Output>: Clone,
260
    O: Clone,
261
{
262
0
    fn clone(&self) -> Self {
263
0
        Self(match &self.0 {
264
0
            DataPayloadOrInner::Yoke(yoke) => DataPayloadOrInner::Yoke(yoke.clone()),
265
0
            DataPayloadOrInner::Inner(DataPayloadOrInnerInner::StaticRef(r)) => {
266
0
                DataPayloadOrInner::Inner(DataPayloadOrInnerInner::StaticRef(*r))
267
            }
268
0
            DataPayloadOrInner::Inner(DataPayloadOrInnerInner::Other(o)) => {
269
0
                DataPayloadOrInner::Inner(DataPayloadOrInnerInner::Other(o.clone()))
270
            }
271
        })
272
0
    }
273
}
274
275
impl<M> PartialEq for DataPayload<M>
276
where
277
    M: DataMarker,
278
    for<'a> YokeTraitHack<<M::Yokeable as Yokeable<'a>>::Output>: PartialEq,
279
{
280
0
    fn eq(&self, other: &Self) -> bool {
281
0
        YokeTraitHack(self.get()).into_ref() == YokeTraitHack(other.get()).into_ref()
282
0
    }
283
}
284
285
impl<M, O> PartialEq for DataPayloadOr<M, O>
286
where
287
    M: DataMarker,
288
    for<'a> YokeTraitHack<<M::Yokeable as Yokeable<'a>>::Output>: PartialEq,
289
    O: Eq,
290
{
291
0
    fn eq(&self, other: &Self) -> bool {
292
0
        match (self.get(), other.get()) {
293
0
            (Ok(x), Ok(y)) => YokeTraitHack(x).into_ref() == YokeTraitHack(y).into_ref(),
294
0
            (Err(x), Err(y)) => x == y,
295
0
            _ => false,
296
        }
297
0
    }
298
}
299
300
impl<M> Eq for DataPayload<M>
301
where
302
    M: DataMarker,
303
    for<'a> YokeTraitHack<<M::Yokeable as Yokeable<'a>>::Output>: Eq,
304
{
305
}
306
307
impl<M, O> Eq for DataPayloadOr<M, O>
308
where
309
    M: DataMarker,
310
    for<'a> YokeTraitHack<<M::Yokeable as Yokeable<'a>>::Output>: Eq,
311
    O: Eq,
312
{
313
}
314
315
#[test]
316
fn test_clone_eq() {
317
    use crate::hello_world::*;
318
    let p1 = DataPayload::<HelloWorldV1Marker>::from_static_str("Demo");
319
    #[allow(clippy::redundant_clone)]
320
    let p2 = p1.clone();
321
    assert_eq!(p1, p2);
322
323
    let p1 = DataPayloadOr::<HelloWorldV1Marker, usize>::from_payload(p1);
324
    #[allow(clippy::redundant_clone)]
325
    let p2 = p1.clone();
326
    assert_eq!(p1, p2);
327
328
    let p3 = DataPayloadOr::<HelloWorldV1Marker, usize>::from_other(555);
329
    #[allow(clippy::redundant_clone)]
330
    let p4 = p3.clone();
331
    assert_eq!(p3, p4);
332
333
    let p5 = DataPayloadOr::<HelloWorldV1Marker, usize>::from_other(666);
334
    assert_ne!(p3, p5);
335
    assert_ne!(p4, p5);
336
337
    assert_ne!(p1, p3);
338
    assert_ne!(p1, p4);
339
    assert_ne!(p1, p5);
340
    assert_ne!(p2, p3);
341
    assert_ne!(p2, p4);
342
    assert_ne!(p2, p5);
343
}
344
345
impl<M> DataPayload<M>
346
where
347
    M: DataMarker,
348
{
349
    /// Convert a fully owned (`'static`) data struct into a DataPayload.
350
    ///
351
    /// This constructor creates `'static` payloads.
352
    ///
353
    /// # Examples
354
    ///
355
    /// ```
356
    /// use icu_provider::hello_world::*;
357
    /// use icu_provider::prelude::*;
358
    /// use std::borrow::Cow;
359
    ///
360
    /// let local_struct = HelloWorldV1 {
361
    ///     message: Cow::Owned("example".to_owned()),
362
    /// };
363
    ///
364
    /// let payload =
365
    ///     DataPayload::<HelloWorldV1Marker>::from_owned(local_struct.clone());
366
    ///
367
    /// assert_eq!(payload.get(), &local_struct);
368
    /// ```
369
    #[inline]
370
0
    pub fn from_owned(data: M::Yokeable) -> Self {
371
0
        Self(DataPayloadInner::Yoke(
372
0
            Yoke::new_owned(data).convert_cart_into_option_pointer(),
373
0
        ))
374
0
    }
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_decimal::provider::DecimalSymbolsV1Marker>>::from_owned
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::patterns::PatternPluralsFromPatternsV1Marker>>::from_owned
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::sets::ErasedSetlikeMarker>>::from_owned
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::sets::ErasedUnicodeSetlikeMarker>>::from_owned
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::fallback::LocaleFallbackParentsV1Marker>>::from_owned
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::fallback::LocaleFallbackLikelySubtagsV1Marker>>::from_owned
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_provider::hello_world::HelloWorldV1Marker>>::from_owned
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_provider::any::AnyMarker>>::from_owned
375
376
    #[doc(hidden)]
377
    #[inline]
378
0
    pub const fn from_static_ref(data: &'static M::Yokeable) -> Self {
379
0
        Self(DataPayloadInner::StaticRef(data))
380
0
    }
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::JoiningType>>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::SentenceBreak>>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::EastAsianWidth>>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::HangulSyllableType>>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::GraphemeClusterBreak>>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::IndicSyllabicCategory>>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::Script>>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::BidiClass>>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::LineBreak>>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::WordBreak>>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::props::ErasedNameToEnumMapV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::canonicalizer::AliasesV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::expander::LikelySubtagsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::GeneralCategory>>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_casemap::provider::CaseMapV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_casemap::provider::unfold::CaseMapUnfoldV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::LineBreakDataV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::WordBreakDataV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::SentenceBreakDataV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::GraphemeClusterBreakDataV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::DictionaryForWordOnlyAutoV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::DictionaryForWordLineExtendedV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::lstm::LstmForWordLineAutoV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_list::provider::OrListV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_list::provider::AndListV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_list::provider::UnitListV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::ExemplarCitiesV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::TimeZoneFormatsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::MetazoneGenericNamesLongV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::MetazoneGenericNamesShortV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::MetazoneSpecificNamesLongV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::MetazoneSpecificNamesShortV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::TimeLengthsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::RocDateLengthsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::DangiDateLengthsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::CopticDateLengthsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::HebrewDateLengthsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::IndianDateLengthsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::ChineseDateLengthsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::IslamicDateLengthsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::PersianDateLengthsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::BuddhistDateLengthsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::JapaneseDateLengthsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::EthiopianDateLengthsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::GregorianDateLengthsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::JapaneseExtendedDateLengthsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::TimeSymbolsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::RocDateSymbolsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::DangiDateSymbolsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::CopticDateSymbolsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::HebrewDateSymbolsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::IndianDateSymbolsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::ChineseDateSymbolsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::IslamicDateSymbolsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::PersianDateSymbolsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::BuddhistDateSymbolsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::JapaneseDateSymbolsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::EthiopianDateSymbolsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::GregorianDateSymbolsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::JapaneseExtendedDateSymbolsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_timezone::provider::MetazonePeriodV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_timezone::provider::names::Bcp47ToIanaMapV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_timezone::provider::names::IanaToBcp47MapV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_timezone::provider::names::IanaToBcp47MapV2Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_plurals::provider::OrdinalV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_plurals::provider::CardinalV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_decimal::provider::DecimalSymbolsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationDataV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationJamoV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationMetadataV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationDiacriticsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationReorderingV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationSpecialPrimariesV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::CanonicalCompositionsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::CanonicalDecompositionDataV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::CanonicalDecompositionTablesV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::Uts46DecompositionSupplementV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::CompatibilityDecompositionTablesV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::NonRecursiveDecompositionSupplementV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::CompatibilityDecompositionSupplementV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::sets::ErasedSetlikeMarker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::sets::ErasedUnicodeSetlikeMarker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::DashV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::MathV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::AlnumV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::BlankV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::CasedV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::EmojiV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GraphV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::PrintV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::HyphenV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ScriptV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::XdigitV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::IdStartV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::RadicalV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ExtenderV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::HexDigitV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::NfcInertV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::NfdInertV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::XidStartV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::BidiClassV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::DiacriticV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::LineBreakV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::LowercaseV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::NfkcInertV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::NfkdInertV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::UppercaseV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::WordBreakV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::AlphabeticV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::BasicEmojiV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::DeprecatedV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::IdContinueV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::SoftDottedV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::WhiteSpaceV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::BidiControlV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::IdeographicV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::JoinControlV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::JoiningTypeV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::XidContinueV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::BidiMirroredV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GraphemeBaseV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GraphemeLinkV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::AsciiHexDigitV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::CaseIgnorableV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::CaseSensitiveV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::EmojiModifierV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::PatternSyntaxV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::QuotationMarkV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::SentenceBreakV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::EastAsianWidthV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::EmojiComponentV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GraphemeExtendV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::SegmentStarterV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GeneralCategoryV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::SentenceTerminalV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::UnifiedIdeographV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::EmojiModifierBaseV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::EmojiPresentationV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::IdsBinaryOperatorV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::PatternWhiteSpaceV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::RegionalIndicatorV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ScriptNameToValueV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::VariationSelectorV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::HangulSyllableTypeV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::IdsTrinaryOperatorV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::TerminalPunctuationV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::BidiClassNameToValueV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ExtendedPictographicV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GraphemeClusterBreakV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::LineBreakNameToValueV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::WordBreakNameToValueV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ChangesWhenCasefoldedV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ChangesWhenCasemappedV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ChangesWhenLowercasedV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ChangesWhenTitlecasedV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ChangesWhenUppercasedV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::IndicSyllabicCategoryV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::LogicalOrderExceptionV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::NoncharacterCodePointV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ScriptValueToLongNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ExemplarCharactersMainV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::JoiningTypeNameToValueV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ScriptValueToShortNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::CanonicalCombiningClassV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ExemplarCharactersIndexV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::BidiClassValueToLongNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::FullCompositionExclusionV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::LineBreakValueToLongNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::SentenceBreakNameToValueV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::WordBreakValueToLongNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::BidiClassValueToShortNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ChangesWhenNfkcCasefoldedV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::DefaultIgnorableCodePointV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::EastAsianWidthNameToValueV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ExemplarCharactersNumbersV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::LineBreakValueToShortNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::WordBreakValueToShortNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GeneralCategoryNameToValueV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::JoiningTypeValueToLongNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::PrependedConcatenationMarkV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ExemplarCharactersAuxiliaryV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::JoiningTypeValueToShortNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ScriptWithExtensionsPropertyV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::SentenceBreakValueToLongNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::EastAsianWidthValueToLongNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ExemplarCharactersPunctuationV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::HangulSyllableTypeNameToValueV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::SentenceBreakValueToShortNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::EastAsianWidthValueToShortNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GeneralCategoryValueToLongNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GeneralCategoryValueToShortNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GraphemeClusterBreakNameToValueV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::IndicSyllabicCategoryNameToValueV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::HangulSyllableTypeValueToLongNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::CanonicalCombiningClassNameToValueV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::HangulSyllableTypeValueToShortNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GraphemeClusterBreakValueToLongNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GraphemeClusterBreakValueToShortNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::IndicSyllabicCategoryValueToLongNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::IndicSyllabicCategoryValueToShortNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::CanonicalCombiningClassValueToLongNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::CanonicalCombiningClassValueToShortNameV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::names::GeneralCategoryMaskNameToValueV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::bidi_data::BidiAuxiliaryPropertiesV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::WeekDataV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::WeekDataV2Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::JapaneseErasV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::JapaneseExtendedErasV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::chinese_based::DangiCacheV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::chinese_based::ChineseCacheV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::islamic::IslamicUmmAlQuraCacheV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::islamic::IslamicObservationalCacheV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::canonicalizer::AliasesV2Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::directionality::ScriptDirectionV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::expander::LikelySubtagsExtendedV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::expander::LikelySubtagsForLanguageV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::expander::LikelySubtagsForScriptRegionV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::fallback::LocaleFallbackParentsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::fallback::CollationFallbackSupplementV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::fallback::LocaleFallbackLikelySubtagsV1Marker>>::from_static_ref
Unexecuted instantiation: <icu_provider::response::DataPayload<_>>::from_static_ref
381
382
    /// Convert a DataPayload that was created via [`DataPayload::from_owned()`] back into the
383
    /// concrete type used to construct it.
384
0
    pub fn try_unwrap_owned(self) -> Result<M::Yokeable, DataError> {
385
0
        match self.0 {
386
0
            DataPayloadInner::Yoke(yoke) => yoke.try_into_yokeable().ok(),
387
0
            DataPayloadInner::StaticRef(_) => None,
388
        }
389
0
        .ok_or(DataErrorKind::InvalidState.with_str_context("try_unwrap_owned"))
390
0
    }
391
392
    /// Mutate the data contained in this DataPayload.
393
    ///
394
    /// For safety, all mutation operations must take place within a helper function that cannot
395
    /// borrow data from the surrounding context.
396
    ///
397
    /// # Examples
398
    ///
399
    /// Basic usage:
400
    ///
401
    /// ```
402
    /// use icu_provider::hello_world::HelloWorldV1Marker;
403
    /// use icu_provider::prelude::*;
404
    ///
405
    /// let mut payload =
406
    ///     DataPayload::<HelloWorldV1Marker>::from_static_str("Hello");
407
    ///
408
    /// payload.with_mut(|s| s.message.to_mut().push_str(" World"));
409
    ///
410
    /// assert_eq!("Hello World", payload.get().message);
411
    /// ```
412
    ///
413
    /// To transfer data from the context into the data struct, use the `move` keyword:
414
    ///
415
    /// ```
416
    /// use icu_provider::hello_world::HelloWorldV1Marker;
417
    /// use icu_provider::prelude::*;
418
    ///
419
    /// let mut payload =
420
    ///     DataPayload::<HelloWorldV1Marker>::from_static_str("Hello");
421
    ///
422
    /// let suffix = " World";
423
    /// payload.with_mut(move |s| s.message.to_mut().push_str(suffix));
424
    ///
425
    /// assert_eq!("Hello World", payload.get().message);
426
    /// ```
427
0
    pub fn with_mut<'a, F>(&'a mut self, f: F)
428
0
    where
429
0
        F: 'static + for<'b> FnOnce(&'b mut <M::Yokeable as Yokeable<'a>>::Output),
430
0
        M::Yokeable: zerofrom::ZeroFrom<'static, M::Yokeable>,
431
    {
432
0
        if let DataPayloadInner::StaticRef(r) = self.0 {
433
0
            self.0 = DataPayloadInner::Yoke(
434
0
                Yoke::new_owned(zerofrom::ZeroFrom::zero_from(r))
435
0
                    .convert_cart_into_option_pointer(),
436
0
            );
437
0
        }
438
0
        match &mut self.0 {
439
0
            DataPayloadInner::Yoke(yoke) => yoke.with_mut(f),
440
0
            _ => unreachable!(),
441
        }
442
0
    }
443
444
    /// Borrows the underlying data.
445
    ///
446
    /// This function should be used like `Deref` would normally be used. For more information on
447
    /// why DataPayload cannot implement `Deref`, see the `yoke` crate.
448
    ///
449
    /// # Examples
450
    ///
451
    /// ```
452
    /// use icu_provider::hello_world::HelloWorldV1Marker;
453
    /// use icu_provider::prelude::*;
454
    ///
455
    /// let payload = DataPayload::<HelloWorldV1Marker>::from_static_str("Demo");
456
    ///
457
    /// assert_eq!("Demo", payload.get().message);
458
    /// ```
459
    #[inline]
460
    #[allow(clippy::needless_lifetimes)]
461
0
    pub fn get<'a>(&'a self) -> &'a <M::Yokeable as Yokeable<'a>>::Output {
462
0
        match &self.0 {
463
0
            DataPayloadInner::Yoke(yoke) => yoke.get(),
464
0
            DataPayloadInner::StaticRef(r) => Yokeable::transform(*r),
465
        }
466
0
    }
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::GeneralCategory>>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::BidiClass>>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<u8>>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<u16>>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::props::ErasedNameToEnumMapV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ScriptWithExtensionsPropertyV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::WeekDataV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::NonRecursiveDecompositionSupplementV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_list::provider::ErasedListV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_casemap::provider::unfold::CaseMapUnfoldV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::TimeSymbolsV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::ErasedDateSymbolsV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_casemap::provider::CaseMapV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::LineBreakDataV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::WordBreakDataV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::SentenceBreakDataV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::GraphemeClusterBreakDataV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::UCharDictionaryBreakDataV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::lstm::LstmForWordLineAutoV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::ExemplarCitiesV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::TimeZoneFormatsV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::MetazoneGenericNamesLongV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::MetazoneGenericNamesShortV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::MetazoneSpecificNamesLongV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::time_zones::MetazoneSpecificNamesShortV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::TimeLengthsV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::patterns::GenericPatternV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::patterns::PatternPluralsFromPatternsV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_timezone::provider::MetazonePeriodV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_timezone::provider::names::Bcp47ToIanaMapV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_timezone::provider::names::IanaToBcp47MapV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_timezone::provider::names::IanaToBcp47MapV2Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_plurals::provider::ErasedPluralRulesV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_decimal::provider::DecimalSymbolsV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationDataV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationJamoV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationMetadataV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationDiacriticsV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationReorderingV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_collator::provider::CollationSpecialPrimariesV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::CanonicalCompositionsV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::CanonicalDecompositionDataV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::CanonicalDecompositionTablesV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::Uts46DecompositionSupplementV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::CompatibilityDecompositionTablesV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_normalizer::provider::CompatibilityDecompositionSupplementV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::sets::ErasedSetlikeMarker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::sets::ErasedUnicodeSetlikeMarker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::WeekDataV2Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::JapaneseErasV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::chinese_based::DangiCacheV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::chinese_based::ChineseCacheV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::islamic::IslamicUmmAlQuraCacheV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::islamic::IslamicObservationalCacheV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::canonicalizer::AliasesV2Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::directionality::ScriptDirectionV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::expander::LikelySubtagsExtendedV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::expander::LikelySubtagsForLanguageV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::expander::LikelySubtagsForScriptRegionV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::fallback::LocaleFallbackParentsV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::fallback::CollationFallbackSupplementV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::fallback::LocaleFallbackLikelySubtagsV1Marker>>::get
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_provider::hello_world::HelloWorldV1Marker>>::get
467
468
    /// Maps `DataPayload<M>` to `DataPayload<M2>` by projecting it with [`Yoke::map_project`].
469
    ///
470
    /// This is accomplished by a function that takes `M`'s data type and returns `M2`'s data
471
    /// type. The function takes a second argument which should be ignored. For more details,
472
    /// see [`Yoke::map_project()`].
473
    ///
474
    /// The standard [`DataPayload::map_project()`] function moves `self` and cannot capture any
475
    /// data from its context. Use one of the sister methods if you need these capabilities:
476
    ///
477
    /// - [`DataPayload::map_project_cloned()`] if you don't have ownership of `self`
478
    /// - [`DataPayload::try_map_project()`] to bubble up an error
479
    /// - [`DataPayload::try_map_project_cloned()`] to do both of the above
480
    ///
481
    /// # Examples
482
    ///
483
    /// Map from `HelloWorldV1` to a `Cow<str>` containing just the message:
484
    ///
485
    /// ```
486
    /// use icu_provider::hello_world::*;
487
    /// use icu_provider::prelude::*;
488
    /// use std::borrow::Cow;
489
    ///
490
    /// // A custom marker type is required when using `map_project`. The Yokeable should be the
491
    /// // target type, and the Cart should correspond to the type being transformed.
492
    ///
493
    /// struct HelloWorldV1MessageMarker;
494
    /// impl DataMarker for HelloWorldV1MessageMarker {
495
    ///     type Yokeable = Cow<'static, str>;
496
    /// }
497
    ///
498
    /// let p1: DataPayload<HelloWorldV1Marker> = DataPayload::from_owned(HelloWorldV1 {
499
    ///     message: Cow::Borrowed("Hello World"),
500
    /// });
501
    ///
502
    /// assert_eq!("Hello World", p1.get().message);
503
    ///
504
    /// let p2: DataPayload<HelloWorldV1MessageMarker> = p1.map_project(|obj, _| obj.message);
505
    ///
506
    /// // Note: at this point, p1 has been moved.
507
    /// assert_eq!("Hello World", p2.get());
508
    /// ```
509
    #[allow(clippy::type_complexity)]
510
0
    pub fn map_project<M2, F>(self, f: F) -> DataPayload<M2>
511
0
    where
512
0
        M2: DataMarker,
513
0
        F: for<'a> FnOnce(
514
0
            <M::Yokeable as Yokeable<'a>>::Output,
515
0
            PhantomData<&'a ()>,
516
0
        ) -> <M2::Yokeable as Yokeable<'a>>::Output,
517
0
        M::Yokeable: zerofrom::ZeroFrom<'static, M::Yokeable>,
518
    {
519
        DataPayload(DataPayloadInner::Yoke(
520
0
            match self.0 {
521
0
                DataPayloadInner::Yoke(yoke) => yoke,
522
0
                DataPayloadInner::StaticRef(r) => Yoke::new_owned(zerofrom::ZeroFrom::zero_from(r))
523
0
                    .convert_cart_into_option_pointer(),
524
            }
525
0
            .map_project(f),
526
        ))
527
0
    }
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::TimeLengthsV1Marker>>::map_project::<icu_datetime::provider::calendar::patterns::PatternPluralsFromPatternsV1Marker, icu_datetime::provider::date_time::pattern_for_time_length<icu_provider::any::DowncastingAnyProvider<icu_provider_adapters::empty::EmptyDataProvider>>::{closure#0}>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::expander::LikelySubtagsV1Marker>>::map_project::<icu_locid_transform::provider::expander::LikelySubtagsForScriptRegionV1Marker, <icu_locid_transform::expander::LocaleExpander>::try_new_compat<icu_provider::any::DowncastingAnyProvider<icu_provider_adapters::empty::EmptyDataProvider>>::{closure#1}>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::TimeLengthsV1Marker>>::map_project::<icu_datetime::provider::calendar::patterns::PatternPluralsFromPatternsV1Marker, icu_datetime::provider::date_time::pattern_for_time_length<icu_datetime::provider::Baked>::{closure#0}>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker>>::map_project::<icu_datetime::provider::calendar::patterns::GenericPatternV1Marker, icu_datetime::provider::date_time::generic_pattern_for_date_length::{closure#0}>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker>>::map_project::<icu_datetime::provider::calendar::patterns::PatternPluralsFromPatternsV1Marker, icu_datetime::provider::date_time::pattern_for_date_length::{closure#0}>
Unexecuted instantiation: <icu_provider::response::DataPayload<_>>::map_project::<_, _>
528
529
    /// Version of [`DataPayload::map_project()`] that borrows `self` instead of moving `self`.
530
    ///
531
    /// # Examples
532
    ///
533
    /// Same example as above, but this time, do not move out of `p1`:
534
    ///
535
    /// ```
536
    /// // Same imports and definitions as above
537
    /// # use icu_provider::hello_world::*;
538
    /// # use icu_provider::prelude::*;
539
    /// # use std::borrow::Cow;
540
    /// # struct HelloWorldV1MessageMarker;
541
    /// # impl DataMarker for HelloWorldV1MessageMarker {
542
    /// #     type Yokeable = Cow<'static, str>;
543
    /// # }
544
    ///
545
    /// let p1: DataPayload<HelloWorldV1Marker> =
546
    ///     DataPayload::from_owned(HelloWorldV1 {
547
    ///         message: Cow::Borrowed("Hello World"),
548
    ///     });
549
    ///
550
    /// assert_eq!("Hello World", p1.get().message);
551
    ///
552
    /// let p2: DataPayload<HelloWorldV1MessageMarker> =
553
    ///     p1.map_project_cloned(|obj, _| obj.message.clone());
554
    ///
555
    /// // Note: p1 is still valid.
556
    /// assert_eq!(p1.get().message, *p2.get());
557
    /// ```
558
    #[allow(clippy::type_complexity)]
559
0
    pub fn map_project_cloned<'this, M2, F>(&'this self, f: F) -> DataPayload<M2>
560
0
    where
561
0
        M2: DataMarker,
562
0
        F: for<'a> FnOnce(
563
0
            &'this <M::Yokeable as Yokeable<'a>>::Output,
564
0
            PhantomData<&'a ()>,
565
0
        ) -> <M2::Yokeable as Yokeable<'a>>::Output,
566
    {
567
0
        DataPayload(DataPayloadInner::Yoke(match &self.0 {
568
0
            DataPayloadInner::Yoke(yoke) => yoke.map_project_cloned(f),
569
0
            DataPayloadInner::StaticRef(r) => {
570
0
                let output: <M2::Yokeable as Yokeable<'static>>::Output =
571
0
                    f(Yokeable::transform(*r), PhantomData);
572
                // Safety: <M2::Yokeable as Yokeable<'static>>::Output is the same type as M2::Yokeable;
573
                // we're going from 'static to 'static, however in a generic context it's not
574
                // clear to the compiler that that is the case. We have to use the unsafe make API to do this.
575
0
                let yokeable: M2::Yokeable = unsafe { M2::Yokeable::make(output) };
576
0
                Yoke::new_owned(yokeable).convert_cart_into_option_pointer()
577
            }
578
        }))
579
0
    }
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::expander::LikelySubtagsV1Marker>>::map_project_cloned::<icu_locid_transform::provider::expander::LikelySubtagsForLanguageV1Marker, <icu_locid_transform::expander::LocaleExpander>::try_new_compat<icu_provider::any::DowncastingAnyProvider<icu_provider_adapters::empty::EmptyDataProvider>>::{closure#0}>
Unexecuted instantiation: <icu_provider::response::DataPayload<_>>::map_project_cloned::<_, _>
580
581
    /// Version of [`DataPayload::map_project()`] that bubbles up an error from `f`.
582
    ///
583
    /// # Examples
584
    ///
585
    /// Same example as above, but bubble up an error:
586
    ///
587
    /// ```
588
    /// // Same imports and definitions as above
589
    /// # use icu_provider::hello_world::*;
590
    /// # use icu_provider::prelude::*;
591
    /// # use std::borrow::Cow;
592
    /// # struct HelloWorldV1MessageMarker;
593
    /// # impl DataMarker for HelloWorldV1MessageMarker {
594
    /// #     type Yokeable = Cow<'static, str>;
595
    /// # }
596
    ///
597
    /// let p1: DataPayload<HelloWorldV1Marker> =
598
    ///     DataPayload::from_owned(HelloWorldV1 {
599
    ///         message: Cow::Borrowed("Hello World"),
600
    ///     });
601
    ///
602
    /// assert_eq!("Hello World", p1.get().message);
603
    ///
604
    /// let string_to_append = "Extra";
605
    /// let p2: DataPayload<HelloWorldV1MessageMarker> =
606
    ///     p1.try_map_project(|mut obj, _| {
607
    ///         if obj.message.is_empty() {
608
    ///             return Err("Example error");
609
    ///         }
610
    ///         obj.message.to_mut().push_str(string_to_append);
611
    ///         Ok(obj.message)
612
    ///     })?;
613
    ///
614
    /// assert_eq!("Hello WorldExtra", p2.get());
615
    /// # Ok::<(), &'static str>(())
616
    /// ```
617
    #[allow(clippy::type_complexity)]
618
0
    pub fn try_map_project<M2, F, E>(self, f: F) -> Result<DataPayload<M2>, E>
619
0
    where
620
0
        M2: DataMarker,
621
0
        F: for<'a> FnOnce(
622
0
            <M::Yokeable as Yokeable<'a>>::Output,
623
0
            PhantomData<&'a ()>,
624
0
        ) -> Result<<M2::Yokeable as Yokeable<'a>>::Output, E>,
625
0
        M::Yokeable: zerofrom::ZeroFrom<'static, M::Yokeable>,
626
    {
627
        Ok(DataPayload(DataPayloadInner::Yoke(
628
0
            match self.0 {
629
0
                DataPayloadInner::Yoke(yoke) => yoke,
630
0
                DataPayloadInner::StaticRef(r) => Yoke::new_owned(zerofrom::ZeroFrom::zero_from(r))
631
0
                    .convert_cart_into_option_pointer(),
632
            }
633
0
            .try_map_project(f)?,
634
        )))
635
0
    }
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::JoiningType>>>::try_map_project::<icu_properties::maps::ErasedMaplikeMarker<u8>, <icu_properties::maps::CodePointMapData<icu_properties::props::JoiningType>>::try_into_converted<u8>::{closure#0}, zerovec::error::ZeroVecError>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::SentenceBreak>>>::try_map_project::<icu_properties::maps::ErasedMaplikeMarker<u8>, <icu_properties::maps::CodePointMapData<icu_properties::props::SentenceBreak>>::try_into_converted<u8>::{closure#0}, zerovec::error::ZeroVecError>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::EastAsianWidth>>>::try_map_project::<icu_properties::maps::ErasedMaplikeMarker<u8>, <icu_properties::maps::CodePointMapData<icu_properties::props::EastAsianWidth>>::try_into_converted<u8>::{closure#0}, zerovec::error::ZeroVecError>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::GeneralCategory>>>::try_map_project::<icu_properties::maps::ErasedMaplikeMarker<u8>, <icu_properties::maps::CodePointMapData<icu_properties::props::GeneralCategory>>::try_into_converted<u8>::{closure#0}, zerovec::error::ZeroVecError>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::HangulSyllableType>>>::try_map_project::<icu_properties::maps::ErasedMaplikeMarker<u8>, <icu_properties::maps::CodePointMapData<icu_properties::props::HangulSyllableType>>::try_into_converted<u8>::{closure#0}, zerovec::error::ZeroVecError>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::GraphemeClusterBreak>>>::try_map_project::<icu_properties::maps::ErasedMaplikeMarker<u8>, <icu_properties::maps::CodePointMapData<icu_properties::props::GraphemeClusterBreak>>::try_into_converted<u8>::{closure#0}, zerovec::error::ZeroVecError>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::IndicSyllabicCategory>>>::try_map_project::<icu_properties::maps::ErasedMaplikeMarker<u8>, <icu_properties::maps::CodePointMapData<icu_properties::props::IndicSyllabicCategory>>::try_into_converted<u8>::{closure#0}, zerovec::error::ZeroVecError>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::Script>>>::try_map_project::<icu_properties::maps::ErasedMaplikeMarker<u16>, <icu_properties::maps::CodePointMapData<icu_properties::props::Script>>::try_into_converted<u16>::{closure#0}, zerovec::error::ZeroVecError>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::BidiClass>>>::try_map_project::<icu_properties::maps::ErasedMaplikeMarker<u8>, <icu_properties::maps::CodePointMapData<icu_properties::props::BidiClass>>::try_into_converted<u8>::{closure#0}, zerovec::error::ZeroVecError>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::LineBreak>>>::try_map_project::<icu_properties::maps::ErasedMaplikeMarker<u8>, <icu_properties::maps::CodePointMapData<icu_properties::props::LineBreak>>::try_into_converted<u8>::{closure#0}, zerovec::error::ZeroVecError>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::WordBreak>>>::try_map_project::<icu_properties::maps::ErasedMaplikeMarker<u8>, <icu_properties::maps::CodePointMapData<icu_properties::props::WordBreak>>::try_into_converted<u8>::{closure#0}, zerovec::error::ZeroVecError>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker>>::try_map_project::<icu_datetime::provider::calendar::patterns::PatternPluralsFromPatternsV1Marker, <icu_datetime::provider::date_time::PatternSelector<icu_provider::any::DowncastingAnyProvider<icu_provider_adapters::empty::EmptyDataProvider>>>::pattern_for_datetime_length::{closure#0}, icu_datetime::provider::date_time::PatternForLengthError>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_locid_transform::provider::canonicalizer::AliasesV1Marker>>::try_map_project::<icu_locid_transform::provider::canonicalizer::AliasesV2Marker, <icu_locid_transform::canonicalizer::LocaleCanonicalizer>::try_new_with_expander_compat<icu_provider::any::DowncastingAnyProvider<icu_provider_adapters::empty::EmptyDataProvider>>::{closure#0}, icu_provider::error::DataError>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker>>::try_map_project::<icu_datetime::provider::calendar::patterns::PatternPluralsFromPatternsV1Marker, <icu_datetime::provider::date_time::PatternSelector<icu_datetime::provider::Baked>>::pattern_for_datetime_length::{closure#0}, icu_datetime::provider::date_time::PatternForLengthError>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::patterns::PatternPluralsFromPatternsV1Marker>>::try_map_project::<icu_datetime::provider::calendar::patterns::PatternPluralsFromPatternsV1Marker, <icu_datetime::raw::datetime::DateTimeFormatter>::try_from_date_and_time::{closure#0}, icu_datetime::error::DateTimeError>
Unexecuted instantiation: <icu_provider::response::DataPayload<_>>::try_map_project::<_, _, _>
636
637
    /// Version of [`DataPayload::map_project_cloned()`] that  bubbles up an error from `f`.
638
    ///
639
    /// # Examples
640
    ///
641
    /// Same example as above, but bubble up an error:
642
    ///
643
    /// ```
644
    /// // Same imports and definitions as above
645
    /// # use icu_provider::hello_world::*;
646
    /// # use icu_provider::prelude::*;
647
    /// # use std::borrow::Cow;
648
    /// # struct HelloWorldV1MessageMarker;
649
    /// # impl DataMarker for HelloWorldV1MessageMarker {
650
    /// #     type Yokeable = Cow<'static, str>;
651
    /// # }
652
    ///
653
    /// let p1: DataPayload<HelloWorldV1Marker> =
654
    ///     DataPayload::from_owned(HelloWorldV1 {
655
    ///         message: Cow::Borrowed("Hello World"),
656
    ///     });
657
    ///
658
    /// assert_eq!("Hello World", p1.get().message);
659
    ///
660
    /// let string_to_append = "Extra";
661
    /// let p2: DataPayload<HelloWorldV1MessageMarker> = p1
662
    ///     .try_map_project_cloned(|obj, _| {
663
    ///         if obj.message.is_empty() {
664
    ///             return Err("Example error");
665
    ///         }
666
    ///         let mut message = obj.message.clone();
667
    ///         message.to_mut().push_str(string_to_append);
668
    ///         Ok(message)
669
    ///     })?;
670
    ///
671
    /// // Note: p1 is still valid, but the values no longer equal.
672
    /// assert_ne!(p1.get().message, *p2.get());
673
    /// assert_eq!("Hello WorldExtra", p2.get());
674
    /// # Ok::<(), &'static str>(())
675
    /// ```
676
    #[allow(clippy::type_complexity)]
677
0
    pub fn try_map_project_cloned<'this, M2, F, E>(&'this self, f: F) -> Result<DataPayload<M2>, E>
678
0
    where
679
0
        M2: DataMarker,
680
0
        F: for<'a> FnOnce(
681
0
            &'this <M::Yokeable as Yokeable<'a>>::Output,
682
0
            PhantomData<&'a ()>,
683
0
        ) -> Result<<M2::Yokeable as Yokeable<'a>>::Output, E>,
684
    {
685
0
        Ok(DataPayload(DataPayloadInner::Yoke(match &self.0 {
686
0
            DataPayloadInner::Yoke(yoke) => yoke.try_map_project_cloned(f)?,
687
0
            DataPayloadInner::StaticRef(r) => {
688
0
                let output: <M2::Yokeable as Yokeable<'static>>::Output =
689
0
                    f(Yokeable::transform(*r), PhantomData)?;
690
                // Safety: <M2::Yokeable as Yokeable<'static>>::Output is the same type as M2::Yokeable
691
0
                Yoke::new_owned(unsafe { M2::Yokeable::make(output) })
692
0
                    .convert_cart_into_option_pointer()
693
            }
694
        })))
695
0
    }
696
697
    /// Convert between two [`DataMarker`] types that are compatible with each other
698
    /// with compile-time type checking.
699
    ///
700
    /// This happens if they both have the same [`DataMarker::Yokeable`] type.
701
    ///
702
    /// Can be used to erase the key of a data payload in cases where multiple keys correspond
703
    /// to the same data struct.
704
    ///
705
    /// For runtime dynamic casting, use [`DataPayload::dynamic_cast_mut()`].
706
    ///
707
    /// # Examples
708
    ///
709
    /// ```no_run
710
    /// use icu_provider::hello_world::*;
711
    /// use icu_provider::prelude::*;
712
    ///
713
    /// struct CustomHelloWorldV1Marker;
714
    /// impl DataMarker for CustomHelloWorldV1Marker {
715
    ///     type Yokeable = HelloWorldV1<'static>;
716
    /// }
717
    ///
718
    /// let hello_world: DataPayload<HelloWorldV1Marker> = todo!();
719
    /// let custom: DataPayload<CustomHelloWorldV1Marker> = hello_world.cast();
720
    /// ```
721
    #[inline]
722
0
    pub fn cast<M2>(self) -> DataPayload<M2>
723
0
    where
724
0
        M2: DataMarker<Yokeable = M::Yokeable>,
725
    {
726
0
        DataPayload(match self.0 {
727
0
            DataPayloadInner::Yoke(yoke) => DataPayloadInner::Yoke(yoke),
728
0
            DataPayloadInner::StaticRef(r) => DataPayloadInner::StaticRef(r),
729
        })
730
0
    }
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<u8>>>::cast::<icu_properties::maps::ErasedMaplikeMarker<u8>>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::maps::ErasedMaplikeMarker<u16>>>::cast::<icu_properties::maps::ErasedMaplikeMarker<u16>>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::props::ErasedNameToEnumMapV1Marker>>::cast::<icu_properties::props::ErasedNameToEnumMapV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::DashV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::MathV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::AlnumV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::BlankV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::CasedV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::EmojiV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GraphV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::PrintV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::HyphenV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ScriptV1Marker>>::cast::<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::Script>>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::XdigitV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::IdStartV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::RadicalV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ExtenderV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::HexDigitV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::NfcInertV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::NfdInertV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::XidStartV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::BidiClassV1Marker>>::cast::<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::BidiClass>>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::DiacriticV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::LineBreakV1Marker>>::cast::<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::LineBreak>>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::LowercaseV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::NfkcInertV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::NfkdInertV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::UppercaseV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::WordBreakV1Marker>>::cast::<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::WordBreak>>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::AlphabeticV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::BasicEmojiV1Marker>>::cast::<icu_properties::sets::ErasedUnicodeSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::DeprecatedV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::IdContinueV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::SoftDottedV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::WhiteSpaceV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::BidiControlV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::IdeographicV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::JoinControlV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::JoiningTypeV1Marker>>::cast::<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::JoiningType>>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::XidContinueV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::BidiMirroredV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GraphemeBaseV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GraphemeLinkV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::AsciiHexDigitV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::CaseIgnorableV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::CaseSensitiveV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::EmojiModifierV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::PatternSyntaxV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::QuotationMarkV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::SentenceBreakV1Marker>>::cast::<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::SentenceBreak>>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::EastAsianWidthV1Marker>>::cast::<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::EastAsianWidth>>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::EmojiComponentV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GraphemeExtendV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::SegmentStarterV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GeneralCategoryV1Marker>>::cast::<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::GeneralCategory>>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::SentenceTerminalV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::UnifiedIdeographV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::EmojiModifierBaseV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::EmojiPresentationV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::IdsBinaryOperatorV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::PatternWhiteSpaceV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::RegionalIndicatorV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ScriptNameToValueV1Marker>>::cast::<icu_properties::props::ErasedNameToEnumMapV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::VariationSelectorV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::HangulSyllableTypeV1Marker>>::cast::<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::HangulSyllableType>>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::IdsTrinaryOperatorV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::TerminalPunctuationV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::BidiClassNameToValueV1Marker>>::cast::<icu_properties::props::ErasedNameToEnumMapV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ExtendedPictographicV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GraphemeClusterBreakV1Marker>>::cast::<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::GraphemeClusterBreak>>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::LineBreakNameToValueV1Marker>>::cast::<icu_properties::props::ErasedNameToEnumMapV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::WordBreakNameToValueV1Marker>>::cast::<icu_properties::props::ErasedNameToEnumMapV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ChangesWhenCasefoldedV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ChangesWhenCasemappedV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ChangesWhenLowercasedV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ChangesWhenTitlecasedV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ChangesWhenUppercasedV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::IndicSyllabicCategoryV1Marker>>::cast::<icu_properties::maps::ErasedMaplikeMarker<icu_properties::props::IndicSyllabicCategory>>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::LogicalOrderExceptionV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::NoncharacterCodePointV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::FullCompositionExclusionV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::SentenceBreakNameToValueV1Marker>>::cast::<icu_properties::props::ErasedNameToEnumMapV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ChangesWhenNfkcCasefoldedV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::DefaultIgnorableCodePointV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::EastAsianWidthNameToValueV1Marker>>::cast::<icu_properties::props::ErasedNameToEnumMapV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GeneralCategoryNameToValueV1Marker>>::cast::<icu_properties::props::ErasedNameToEnumMapV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::PrependedConcatenationMarkV1Marker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::HangulSyllableTypeNameToValueV1Marker>>::cast::<icu_properties::props::ErasedNameToEnumMapV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::GraphemeClusterBreakNameToValueV1Marker>>::cast::<icu_properties::props::ErasedNameToEnumMapV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::IndicSyllabicCategoryNameToValueV1Marker>>::cast::<icu_properties::props::ErasedNameToEnumMapV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_calendar::provider::JapaneseExtendedErasV1Marker>>::cast::<icu_calendar::provider::JapaneseErasV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::names::GeneralCategoryMaskNameToValueV1Marker>>::cast::<icu_properties::props::ErasedNameToEnumMapV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::DictionaryForWordOnlyAutoV1Marker>>::cast::<icu_segmenter::provider::UCharDictionaryBreakDataV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::DictionaryForWordLineExtendedV1Marker>>::cast::<icu_segmenter::provider::UCharDictionaryBreakDataV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_segmenter::provider::lstm::LstmForWordLineAutoV1Marker>>::cast::<icu_segmenter::provider::lstm::LstmForWordLineAutoV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_list::provider::OrListV1Marker>>::cast::<icu_list::provider::ErasedListV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_list::provider::AndListV1Marker>>::cast::<icu_list::provider::ErasedListV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_list::provider::UnitListV1Marker>>::cast::<icu_list::provider::ErasedListV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::RocDateLengthsV1Marker>>::cast::<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::DangiDateLengthsV1Marker>>::cast::<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::CopticDateLengthsV1Marker>>::cast::<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::HebrewDateLengthsV1Marker>>::cast::<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::IndianDateLengthsV1Marker>>::cast::<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::ChineseDateLengthsV1Marker>>::cast::<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::IslamicDateLengthsV1Marker>>::cast::<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::PersianDateLengthsV1Marker>>::cast::<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::BuddhistDateLengthsV1Marker>>::cast::<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::JapaneseDateLengthsV1Marker>>::cast::<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::EthiopianDateLengthsV1Marker>>::cast::<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::GregorianDateLengthsV1Marker>>::cast::<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::JapaneseExtendedDateLengthsV1Marker>>::cast::<icu_datetime::provider::calendar::ErasedDateLengthsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::RocDateSymbolsV1Marker>>::cast::<icu_datetime::provider::calendar::symbols::ErasedDateSymbolsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::DangiDateSymbolsV1Marker>>::cast::<icu_datetime::provider::calendar::symbols::ErasedDateSymbolsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::CopticDateSymbolsV1Marker>>::cast::<icu_datetime::provider::calendar::symbols::ErasedDateSymbolsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::HebrewDateSymbolsV1Marker>>::cast::<icu_datetime::provider::calendar::symbols::ErasedDateSymbolsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::IndianDateSymbolsV1Marker>>::cast::<icu_datetime::provider::calendar::symbols::ErasedDateSymbolsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::ChineseDateSymbolsV1Marker>>::cast::<icu_datetime::provider::calendar::symbols::ErasedDateSymbolsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::IslamicDateSymbolsV1Marker>>::cast::<icu_datetime::provider::calendar::symbols::ErasedDateSymbolsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::PersianDateSymbolsV1Marker>>::cast::<icu_datetime::provider::calendar::symbols::ErasedDateSymbolsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::BuddhistDateSymbolsV1Marker>>::cast::<icu_datetime::provider::calendar::symbols::ErasedDateSymbolsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::JapaneseDateSymbolsV1Marker>>::cast::<icu_datetime::provider::calendar::symbols::ErasedDateSymbolsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::EthiopianDateSymbolsV1Marker>>::cast::<icu_datetime::provider::calendar::symbols::ErasedDateSymbolsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::GregorianDateSymbolsV1Marker>>::cast::<icu_datetime::provider::calendar::symbols::ErasedDateSymbolsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_datetime::provider::calendar::symbols::JapaneseExtendedDateSymbolsV1Marker>>::cast::<icu_datetime::provider::calendar::symbols::ErasedDateSymbolsV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_plurals::provider::OrdinalV1Marker>>::cast::<icu_plurals::provider::ErasedPluralRulesV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_plurals::provider::CardinalV1Marker>>::cast::<icu_plurals::provider::ErasedPluralRulesV1Marker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::sets::ErasedSetlikeMarker>>::cast::<icu_properties::sets::ErasedSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::sets::ErasedUnicodeSetlikeMarker>>::cast::<icu_properties::sets::ErasedUnicodeSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ExemplarCharactersMainV1Marker>>::cast::<icu_properties::sets::ErasedUnicodeSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ExemplarCharactersIndexV1Marker>>::cast::<icu_properties::sets::ErasedUnicodeSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ExemplarCharactersNumbersV1Marker>>::cast::<icu_properties::sets::ErasedUnicodeSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ExemplarCharactersAuxiliaryV1Marker>>::cast::<icu_properties::sets::ErasedUnicodeSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<icu_properties::provider::ExemplarCharactersPunctuationV1Marker>>::cast::<icu_properties::sets::ErasedUnicodeSetlikeMarker>
Unexecuted instantiation: <icu_provider::response::DataPayload<_>>::cast::<_>
731
732
    /// Convert a mutable reference of a [`DataPayload`] to another mutable reference
733
    /// of the same type with runtime type checking.
734
    ///
735
    /// Primarily useful to convert from a generic to a concrete marker type.
736
    ///
737
    /// If the `M2` type argument does not match the true marker type, a `DataError` is returned.
738
    ///
739
    /// For compile-time static casting, use [`DataPayload::cast()`].
740
    ///
741
    /// # Examples
742
    ///
743
    /// Change the results of a particular request based on key:
744
    ///
745
    /// ```
746
    /// use icu_locid::locale;
747
    /// use icu_provider::hello_world::*;
748
    /// use icu_provider::prelude::*;
749
    ///
750
    /// struct MyWrapper<P> {
751
    ///     inner: P,
752
    /// }
753
    ///
754
    /// impl<M, P> DataProvider<M> for MyWrapper<P>
755
    /// where
756
    ///     M: KeyedDataMarker,
757
    ///     P: DataProvider<M>,
758
    /// {
759
    ///     #[inline]
760
    ///     fn load(&self, req: DataRequest) -> Result<DataResponse<M>, DataError> {
761
    ///         let mut res = self.inner.load(req)?;
762
    ///         if let Some(ref mut generic_payload) = res.payload {
763
    ///             let mut cast_result =
764
    ///                 generic_payload.dynamic_cast_mut::<HelloWorldV1Marker>();
765
    ///             if let Ok(ref mut concrete_payload) = cast_result {
766
    ///                 // Add an emoji to the hello world message
767
    ///                 concrete_payload.with_mut(|data| {
768
    ///                     data.message.to_mut().insert_str(0, "✨ ");
769
    ///                 });
770
    ///             }
771
    ///         }
772
    ///         Ok(res)
773
    ///     }
774
    /// }
775
    ///
776
    /// let provider = MyWrapper {
777
    ///     inner: HelloWorldProvider,
778
    /// };
779
    /// let formatter =
780
    ///     HelloWorldFormatter::try_new_unstable(&provider, &locale!("de").into())
781
    ///         .unwrap();
782
    ///
783
    /// assert_eq!(formatter.format_to_string(), "✨ Hallo Welt");
784
    /// ```
785
    #[inline]
786
0
    pub fn dynamic_cast_mut<M2>(&mut self) -> Result<&mut DataPayload<M2>, DataError>
787
0
    where
788
0
        M2: DataMarker,
789
    {
790
0
        let this: &mut dyn core::any::Any = self;
791
0
        if let Some(this) = this.downcast_mut() {
792
0
            Ok(this)
793
        } else {
794
0
            Err(DataError::for_type::<M2>().with_str_context(core::any::type_name::<M>()))
795
        }
796
0
    }
797
}
798
799
impl DataPayload<BufferMarker> {
800
    /// Converts an owned byte buffer into a `DataPayload<BufferMarker>`.
801
0
    pub fn from_owned_buffer(buffer: Box<[u8]>) -> Self {
802
0
        let yoke = Yoke::attach_to_cart(SelectedRc::new(buffer), |b| &**b)
803
0
            .wrap_cart_in_option()
804
0
            .convert_cart_into_option_pointer();
805
0
        Self(DataPayloadInner::Yoke(yoke))
806
0
    }
807
808
    /// Converts a yoked byte buffer into a `DataPayload<BufferMarker>`.
809
0
    pub fn from_yoked_buffer(yoke: Yoke<&'static [u8], Option<Cart>>) -> Self {
810
0
        let yoke = Cart::unwrap_cart(yoke);
811
0
        Self(DataPayloadInner::Yoke(
812
0
            yoke.convert_cart_into_option_pointer(),
813
0
        ))
814
0
    }
815
816
    /// Converts a static byte buffer into a `DataPayload<BufferMarker>`.
817
0
    pub fn from_static_buffer(buffer: &'static [u8]) -> Self {
818
0
        Self(DataPayloadInner::Yoke(
819
0
            Yoke::new_owned(buffer).convert_cart_into_option_pointer(),
820
0
        ))
821
0
    }
822
}
823
824
impl<M> Default for DataPayload<M>
825
where
826
    M: DataMarker,
827
    M::Yokeable: Default,
828
{
829
0
    fn default() -> Self {
830
0
        Self::from_owned(Default::default())
831
0
    }
832
}
833
834
impl<M, O> DataPayloadOr<M, O>
835
where
836
    M: DataMarker,
837
{
838
    /// Creates a [`DataPayloadOr`] from a [`DataPayload`].
839
    #[inline]
840
0
    pub fn from_payload(payload: DataPayload<M>) -> Self {
841
0
        match payload.0 {
842
0
            DataPayloadInner::Yoke(yoke) => Self(DataPayloadOrInner::Yoke(yoke)),
843
0
            DataPayloadInner::StaticRef(r) => Self(DataPayloadOrInner::Inner(
844
0
                DataPayloadOrInnerInner::StaticRef(r),
845
0
            )),
846
        }
847
0
    }
848
849
    /// Creates a [`DataPayloadOr`] from the other type `O`.
850
    #[inline]
851
0
    pub fn from_other(other: O) -> Self {
852
0
        Self(DataPayloadOrInner::Inner(DataPayloadOrInnerInner::Other(
853
0
            other,
854
0
        )))
855
0
    }
856
857
    /// Gets the value from this [`DataPayload`] as `Ok` or the other type as `Err`.
858
    #[allow(clippy::needless_lifetimes)]
859
    #[inline]
860
0
    pub fn get<'a>(&'a self) -> Result<&'a <M::Yokeable as Yokeable<'a>>::Output, &'a O> {
861
0
        match &self.0 {
862
0
            DataPayloadOrInner::Yoke(yoke) => Ok(yoke.get()),
863
0
            DataPayloadOrInner::Inner(DataPayloadOrInnerInner::StaticRef(r)) => {
864
0
                Ok(Yokeable::transform(*r))
865
            }
866
0
            DataPayloadOrInner::Inner(DataPayloadOrInnerInner::Other(o)) => Err(o),
867
        }
868
0
    }
869
870
    /// Consumes this [`DataPayloadOr`], returning either the wrapped
871
    /// [`DataPayload`] or the other type.
872
    #[inline]
873
0
    pub fn into_inner(self) -> Result<DataPayload<M>, O> {
874
0
        match self.0 {
875
0
            DataPayloadOrInner::Yoke(yoke) => Ok(DataPayload(DataPayloadInner::Yoke(yoke))),
876
0
            DataPayloadOrInner::Inner(DataPayloadOrInnerInner::StaticRef(r)) => {
877
0
                Ok(DataPayload(DataPayloadInner::StaticRef(r)))
878
            }
879
0
            DataPayloadOrInner::Inner(DataPayloadOrInnerInner::Other(o)) => Err(o),
880
        }
881
0
    }
882
}
883
884
/// A response object containing an object as payload and metadata about it.
885
#[allow(clippy::exhaustive_structs)] // this type is stable
886
pub struct DataResponse<M>
887
where
888
    M: DataMarker,
889
{
890
    /// Metadata about the returned object.
891
    pub metadata: DataResponseMetadata,
892
893
    /// The object itself; `None` if it was not loaded.
894
    pub payload: Option<DataPayload<M>>,
895
}
896
897
impl<M> DataResponse<M>
898
where
899
    M: DataMarker,
900
{
901
    /// Takes ownership of the underlying payload. Error if not present.
902
    ///
903
    /// To take the metadata, too, use [`Self::take_metadata_and_payload()`].
904
    #[inline]
905
0
    pub fn take_payload(self) -> Result<DataPayload<M>, DataError> {
906
0
        Ok(self.take_metadata_and_payload()?.1)
907
0
    }
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::DashV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::MathV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::AlnumV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BlankV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::CasedV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EmojiV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::PrintV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::HyphenV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ScriptV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::XdigitV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IdStartV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::RadicalV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExtenderV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::HexDigitV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::NfcInertV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::NfdInertV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::XidStartV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BidiClassV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::DiacriticV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::LineBreakV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::LowercaseV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::NfkcInertV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::NfkdInertV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::UppercaseV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::WordBreakV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::AlphabeticV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BasicEmojiV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::DeprecatedV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IdContinueV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::SoftDottedV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::WhiteSpaceV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BidiControlV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IdeographicV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::JoinControlV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::JoiningTypeV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::XidContinueV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BidiMirroredV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphemeBaseV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphemeLinkV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::AsciiHexDigitV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::CaseIgnorableV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::CaseSensitiveV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EmojiModifierV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::PatternSyntaxV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::QuotationMarkV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::SentenceBreakV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EastAsianWidthV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EmojiComponentV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphemeExtendV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::SegmentStarterV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GeneralCategoryV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::SentenceTerminalV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::UnifiedIdeographV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EmojiModifierBaseV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EmojiPresentationV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IdsBinaryOperatorV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::PatternWhiteSpaceV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::RegionalIndicatorV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ScriptNameToValueV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::VariationSelectorV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::HangulSyllableTypeV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IdsTrinaryOperatorV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::TerminalPunctuationV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BidiClassNameToValueV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExtendedPictographicV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphemeClusterBreakV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::LineBreakNameToValueV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::WordBreakNameToValueV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenCasefoldedV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenCasemappedV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenLowercasedV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenTitlecasedV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenUppercasedV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IndicSyllabicCategoryV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::LogicalOrderExceptionV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::NoncharacterCodePointV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::FullCompositionExclusionV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::SentenceBreakNameToValueV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenNfkcCasefoldedV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::DefaultIgnorableCodePointV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EastAsianWidthNameToValueV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GeneralCategoryNameToValueV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::PrependedConcatenationMarkV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ScriptWithExtensionsPropertyV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::HangulSyllableTypeNameToValueV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphemeClusterBreakNameToValueV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IndicSyllabicCategoryNameToValueV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::WeekDataV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::JapaneseErasV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::JapaneseExtendedErasV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_timezone::provider::MetazonePeriodV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::CanonicalCompositionsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::CanonicalDecompositionDataV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::CanonicalDecompositionTablesV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::CompatibilityDecompositionTablesV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::NonRecursiveDecompositionSupplementV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::CompatibilityDecompositionSupplementV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::LineBreakDataV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::WordBreakDataV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::SentenceBreakDataV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::GraphemeClusterBreakDataV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationJamoV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationSpecialPrimariesV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_casemap::provider::CaseMapV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::names::GeneralCategoryMaskNameToValueV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::chinese_based::DangiCacheV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::chinese_based::ChineseCacheV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::islamic::IslamicUmmAlQuraCacheV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::islamic::IslamicObservationalCacheV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_timezone::provider::names::Bcp47ToIanaMapV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_timezone::provider::names::IanaToBcp47MapV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_timezone::provider::names::IanaToBcp47MapV2Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_casemap::provider::unfold::CaseMapUnfoldV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::canonicalizer::AliasesV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::canonicalizer::AliasesV2Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::directionality::ScriptDirectionV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::expander::LikelySubtagsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::expander::LikelySubtagsExtendedV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::expander::LikelySubtagsForLanguageV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::expander::LikelySubtagsForScriptRegionV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::fallback::LocaleFallbackParentsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::fallback::CollationFallbackSupplementV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::fallback::LocaleFallbackLikelySubtagsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::DictionaryForWordOnlyAutoV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::DictionaryForWordLineExtendedV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::lstm::LstmForWordLineAutoV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_list::provider::OrListV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_list::provider::AndListV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_list::provider::UnitListV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::ExemplarCitiesV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::TimeZoneFormatsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::MetazoneGenericNamesLongV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::MetazoneGenericNamesShortV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::MetazoneSpecificNamesLongV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::MetazoneSpecificNamesShortV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::TimeLengthsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::RocDateLengthsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::DangiDateLengthsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::CopticDateLengthsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::HebrewDateLengthsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::IndianDateLengthsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::ChineseDateLengthsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::IslamicDateLengthsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::PersianDateLengthsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::BuddhistDateLengthsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::JapaneseDateLengthsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::EthiopianDateLengthsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::GregorianDateLengthsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::JapaneseExtendedDateLengthsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::TimeSymbolsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::RocDateSymbolsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::DangiDateSymbolsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::CopticDateSymbolsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::HebrewDateSymbolsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::IndianDateSymbolsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::ChineseDateSymbolsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::IslamicDateSymbolsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::PersianDateSymbolsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::BuddhistDateSymbolsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::JapaneseDateSymbolsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::EthiopianDateSymbolsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::GregorianDateSymbolsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::JapaneseExtendedDateSymbolsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_plurals::provider::OrdinalV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_plurals::provider::CardinalV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_decimal::provider::DecimalSymbolsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationDataV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationMetadataV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationDiacriticsV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationReorderingV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExemplarCharactersMainV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExemplarCharactersIndexV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExemplarCharactersNumbersV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExemplarCharactersAuxiliaryV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExemplarCharactersPunctuationV1Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::WeekDataV2Marker>>::take_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_provider::hello_world::HelloWorldV1Marker>>::take_payload
908
909
    /// Takes ownership of the underlying metadata and payload. Error if payload is not present.
910
    #[inline]
911
0
    pub fn take_metadata_and_payload(
912
0
        self,
913
0
    ) -> Result<(DataResponseMetadata, DataPayload<M>), DataError> {
914
        Ok((
915
0
            self.metadata,
916
0
            self.payload
917
0
                .ok_or_else(|| DataErrorKind::MissingPayload.with_type_context::<M>())?,
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::DashV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::MathV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::AlnumV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BlankV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::CasedV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EmojiV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::PrintV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::HyphenV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ScriptV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::XdigitV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IdStartV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::RadicalV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExtenderV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::HexDigitV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::NfcInertV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::NfdInertV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::XidStartV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BidiClassV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::DiacriticV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::LineBreakV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::LowercaseV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::NfkcInertV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::NfkdInertV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::UppercaseV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::WordBreakV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::AlphabeticV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BasicEmojiV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::DeprecatedV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IdContinueV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::SoftDottedV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::WhiteSpaceV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BidiControlV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IdeographicV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::JoinControlV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::JoiningTypeV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::XidContinueV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BidiMirroredV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphemeBaseV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphemeLinkV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::AsciiHexDigitV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::CaseIgnorableV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::CaseSensitiveV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EmojiModifierV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::PatternSyntaxV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::QuotationMarkV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::SentenceBreakV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EastAsianWidthV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EmojiComponentV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphemeExtendV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::SegmentStarterV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GeneralCategoryV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::SentenceTerminalV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::UnifiedIdeographV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EmojiModifierBaseV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EmojiPresentationV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IdsBinaryOperatorV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::PatternWhiteSpaceV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::RegionalIndicatorV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ScriptNameToValueV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::VariationSelectorV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::HangulSyllableTypeV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IdsTrinaryOperatorV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::TerminalPunctuationV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BidiClassNameToValueV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExtendedPictographicV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphemeClusterBreakV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::LineBreakNameToValueV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::WordBreakNameToValueV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenCasefoldedV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenCasemappedV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenLowercasedV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenTitlecasedV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenUppercasedV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IndicSyllabicCategoryV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::LogicalOrderExceptionV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::NoncharacterCodePointV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::FullCompositionExclusionV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::SentenceBreakNameToValueV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenNfkcCasefoldedV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::DefaultIgnorableCodePointV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EastAsianWidthNameToValueV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GeneralCategoryNameToValueV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::PrependedConcatenationMarkV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ScriptWithExtensionsPropertyV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::HangulSyllableTypeNameToValueV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphemeClusterBreakNameToValueV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IndicSyllabicCategoryNameToValueV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::WeekDataV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::JapaneseErasV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::JapaneseExtendedErasV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_timezone::provider::MetazonePeriodV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::CanonicalCompositionsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::CanonicalDecompositionDataV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::CanonicalDecompositionTablesV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::CompatibilityDecompositionTablesV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::NonRecursiveDecompositionSupplementV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::CompatibilityDecompositionSupplementV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::LineBreakDataV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::WordBreakDataV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::SentenceBreakDataV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::GraphemeClusterBreakDataV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationJamoV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationSpecialPrimariesV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_casemap::provider::CaseMapV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::names::GeneralCategoryMaskNameToValueV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::chinese_based::DangiCacheV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::chinese_based::ChineseCacheV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::islamic::IslamicUmmAlQuraCacheV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::islamic::IslamicObservationalCacheV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_timezone::provider::names::Bcp47ToIanaMapV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_timezone::provider::names::IanaToBcp47MapV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_timezone::provider::names::IanaToBcp47MapV2Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_casemap::provider::unfold::CaseMapUnfoldV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::canonicalizer::AliasesV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::canonicalizer::AliasesV2Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::directionality::ScriptDirectionV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::expander::LikelySubtagsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::expander::LikelySubtagsExtendedV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::expander::LikelySubtagsForLanguageV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::expander::LikelySubtagsForScriptRegionV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::fallback::LocaleFallbackParentsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::fallback::CollationFallbackSupplementV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::fallback::LocaleFallbackLikelySubtagsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::DictionaryForWordOnlyAutoV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::DictionaryForWordLineExtendedV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::lstm::LstmForWordLineAutoV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_list::provider::OrListV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_list::provider::AndListV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_list::provider::UnitListV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::ExemplarCitiesV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::TimeZoneFormatsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::MetazoneGenericNamesLongV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::MetazoneGenericNamesShortV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::MetazoneSpecificNamesLongV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::MetazoneSpecificNamesShortV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::TimeLengthsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::RocDateLengthsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::DangiDateLengthsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::CopticDateLengthsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::HebrewDateLengthsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::IndianDateLengthsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::ChineseDateLengthsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::IslamicDateLengthsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::PersianDateLengthsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::BuddhistDateLengthsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::JapaneseDateLengthsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::EthiopianDateLengthsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::GregorianDateLengthsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::JapaneseExtendedDateLengthsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::TimeSymbolsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::RocDateSymbolsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::DangiDateSymbolsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::CopticDateSymbolsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::HebrewDateSymbolsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::IndianDateSymbolsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::ChineseDateSymbolsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::IslamicDateSymbolsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::PersianDateSymbolsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::BuddhistDateSymbolsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::JapaneseDateSymbolsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::EthiopianDateSymbolsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::GregorianDateSymbolsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::JapaneseExtendedDateSymbolsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_plurals::provider::OrdinalV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_plurals::provider::CardinalV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_decimal::provider::DecimalSymbolsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationDataV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationMetadataV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationDiacriticsV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationReorderingV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExemplarCharactersMainV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExemplarCharactersIndexV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExemplarCharactersNumbersV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExemplarCharactersAuxiliaryV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExemplarCharactersPunctuationV1Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::WeekDataV2Marker>>::take_metadata_and_payload::{closure#0}
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_provider::hello_world::HelloWorldV1Marker>>::take_metadata_and_payload::{closure#0}
918
        ))
919
0
    }
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::DashV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::MathV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::AlnumV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BlankV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::CasedV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EmojiV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::PrintV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::HyphenV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ScriptV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::XdigitV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IdStartV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::RadicalV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExtenderV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::HexDigitV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::NfcInertV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::NfdInertV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::XidStartV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BidiClassV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::DiacriticV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::LineBreakV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::LowercaseV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::NfkcInertV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::NfkdInertV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::UppercaseV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::WordBreakV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::AlphabeticV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BasicEmojiV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::DeprecatedV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IdContinueV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::SoftDottedV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::WhiteSpaceV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BidiControlV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IdeographicV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::JoinControlV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::JoiningTypeV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::XidContinueV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BidiMirroredV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphemeBaseV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphemeLinkV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::AsciiHexDigitV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::CaseIgnorableV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::CaseSensitiveV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EmojiModifierV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::PatternSyntaxV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::QuotationMarkV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::SentenceBreakV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EastAsianWidthV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EmojiComponentV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphemeExtendV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::SegmentStarterV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GeneralCategoryV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::SentenceTerminalV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::UnifiedIdeographV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EmojiModifierBaseV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EmojiPresentationV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IdsBinaryOperatorV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::PatternWhiteSpaceV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::RegionalIndicatorV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ScriptNameToValueV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::VariationSelectorV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::HangulSyllableTypeV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IdsTrinaryOperatorV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::TerminalPunctuationV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::BidiClassNameToValueV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExtendedPictographicV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphemeClusterBreakV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::LineBreakNameToValueV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::WordBreakNameToValueV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenCasefoldedV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenCasemappedV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenLowercasedV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenTitlecasedV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenUppercasedV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IndicSyllabicCategoryV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::LogicalOrderExceptionV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::NoncharacterCodePointV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::FullCompositionExclusionV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::SentenceBreakNameToValueV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ChangesWhenNfkcCasefoldedV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::DefaultIgnorableCodePointV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::EastAsianWidthNameToValueV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GeneralCategoryNameToValueV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::PrependedConcatenationMarkV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ScriptWithExtensionsPropertyV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::HangulSyllableTypeNameToValueV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::GraphemeClusterBreakNameToValueV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::IndicSyllabicCategoryNameToValueV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::WeekDataV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::JapaneseErasV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::JapaneseExtendedErasV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_timezone::provider::MetazonePeriodV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::CanonicalCompositionsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::CanonicalDecompositionDataV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::CanonicalDecompositionTablesV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::CompatibilityDecompositionTablesV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::NonRecursiveDecompositionSupplementV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_normalizer::provider::CompatibilityDecompositionSupplementV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::LineBreakDataV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::WordBreakDataV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::SentenceBreakDataV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::GraphemeClusterBreakDataV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationJamoV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationSpecialPrimariesV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_casemap::provider::CaseMapV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::names::GeneralCategoryMaskNameToValueV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::chinese_based::DangiCacheV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::chinese_based::ChineseCacheV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::islamic::IslamicUmmAlQuraCacheV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::islamic::IslamicObservationalCacheV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_timezone::provider::names::Bcp47ToIanaMapV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_timezone::provider::names::IanaToBcp47MapV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_timezone::provider::names::IanaToBcp47MapV2Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_casemap::provider::unfold::CaseMapUnfoldV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::canonicalizer::AliasesV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::canonicalizer::AliasesV2Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::directionality::ScriptDirectionV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::expander::LikelySubtagsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::expander::LikelySubtagsExtendedV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::expander::LikelySubtagsForLanguageV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::expander::LikelySubtagsForScriptRegionV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::fallback::LocaleFallbackParentsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::fallback::CollationFallbackSupplementV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_locid_transform::provider::fallback::LocaleFallbackLikelySubtagsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::DictionaryForWordOnlyAutoV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::DictionaryForWordLineExtendedV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_segmenter::provider::lstm::LstmForWordLineAutoV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_list::provider::OrListV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_list::provider::AndListV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_list::provider::UnitListV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::ExemplarCitiesV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::TimeZoneFormatsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::MetazoneGenericNamesLongV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::MetazoneGenericNamesShortV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::MetazoneSpecificNamesLongV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::time_zones::MetazoneSpecificNamesShortV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::TimeLengthsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::RocDateLengthsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::DangiDateLengthsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::CopticDateLengthsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::HebrewDateLengthsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::IndianDateLengthsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::ChineseDateLengthsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::IslamicDateLengthsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::PersianDateLengthsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::BuddhistDateLengthsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::JapaneseDateLengthsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::EthiopianDateLengthsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::GregorianDateLengthsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::JapaneseExtendedDateLengthsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::TimeSymbolsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::RocDateSymbolsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::DangiDateSymbolsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::CopticDateSymbolsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::HebrewDateSymbolsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::IndianDateSymbolsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::ChineseDateSymbolsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::IslamicDateSymbolsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::PersianDateSymbolsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::BuddhistDateSymbolsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::JapaneseDateSymbolsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::EthiopianDateSymbolsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::GregorianDateSymbolsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_datetime::provider::calendar::symbols::JapaneseExtendedDateSymbolsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_plurals::provider::OrdinalV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_plurals::provider::CardinalV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_decimal::provider::DecimalSymbolsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationDataV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationMetadataV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationDiacriticsV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_collator::provider::CollationReorderingV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExemplarCharactersMainV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExemplarCharactersIndexV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExemplarCharactersNumbersV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExemplarCharactersAuxiliaryV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_properties::provider::ExemplarCharactersPunctuationV1Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_calendar::provider::WeekDataV2Marker>>::take_metadata_and_payload
Unexecuted instantiation: <icu_provider::response::DataResponse<icu_provider::hello_world::HelloWorldV1Marker>>::take_metadata_and_payload
920
921
    /// Convert between two [`DataMarker`] types that are compatible with each other
922
    /// with compile-time type checking.
923
    ///
924
    /// This happens if they both have the same [`DataMarker::Yokeable`] type.
925
    ///
926
    /// Can be used to erase the key of a data payload in cases where multiple keys correspond
927
    /// to the same data struct.
928
    ///
929
    /// For runtime dynamic casting, use [`DataPayload::dynamic_cast_mut()`].
930
    #[inline]
931
0
    pub fn cast<M2>(self) -> DataResponse<M2>
932
0
    where
933
0
        M2: DataMarker<Yokeable = M::Yokeable>,
934
    {
935
0
        match self.payload {
936
0
            Some(payload) => DataResponse {
937
0
                metadata: self.metadata,
938
0
                payload: Some(payload.cast()),
939
0
            },
940
0
            None => DataResponse {
941
0
                metadata: self.metadata,
942
0
                payload: None,
943
0
            },
944
        }
945
0
    }
946
}
947
948
impl<M> TryFrom<DataResponse<M>> for DataPayload<M>
949
where
950
    M: DataMarker,
951
{
952
    type Error = DataError;
953
954
0
    fn try_from(response: DataResponse<M>) -> Result<Self, Self::Error> {
955
0
        response.take_payload()
956
0
    }
957
}
958
959
impl<M> Debug for DataResponse<M>
960
where
961
    M: DataMarker,
962
    for<'a> &'a <M::Yokeable as Yokeable<'a>>::Output: Debug,
963
{
964
0
    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
965
0
        write!(
966
0
            f,
967
0
            "DataResponse {{ metadata: {:?}, payload: {:?} }}",
968
            self.metadata, self.payload
969
        )
970
0
    }
971
}
972
973
/// Cloning a DataResponse is generally a cheap operation.
974
/// See notes in the `Clone` impl for [`Yoke`].
975
///
976
/// # Examples
977
///
978
/// ```no_run
979
/// use icu_provider::hello_world::*;
980
/// use icu_provider::prelude::*;
981
///
982
/// let resp1: DataResponse<HelloWorldV1Marker> = todo!();
983
/// let resp2 = resp1.clone();
984
/// ```
985
impl<M> Clone for DataResponse<M>
986
where
987
    M: DataMarker,
988
    for<'a> YokeTraitHack<<M::Yokeable as Yokeable<'a>>::Output>: Clone,
989
{
990
0
    fn clone(&self) -> Self {
991
0
        Self {
992
0
            metadata: self.metadata.clone(),
993
0
            payload: self.payload.clone(),
994
0
        }
995
0
    }
996
}
997
998
#[test]
999
fn test_debug() {
1000
    use crate::hello_world::*;
1001
    use alloc::borrow::Cow;
1002
    let resp = DataResponse::<HelloWorldV1Marker> {
1003
        metadata: Default::default(),
1004
        payload: Some(DataPayload::from_owned(HelloWorldV1 {
1005
            message: Cow::Borrowed("foo"),
1006
        })),
1007
    };
1008
    assert_eq!("DataResponse { metadata: DataResponseMetadata { locale: None, buffer_format: None }, payload: Some(HelloWorldV1 { message: \"foo\" }) }", format!("{resp:?}"));
1009
}