#![cfg_attr(not(any(test, feature = "std")), no_std)]
#![cfg_attr(
not(test),
deny(
clippy::indexing_slicing,
clippy::unwrap_used,
clippy::expect_used,
clippy::panic,
clippy::exhaustive_structs,
clippy::exhaustive_enums
)
)]
#![warn(missing_docs)]
#![allow(unused_imports)]
extern crate alloc;
#[path = "../metadata.rs.data"]
mod metadata;
pub mod versions {
pub fn cldr_tag() -> alloc::string::String {
alloc::string::String::from(crate::metadata::CLDR_JSON_GITREF)
}
pub fn icu_tag() -> alloc::string::String {
alloc::string::String::from(crate::metadata::ICUEXPORTDATA_GITREF)
}
}
pub fn locales() -> alloc::vec::Vec<icu_locid::LanguageIdentifier> {
alloc::vec::Vec::from(crate::metadata::LOCALES)
}
#[cfg(feature = "std")]
pub mod paths;
use icu_provider::prelude::*;
use icu_provider_adapters::fallback::LocaleFallbackProvider;
#[cfg(any(
feature = "internal_all_features_hack",
not(feature = "internal_ignore_baked")
))] pub fn unstable() -> LocaleFallbackProvider<UnstableDataProvider> {
#[allow(clippy::unwrap_used)]
LocaleFallbackProvider::try_new_unstable(unstable_no_fallback()).unwrap()
}
pub fn unstable_no_fallback() -> UnstableDataProvider {
UnstableDataProvider
}
#[cfg(any(
feature = "internal_all_features_hack",
not(feature = "internal_ignore_baked")
))] pub fn any() -> impl AnyProvider {
#[allow(clippy::unwrap_used)]
LocaleFallbackProvider::try_new_with_any_provider(any_no_fallback()).unwrap()
}
#[cfg(any(
feature = "internal_all_features_hack",
not(feature = "internal_ignore_baked")
))] pub fn any_no_fallback() -> impl AnyProvider {
UnstableDataProvider
}
#[cfg(feature = "buffer")]
pub fn buffer() -> impl BufferProvider {
#[allow(clippy::unwrap_used)]
LocaleFallbackProvider::try_new_with_buffer_provider(buffer_no_fallback()).unwrap()
}
#[cfg(feature = "buffer")]
pub fn buffer_no_fallback() -> impl BufferProvider {
lazy_static::lazy_static! {
static ref POSTCARD: icu_provider_blob::BlobDataProvider = {
#[allow(clippy::unwrap_used)]
icu_provider_blob::BlobDataProvider::try_new_from_static_blob(include_bytes!(concat!(
env!("CARGO_MANIFEST_DIR"),
"/data/testdata.postcard"
)))
.unwrap()
};
}
POSTCARD.clone()
}
#[doc(hidden)]
#[non_exhaustive]
pub struct UnstableDataProvider;
#[cfg(any(
feature = "internal_all_features_hack",
not(feature = "internal_ignore_baked")
))] mod baked {
include!(concat!(env!("CARGO_MANIFEST_DIR"), "/data/baked/mod.rs"));
impl_data_provider!(super::UnstableDataProvider);
impl_any_provider!(super::UnstableDataProvider);
}