icu_provider 1.5.0

Trait and struct definitions for the ICU data provider
Documentation
# This file is part of ICU4X. For terms of use, please see the file
# called LICENSE at the top level of the ICU4X source tree
# (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).

[package]
name = "icu_provider"
description = "Trait and struct definitions for the ICU data provider"

authors.workspace = true
categories.workspace = true
edition.workspace = true
homepage.workspace = true
include.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
version.workspace = true

[package.metadata.docs.rs]
all-features = true

[dependencies]
displaydoc = { workspace = true }
icu_locid = { workspace = true }
stable_deref_trait = { workspace = true }
writeable = { workspace = true }
tinystr = { workspace = true }
yoke = { workspace = true, features = ["alloc", "derive"] }
zerofrom = { workspace = true, features = ["alloc", "derive"] }
zerovec = { workspace = true, features = ["derive"]}

# macros
icu_provider_macros = { workspace = true, optional = true }

# log
log = { workspace = true, optional = true }

# serde
bincode = { workspace = true, optional = true }
postcard = { workspace = true, optional = true }
serde = { workspace = true, features = ["derive", "alloc"], optional = true }
serde_json = { workspace = true, optional = true }

# datagen
erased-serde = { workspace = true, optional = true, features = ["alloc"] }
databake = { workspace = true, optional = true, features = ["derive"] }

[dev-dependencies]
serde_json = { workspace = true }
icu = { path = "../../components/icu", default-features = false }
icu_provider_adapters = { path = "../adapters" }
icu_locid_transform = { path = "../../components/locid_transform" }

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
criterion = { workspace = true }

[features]
bench = []
std = ["icu_locid/std"]
sync = []
experimental = []
macros = ["dep:icu_provider_macros"]
# Enable logging of additional context of data errors
logging = ["dep:log"]
# Legacy name
log_error_context = ["logging"]

# Enable BufferProvider and other deserialization infrastructure
serde = ["dep:serde", "yoke/serde"]

# Features for specific serde formats
deserialize_json = ["serde", "dep:serde_json"]
deserialize_bincode_1 = ["serde", "dep:bincode", "std"]
deserialize_postcard_1 = ["serde", "dep:postcard"]

# Dependencies for running data generation
datagen = ["serde", "dep:erased-serde", "dep:databake", "std", "sync"]

[package.metadata.cargo-all-features]
denylist = ["macros"]
# We have tons of features here, limit the amount of tests we run
max_combination_size = 3

[lib]
bench = false  # This option is required for Benchmark CI

[[bench]]
name = "data_locale_bench"
harness = false