diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0dcf319f..059df8ca 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,8 +26,8 @@ jobs: matrix: icu_version: [74, 76, 77] feature_set: - - "renaming,icu_version_in_env,icu_version_64_plus,icu_version_67_plus,icu_version_68_plus" - - "renaming,icu_version_64_plus,icu_version_67_plus,icu_version_68_plus,icu_config,use-bindgen" + - "renaming,icu_version_in_env" + - "renaming,icu_config,use-bindgen" steps: - uses: actions/checkout@v6 - name: 'Test ICU version ${{ matrix.icu_version }}' diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0608aba7..548ce99d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -32,6 +32,47 @@ term health of the repository. * Please keep PRs limited to a single topic of change. This makes the PR easier to review, and easier to roll back, if that becomes necessary. +## Adding ICU-version-dependent code + +The workspace currently targets a range of ICU versions across which the +wrapped APIs behave uniformly enough that no version-gated code is needed. +Version gating has historically been required when ICU's behavior changes +between versions in user-visible ways — for example, changes in locale +data or fixes to behavioral bugs that cause the same input to produce +different output across ICU versions. If a future change introduces this +kind of difference, follow the pattern below — it must be wired up in +**two** places that are kept in sync. + +### 1. The Cargo feature + +Declare a feature in each affected crate's `Cargo.toml`, named after the +boundary version (e.g. `icu_version_78_plus`). Propagate it to dependent +crates the same way `icu_version_in_env` is propagated. + +### 2. Automatic activation via `build.rs` + +A crate's `build.rs` may emit `cargo:rustc-cfg=feature="icu_version_XX_plus"` +to activate the feature based on the ICU version detected at build time (via +`pkg-config`). This makes `#[cfg(feature = "icu_version_XX_plus")]`-gated +code light up automatically under the default feature set +(`use-bindgen`, `icu_config`, `renaming`) without requiring users to pass +`--features` manually. + +**Any crate that contains `#[cfg(feature = "icu_version_XX_plus")]`-gated +code must have a `build.rs`** that emits the corresponding cfg. Without it, +the gated code is silently excluded when building with default features, +even if a matching ICU version is installed. Copy the build script from any +crate that has one (e.g. `rust_icu_uloc`) and add the matching +`[build-dependencies]` entry pointing at `rust_icu_release`. + +### Explicit activation (when `icu_config` is inactive) + +When `icu_config` is disabled (e.g. when using pre-generated static bindgen +files with `icu_version_in_env`), the `build.rs` does not emit cfgs, so +version features must be passed explicitly via +`--features=icu_version_XX_plus,...`. The CI `test-with-features` matrix +job is the right place to add coverage for that path. + ## Community Guidelines This project follows [Google's Open Source Community diff --git a/Makefile b/Makefile index a9df9120..50ef78c5 100644 --- a/Makefile +++ b/Makefile @@ -104,11 +104,11 @@ macos-test: && PATH="$$ICU_PREFIX/bin:$$PATH" \ PKG_CONFIG_PATH="$$ICU_PREFIX/lib/pkgconfig:$$PKG_CONFIG_PATH" \ RUSTFLAGS="-L $$ICU_PREFIX/lib" \ - cargo test --no-default-features --features=use-bindgen,icu_config,renaming,icu_version_64_plus,icu_version_67_plus,icu_version_68_plus \ + cargo test \ && PATH="$$ICU_PREFIX/bin:$$PATH" \ PKG_CONFIG_PATH="$$ICU_PREFIX/lib/pkgconfig:$$PKG_CONFIG_PATH" \ RUSTFLAGS="-L $$ICU_PREFIX/lib" \ - cargo test --no-default-features --features=use-bindgen,icu_config,renaming,icu_version_64_plus,icu_version_67_plus,icu_version_68_plus,static + cargo test --features=static .PHONY: macos-test # Refreshes the static bindgen output (contents of ./rust_icu_sys/bindgen) based diff --git a/rust_icu/Cargo.toml b/rust_icu/Cargo.toml index 15bd1b33..86d2bb06 100644 --- a/rust_icu/Cargo.toml +++ b/rust_icu/Cargo.toml @@ -116,82 +116,6 @@ icu_version_in_env = [ "rust_icu_utext/icu_version_in_env", "rust_icu_utrans/icu_version_in_env", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_ubrk/icu_version_64_plus", - "rust_icu_ucal/icu_version_64_plus", - "rust_icu_ucol/icu_version_64_plus", - "rust_icu_ucsdet/icu_version_64_plus", - "rust_icu_udat/icu_version_64_plus", - "rust_icu_udata/icu_version_64_plus", - "rust_icu_uenum/icu_version_64_plus", - "rust_icu_ulistformatter/icu_version_64_plus", - "rust_icu_uloc/icu_version_64_plus", - "rust_icu_umsg/icu_version_64_plus", - "rust_icu_unorm2/icu_version_64_plus", - "rust_icu_ures/icu_version_64_plus", - "rust_icu_ustring/icu_version_64_plus", - "rust_icu_utext/icu_version_64_plus", - "rust_icu_utrans/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_ubrk/icu_version_67_plus", - "rust_icu_ucal/icu_version_67_plus", - "rust_icu_ucol/icu_version_67_plus", - "rust_icu_ucsdet/icu_version_67_plus", - "rust_icu_udat/icu_version_67_plus", - "rust_icu_udata/icu_version_67_plus", - "rust_icu_uenum/icu_version_67_plus", - "rust_icu_ulistformatter/icu_version_67_plus", - "rust_icu_uloc/icu_version_67_plus", - "rust_icu_umsg/icu_version_67_plus", - "rust_icu_unorm2/icu_version_67_plus", - "rust_icu_ures/icu_version_67_plus", - "rust_icu_ustring/icu_version_67_plus", - "rust_icu_utext/icu_version_67_plus", - "rust_icu_utrans/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_ubrk/icu_version_68_plus", - "rust_icu_ucal/icu_version_68_plus", - "rust_icu_ucol/icu_version_68_plus", - "rust_icu_ucsdet/icu_version_68_plus", - "rust_icu_udat/icu_version_68_plus", - "rust_icu_udata/icu_version_68_plus", - "rust_icu_uenum/icu_version_68_plus", - "rust_icu_ulistformatter/icu_version_68_plus", - "rust_icu_uloc/icu_version_68_plus", - "rust_icu_umsg/icu_version_68_plus", - "rust_icu_unorm2/icu_version_68_plus", - "rust_icu_ures/icu_version_68_plus", - "rust_icu_ustring/icu_version_68_plus", - "rust_icu_utext/icu_version_68_plus", - "rust_icu_utrans/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_ubrk/icu_version_69_max", - "rust_icu_ucal/icu_version_69_max", - "rust_icu_ucol/icu_version_69_max", - "rust_icu_ucsdet/icu_version_69_max", - "rust_icu_udat/icu_version_69_max", - "rust_icu_udata/icu_version_69_max", - "rust_icu_uenum/icu_version_69_max", - "rust_icu_ulistformatter/icu_version_69_max", - "rust_icu_uloc/icu_version_69_max", - "rust_icu_umsg/icu_version_69_max", - "rust_icu_unorm2/icu_version_69_max", - "rust_icu_ures/icu_version_69_max", - "rust_icu_ustring/icu_version_69_max", - "rust_icu_utext/icu_version_69_max", - "rust_icu_utrans/icu_version_69_max", -] static = ["rust_icu_sys/static"] [badges] diff --git a/rust_icu_common/Cargo.toml b/rust_icu_common/Cargo.toml index 1f4ed7d2..2689fc49 100644 --- a/rust_icu_common/Cargo.toml +++ b/rust_icu_common/Cargo.toml @@ -28,18 +28,6 @@ use-bindgen = ["rust_icu_sys/use-bindgen"] renaming = ["rust_icu_sys/renaming"] icu_config = ["rust_icu_sys/icu_config"] icu_version_in_env = ["rust_icu_sys/icu_version_in_env"] -icu_version_64_plus = [ - "rust_icu_sys/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_sys/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_sys/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_sys/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_ecma402/Cargo.toml b/rust_icu_ecma402/Cargo.toml index 64f83449..8663f813 100644 --- a/rust_icu_ecma402/Cargo.toml +++ b/rust_icu_ecma402/Cargo.toml @@ -74,46 +74,6 @@ icu_version_in_env = [ "rust_icu_upluralrules/icu_version_in_env", "rust_icu_ustring/icu_version_in_env", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_ulistformatter/icu_version_64_plus", - "rust_icu_uloc/icu_version_64_plus", - "rust_icu_unum/icu_version_64_plus", - "rust_icu_unumberformatter/icu_version_64_plus", - "rust_icu_upluralrules/icu_version_64_plus", - "rust_icu_ustring/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_ulistformatter/icu_version_67_plus", - "rust_icu_uloc/icu_version_67_plus", - "rust_icu_unum/icu_version_67_plus", - "rust_icu_unumberformatter/icu_version_67_plus", - "rust_icu_upluralrules/icu_version_67_plus", - "rust_icu_ustring/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_ulistformatter/icu_version_68_plus", - "rust_icu_uloc/icu_version_68_plus", - "rust_icu_unum/icu_version_68_plus", - "rust_icu_unumberformatter/icu_version_68_plus", - "rust_icu_upluralrules/icu_version_68_plus", - "rust_icu_ustring/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_ulistformatter/icu_version_69_max", - "rust_icu_uloc/icu_version_69_max", - "rust_icu_unum/icu_version_69_max", - "rust_icu_unumberformatter/icu_version_69_max", - "rust_icu_upluralrules/icu_version_69_max", - "rust_icu_ustring/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_ecma402/src/datetimeformat.rs b/rust_icu_ecma402/src/datetimeformat.rs index aaa5a191..000187bb 100644 --- a/rust_icu_ecma402/src/datetimeformat.rs +++ b/rust_icu_ecma402/src/datetimeformat.rs @@ -285,12 +285,6 @@ mod testing { dates: vec![10000_f64], expected_regex: vec!["1970."], }, - // In ICU 63 this gets reported as "GMT-08:00", likely the ICU data - // from then didn't contain the Serbian long spellout of the "uslax" - // time zone. Turning on from 67 onwards, since at the time this - // test was written that was the oldest version that did have the - // long spellout. - #[cfg(feature="icu_version_67_plus")] TestCase { locale: "sr", opts: DateTimeFormatOptions{ diff --git a/rust_icu_ecma402/src/listformat.rs b/rust_icu_ecma402/src/listformat.rs index ac3aba22..0b2d5cc3 100644 --- a/rust_icu_ecma402/src/listformat.rs +++ b/rust_icu_ecma402/src/listformat.rs @@ -26,8 +26,6 @@ pub struct Format { rep: ulfmt::UListFormatter, } -// Full support for styled formatting is available since v67. -#[cfg(feature = "icu_version_67_plus")] pub(crate) mod internal { use ecma402_traits::listformat::options; use rust_icu_sys as usys; @@ -60,24 +58,13 @@ impl listformat::Format for Format { /// Creates a new [Format], from a [ecma402_traits::Locale] and [listformat::Options]. fn try_new( l: L, - _opts: listformat::Options, + opts: listformat::Options, ) -> Result { let locale = format!("{}", l); - - #[cfg(feature = "icu_version_67_plus")] - { - let width = internal::to_icu_width(&_opts.style); - let in_type = internal::to_icu_type(&_opts.in_type); - let rep = ulfmt::UListFormatter::try_new_styled(&locale, in_type, width)?; - Ok(Format { rep }) - } - - // The non-v67 implementation is less featureful. - #[cfg(not(feature = "icu_version_67_plus"))] - { - let rep = ulfmt::UListFormatter::try_new(&locale)?; - Ok(Format { rep }) - } + let width = internal::to_icu_width(&opts.style); + let in_type = internal::to_icu_type(&opts.in_type); + let rep = ulfmt::UListFormatter::try_new_styled(&locale, in_type, width)?; + Ok(Format { rep }) } /// Formats the given string. @@ -123,7 +110,6 @@ mod testing { opts: listformat::Options::default(), expected: "eenie, meenie, minie, and moe", }, - #[cfg(feature = "icu_version_67_plus")] TestCase { locale: "en-US", array: vec!["eenie", "meenie", "minie", "moe"], @@ -133,7 +119,6 @@ mod testing { }, expected: "eenie, meenie, minie, & moe", }, - #[cfg(feature = "icu_version_67_plus")] TestCase { locale: "en-US", array: vec!["eenie", "meenie", "minie", "moe"], @@ -143,7 +128,6 @@ mod testing { }, expected: "eenie, meenie, minie, or moe", }, - #[cfg(feature = "icu_version_67_plus")] TestCase { locale: "en-US", array: vec!["eenie", "meenie", "minie", "moe"], @@ -153,7 +137,6 @@ mod testing { }, expected: "eenie, meenie, minie, moe", }, - #[cfg(feature = "icu_version_67_plus")] TestCase { locale: "en-US", array: vec!["eenie", "meenie", "minie", "moe"], @@ -172,7 +155,6 @@ mod testing { }, expected: "eenie, meenie, minie, and moe", }, - #[cfg(feature = "icu_version_67_plus")] TestCase { locale: "en-US", array: vec!["eenie", "meenie", "minie", "moe"], @@ -193,7 +175,6 @@ mod testing { }, expected: "Раја, Гаја и Влаја", }, - #[cfg(feature = "icu_version_67_plus")] TestCase { locale: "sr-RS", array: vec!["Раја", "Гаја", "Влаја"], @@ -203,7 +184,6 @@ mod testing { }, expected: "Раја, Гаја или Влаја", }, - #[cfg(feature = "icu_version_67_plus")] TestCase { locale: "sr-RS", array: vec!["Раја", "Гаја", "Влаја"], diff --git a/rust_icu_ecma402/src/numberformat.rs b/rust_icu_ecma402/src/numberformat.rs index 05591388..a9b07cd4 100644 --- a/rust_icu_ecma402/src/numberformat.rs +++ b/rust_icu_ecma402/src/numberformat.rs @@ -175,10 +175,7 @@ pub(crate) mod internal { // 3 -> "integer-width/*000" fn integer_digits(digits: usize) -> String { let zeroes: String = std::iter::repeat("0").take(digits).collect(); - #[cfg(feature = "icu_version_67_plus")] - return format!("integer-width/*{}", zeroes); - #[cfg(not(feature = "icu_version_67_plus"))] - return format!("integer-width/+{}", zeroes); + format!("integer-width/*{}", zeroes) } fn fraction_digits(min: usize, max: usize, min_sig: usize, max_sig: usize) -> String { diff --git a/rust_icu_intl/Cargo.toml b/rust_icu_intl/Cargo.toml index 1da7b256..0801d5c5 100644 --- a/rust_icu_intl/Cargo.toml +++ b/rust_icu_intl/Cargo.toml @@ -56,31 +56,3 @@ icu_version_in_env = [ "rust_icu_umsg/icu_version_in_env", "rust_icu_ustring/icu_version_in_env", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_uloc/icu_version_64_plus", - "rust_icu_umsg/icu_version_64_plus", - "rust_icu_ustring/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_uloc/icu_version_67_plus", - "rust_icu_umsg/icu_version_67_plus", - "rust_icu_ustring/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_uloc/icu_version_68_plus", - "rust_icu_umsg/icu_version_68_plus", - "rust_icu_ustring/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_uloc/icu_version_69_max", - "rust_icu_umsg/icu_version_69_max", - "rust_icu_ustring/icu_version_69_max", -] diff --git a/rust_icu_release/Cargo.toml b/rust_icu_release/Cargo.toml index f8113edd..84c59ba2 100644 --- a/rust_icu_release/Cargo.toml +++ b/rust_icu_release/Cargo.toml @@ -27,14 +27,6 @@ icu_config = [ ] icu_version_in_env = [ ] -icu_version_64_plus = [ -] -icu_version_67_plus = [ -] -icu_version_68_plus = [ -] -icu_version_69_max = [ -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_release/src/lib.rs b/rust_icu_release/src/lib.rs index 99c1018c..d2a30e7e 100644 --- a/rust_icu_release/src/lib.rs +++ b/rust_icu_release/src/lib.rs @@ -134,21 +134,6 @@ pub fn run() -> Result<()> { let icu_major_version = ICUConfig::version_major_int().context("while getting version")?; println!("icu-major-version: {}", icu_major_version); - if icu_major_version >= 64 { - println!("cargo:rustc-cfg=feature=\"icu_version_64_plus\""); - } - if icu_major_version >= 67 { - println!("cargo:rustc-cfg=feature=\"icu_version_67_plus\""); - } - if icu_major_version >= 68 { - println!("cargo:rustc-cfg=feature=\"icu_version_68_plus\""); - } - // Starting from version 69, the feature flags depending on the version - // number work for up to a certain version, so that they can be retired - // over time. - if icu_major_version <= 69 { - println!("cargo:rustc-cfg=feature=\"icu_version_69_max\""); - } println!("done"); Ok(()) } diff --git a/rust_icu_sys/Cargo.toml b/rust_icu_sys/Cargo.toml index 2db5d356..0c50ba8a 100644 --- a/rust_icu_sys/Cargo.toml +++ b/rust_icu_sys/Cargo.toml @@ -39,10 +39,6 @@ use-bindgen = ["bindgen"] renaming = [] icu_config = [] icu_version_in_env = [] -icu_version_64_plus = [] -icu_version_67_plus = [] -icu_version_68_plus = [] -icu_version_69_max = [] static = [] diff --git a/rust_icu_sys/build.rs b/rust_icu_sys/build.rs index 3e1d782c..5ce5c114 100644 --- a/rust_icu_sys/build.rs +++ b/rust_icu_sys/build.rs @@ -375,21 +375,6 @@ macro_rules! versioned_function { } let icu_major_version = ICUConfig::version_major_int()?; println!("icu-version-major: {}", icu_major_version); - if icu_major_version >= 64 { - println!("cargo:rustc-cfg=feature=\"icu_version_64_plus\""); - } - if icu_major_version >= 67 { - println!("cargo:rustc-cfg=feature=\"icu_version_67_plus\""); - } - if icu_major_version >= 68 { - println!("cargo:rustc-cfg=feature=\"icu_version_68_plus\""); - } - // Starting from version 69, the feature flags depending on the version - // number work for up to a certain version, so that they can be retired - // over time. - if icu_major_version <= 69 { - println!("cargo:rustc-cfg=feature=\"icu_version_69_max\""); - } Ok(()) } diff --git a/rust_icu_ubrk/Cargo.toml b/rust_icu_ubrk/Cargo.toml index 5070190e..6c537d6c 100644 --- a/rust_icu_ubrk/Cargo.toml +++ b/rust_icu_ubrk/Cargo.toml @@ -35,18 +35,6 @@ icu_config = [ "rust_icu_uloc/icu_config", "rust_icu_ustring/icu_config", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_uloc/icu_version_64_plus", - "rust_icu_ustring/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_uloc/icu_version_67_plus", - "rust_icu_ustring/icu_version_67_plus", -] icu_version_in_env = [ "rust_icu_common/icu_version_in_env", "rust_icu_sys/icu_version_in_env", @@ -65,18 +53,6 @@ use-bindgen = [ "rust_icu_uloc/use-bindgen", "rust_icu_ustring/use-bindgen", ] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_uloc/icu_version_68_plus", - "rust_icu_ustring/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_uloc/icu_version_69_max", - "rust_icu_ustring/icu_version_69_max", -] [badges] is-it-maintained-issue-resolution = { repository = "google/rust_icu" } diff --git a/rust_icu_ucal/Cargo.toml b/rust_icu_ucal/Cargo.toml index e5ad4f5b..9e25b244 100644 --- a/rust_icu_ucal/Cargo.toml +++ b/rust_icu_ucal/Cargo.toml @@ -55,30 +55,6 @@ icu_version_in_env = [ "rust_icu_uenum/icu_version_in_env", "rust_icu_ustring/icu_version_in_env", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_uenum/icu_version_64_plus", - "rust_icu_ustring/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_uenum/icu_version_67_plus", - "rust_icu_ustring/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_uenum/icu_version_68_plus", - "rust_icu_ustring/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_uenum/icu_version_69_max", - "rust_icu_ustring/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_uchar/Cargo.toml b/rust_icu_uchar/Cargo.toml index 9b9236b0..65d407a3 100644 --- a/rust_icu_uchar/Cargo.toml +++ b/rust_icu_uchar/Cargo.toml @@ -29,20 +29,4 @@ use-bindgen = ["rust_icu_sys/use-bindgen", "rust_icu_common/use-bindgen"] renaming = ["rust_icu_sys/renaming", "rust_icu_common/renaming"] icu_config = ["rust_icu_sys/icu_config", "rust_icu_common/icu_config"] icu_version_in_env = ["rust_icu_sys/icu_version_in_env", "rust_icu_common/icu_version_in_env"] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", -] diff --git a/rust_icu_ucnv/Cargo.toml b/rust_icu_ucnv/Cargo.toml index 25ac8f0a..9b5489cc 100644 --- a/rust_icu_ucnv/Cargo.toml +++ b/rust_icu_ucnv/Cargo.toml @@ -41,22 +41,6 @@ icu_version_in_env = [ "rust_icu_sys/icu_version_in_env", "rust_icu_common/icu_version_in_env", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_ucol/Cargo.toml b/rust_icu_ucol/Cargo.toml index a2fa3bfe..04aa1f8a 100644 --- a/rust_icu_ucol/Cargo.toml +++ b/rust_icu_ucol/Cargo.toml @@ -54,30 +54,6 @@ icu_version_in_env = [ "rust_icu_uenum/icu_version_in_env", "rust_icu_ustring/icu_version_in_env", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_uenum/icu_version_64_plus", - "rust_icu_ustring/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_uenum/icu_version_67_plus", - "rust_icu_ustring/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_uenum/icu_version_68_plus", - "rust_icu_ustring/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_uenum/icu_version_69_max", - "rust_icu_ustring/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_ucsdet/Cargo.toml b/rust_icu_ucsdet/Cargo.toml index 2e334c1f..dbe0797f 100644 --- a/rust_icu_ucsdet/Cargo.toml +++ b/rust_icu_ucsdet/Cargo.toml @@ -44,26 +44,6 @@ icu_version_in_env = [ "rust_icu_common/icu_version_in_env", "rust_icu_uenum/icu_version_in_env", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_uenum/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_uenum/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_uenum/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_uenum/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_udat/Cargo.toml b/rust_icu_udat/Cargo.toml index b55fb062..c5b36a4f 100644 --- a/rust_icu_udat/Cargo.toml +++ b/rust_icu_udat/Cargo.toml @@ -69,38 +69,6 @@ icu_version_in_env = [ "rust_icu_uloc/icu_version_in_env", "rust_icu_ustring/icu_version_in_env", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_ucal/icu_version_64_plus", - "rust_icu_uenum/icu_version_64_plus", - "rust_icu_uloc/icu_version_64_plus", - "rust_icu_ustring/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_ucal/icu_version_67_plus", - "rust_icu_uenum/icu_version_67_plus", - "rust_icu_uloc/icu_version_67_plus", - "rust_icu_ustring/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_ucal/icu_version_68_plus", - "rust_icu_uenum/icu_version_68_plus", - "rust_icu_uloc/icu_version_68_plus", - "rust_icu_ustring/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_ucal/icu_version_69_max", - "rust_icu_uenum/icu_version_69_max", - "rust_icu_uloc/icu_version_69_max", - "rust_icu_ustring/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_udata/Cargo.toml b/rust_icu_udata/Cargo.toml index 552c7ec1..d4aec3ea 100644 --- a/rust_icu_udata/Cargo.toml +++ b/rust_icu_udata/Cargo.toml @@ -29,22 +29,6 @@ use-bindgen = ["rust_icu_sys/use-bindgen", "rust_icu_common/use-bindgen"] renaming = ["rust_icu_sys/renaming", "rust_icu_common/renaming"] icu_config = ["rust_icu_sys/icu_config", "rust_icu_common/icu_config"] icu_version_in_env = ["rust_icu_sys/icu_version_in_env", "rust_icu_common/icu_version_in_env"] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_uenum/Cargo.toml b/rust_icu_uenum/Cargo.toml index 2a642ee0..8a7b4005 100644 --- a/rust_icu_uenum/Cargo.toml +++ b/rust_icu_uenum/Cargo.toml @@ -28,22 +28,6 @@ use-bindgen = ["rust_icu_sys/use-bindgen", "rust_icu_common/use-bindgen"] renaming = ["rust_icu_sys/renaming", "rust_icu_common/renaming"] icu_config = ["rust_icu_sys/icu_config", "rust_icu_common/icu_config"] icu_version_in_env = ["rust_icu_sys/icu_version_in_env", "rust_icu_common/icu_version_in_env"] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_uformattable/Cargo.toml b/rust_icu_uformattable/Cargo.toml index 93a2bbbf..5285ac96 100644 --- a/rust_icu_uformattable/Cargo.toml +++ b/rust_icu_uformattable/Cargo.toml @@ -49,26 +49,6 @@ icu_version_in_env = [ "rust_icu_sys/icu_version_in_env", "rust_icu_ustring/icu_version_in_env", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_ustring/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_ustring/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_ustring/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_ustring/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_ulistformatter/Cargo.toml b/rust_icu_ulistformatter/Cargo.toml index 214e84f1..984b14b2 100644 --- a/rust_icu_ulistformatter/Cargo.toml +++ b/rust_icu_ulistformatter/Cargo.toml @@ -49,26 +49,6 @@ icu_version_in_env = [ "rust_icu_sys/icu_version_in_env", "rust_icu_ustring/icu_version_in_env", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_ustring/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_ustring/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_ustring/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_ustring/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_ulistformatter/src/lib.rs b/rust_icu_ulistformatter/src/lib.rs index c493e632..e1138226 100644 --- a/rust_icu_ulistformatter/src/lib.rs +++ b/rust_icu_ulistformatter/src/lib.rs @@ -66,7 +66,6 @@ impl UListFormatter { } /// Implements `ulistfmt_openForType`. Since ICU 67. - #[cfg(feature = "icu_version_67_plus")] pub fn try_new_styled( locale: &str, format_type: sys::UListFormatterType, @@ -292,7 +291,6 @@ mod testing { } #[test] - #[cfg(feature = "icu_version_67_plus")] fn test_formatting_styled() { let array = ["Kwik", "Kwek", "Kwak"]; let formatter = crate::UListFormatter::try_new_styled( diff --git a/rust_icu_uloc/Cargo.toml b/rust_icu_uloc/Cargo.toml index 8a0b44d2..3bd1d7dd 100644 --- a/rust_icu_uloc/Cargo.toml +++ b/rust_icu_uloc/Cargo.toml @@ -54,30 +54,6 @@ icu_version_in_env = [ "rust_icu_uenum/icu_version_in_env", "rust_icu_ustring/icu_version_in_env", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_uenum/icu_version_64_plus", - "rust_icu_ustring/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_uenum/icu_version_67_plus", - "rust_icu_ustring/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_uenum/icu_version_68_plus", - "rust_icu_ustring/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_uenum/icu_version_69_max", - "rust_icu_ustring/icu_version_69_max", -] [build-dependencies] anyhow = "1.0" diff --git a/rust_icu_uloc/src/lib.rs b/rust_icu_uloc/src/lib.rs index 2a60c109..87363b3d 100644 --- a/rust_icu_uloc/src/lib.rs +++ b/rust_icu_uloc/src/lib.rs @@ -395,7 +395,6 @@ impl ULoc { } /// Implements `uloc_openAvailableByType`. - #[cfg(feature = "icu_version_67_plus")] pub fn open_available_by_type(locale_type: ULocAvailableType) -> Result { let mut status = common::Error::OK_CODE; unsafe { @@ -406,7 +405,6 @@ impl ULoc { } /// Returns a vector of locales of the requested type. - #[cfg(feature = "icu_version_67_plus")] pub fn get_available_locales_by_type(locale_type: ULocAvailableType) -> Vec { if locale_type == ULocAvailableType::ULOC_AVAILABLE_COUNT { panic!("ULOC_AVAILABLE_COUNT is for internal use only"); @@ -829,7 +827,6 @@ mod tests { // This test yields a different result in ICU versions prior to 64: // "zh-Latn@collation=pinyin". - #[cfg(feature = "icu_version_64_plus")] #[test] fn test_variant() -> Result<(), Error> { let loc = ULoc::try_from("zh-Latn-pinyin")?; @@ -849,7 +846,6 @@ mod tests { Ok(()) } - #[cfg(feature = "icu_version_64_plus")] #[test] fn test_name() -> Result<(), Error> { let loc = ULoc::try_from("en-US")?; @@ -1034,34 +1030,6 @@ mod tests { ); } - // This tests verifies buggy behavior which is fixed since ICU version 67.1 - #[cfg(not(feature = "icu_version_67_plus"))] - #[test] - fn test_accept_language_exact_match() { - let accept_list: Result, _> = vec!["es_ES", "ar_EG", "fr_FR"] - .into_iter() - .map(ULoc::try_from) - .collect(); - let accept_list = accept_list.expect("make accept_list"); - - let available_locales: Result, _> = vec!["de_DE", "en_US", "es_MX", "ar_EG"] - .into_iter() - .map(ULoc::try_from) - .collect(); - let available_locales = available_locales.expect("make available_locales"); - - let actual = accept_language(accept_list, available_locales).expect("call accept_language"); - assert_eq!( - actual, - ( - // "es_MX" should be preferred as a fallback over exact match "ar_EG". - ULoc::try_from("ar_EG").ok(), - UAcceptResult::ULOC_ACCEPT_VALID - ) - ); - } - - #[cfg(feature = "icu_version_67_plus")] #[test] fn test_accept_language_exact_match() { let accept_list: Result, _> = vec!["es_ES", "ar_EG", "fr_FR"] @@ -1216,7 +1184,6 @@ mod tests { assert_eq!(ULoc::for_language_tag("sr-u-tz-uslax").unwrap(), loc); } - #[cfg(feature = "icu_version_64_plus")] #[test] fn test_for_language_error() { let loc = ULoc::for_language_tag("en_US").unwrap(); @@ -1224,7 +1191,6 @@ mod tests { assert_eq!(loc.country(), None); } - #[cfg(feature = "icu_version_64_plus")] #[test] fn test_iso3_language() { let loc = ULoc::for_language_tag("en-US").unwrap(); @@ -1235,7 +1201,6 @@ mod tests { assert_eq!(iso_lang, None); } - #[cfg(feature = "icu_version_64_plus")] #[test] fn test_iso3_country() { let loc = ULoc::for_language_tag("en-US").unwrap(); @@ -1246,7 +1211,6 @@ mod tests { assert_eq!(iso_country, None); } - #[cfg(feature = "icu_version_64_plus")] #[test] fn test_display_language() { let english_locale = ULoc::for_language_tag("en").unwrap(); @@ -1260,7 +1224,6 @@ mod tests { assert_eq!(root_locale.display_language(&french_locale).unwrap().as_string_debug(), "langue indéterminée"); } - #[cfg(feature = "icu_version_64_plus")] #[test] fn test_display_script() { let english_latin_locale = ULoc::for_language_tag("en-latg").unwrap(); @@ -1301,7 +1264,6 @@ mod tests { assert_eq!(calendar_value_in_french.unwrap().as_string_debug(), "calendrier hébraïque"); } - #[cfg(feature = "icu_version_64_plus")] #[test] fn test_display_name() { let loc = ULoc::for_language_tag("az-Cyrl-AZ-u-ca-hebrew-t-it-x-whatever").unwrap(); @@ -1345,7 +1307,6 @@ mod tests { assert!(locale.is_ok()); } - #[cfg(feature = "icu_version_67_plus")] #[test] fn test_get_available_locales_by_type() { let locales1 = ULoc::get_available_locales_by_type(ULocAvailableType::ULOC_AVAILABLE_DEFAULT); @@ -1371,14 +1332,12 @@ mod tests { assert!(alias_locales.contains(&ULoc::try_from("ars").unwrap())); } - #[cfg(feature = "icu_version_67_plus")] #[test] #[should_panic(expected = "ULOC_AVAILABLE_COUNT is for internal use only")] fn test_get_available_locales_by_type_panic() { ULoc::get_available_locales_by_type(ULocAvailableType::ULOC_AVAILABLE_COUNT); } - #[cfg(feature = "icu_version_67_plus")] #[test] fn test_get_available_locales_by_type_error() { assert!(!ULoc::open_available_by_type(ULocAvailableType::ULOC_AVAILABLE_COUNT).is_ok()); diff --git a/rust_icu_umsg/Cargo.toml b/rust_icu_umsg/Cargo.toml index c94e749a..60831483 100644 --- a/rust_icu_umsg/Cargo.toml +++ b/rust_icu_umsg/Cargo.toml @@ -56,30 +56,6 @@ icu_version_in_env = [ "rust_icu_uloc/icu_version_in_env", "rust_icu_ustring/icu_version_in_env", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_uloc/icu_version_64_plus", - "rust_icu_ustring/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_uloc/icu_version_67_plus", - "rust_icu_ustring/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_uloc/icu_version_68_plus", - "rust_icu_ustring/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_uloc/icu_version_69_max", - "rust_icu_ustring/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_unorm2/Cargo.toml b/rust_icu_unorm2/Cargo.toml index 2da39a0a..e9f24b45 100644 --- a/rust_icu_unorm2/Cargo.toml +++ b/rust_icu_unorm2/Cargo.toml @@ -67,38 +67,6 @@ icu_version_in_env = [ "rust_icu_uloc/icu_version_in_env", "rust_icu_ustring/icu_version_in_env", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_ucal/icu_version_64_plus", - "rust_icu_uenum/icu_version_64_plus", - "rust_icu_uloc/icu_version_64_plus", - "rust_icu_ustring/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_ucal/icu_version_67_plus", - "rust_icu_uenum/icu_version_67_plus", - "rust_icu_uloc/icu_version_67_plus", - "rust_icu_ustring/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_ucal/icu_version_68_plus", - "rust_icu_uenum/icu_version_68_plus", - "rust_icu_uloc/icu_version_68_plus", - "rust_icu_ustring/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_ucal/icu_version_69_max", - "rust_icu_uenum/icu_version_69_max", - "rust_icu_uloc/icu_version_69_max", - "rust_icu_ustring/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_unum/Cargo.toml b/rust_icu_unum/Cargo.toml index c875b244..b1a63383 100644 --- a/rust_icu_unum/Cargo.toml +++ b/rust_icu_unum/Cargo.toml @@ -59,34 +59,6 @@ icu_version_in_env = [ "rust_icu_uloc/icu_version_in_env", "rust_icu_ustring/icu_version_in_env", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_uformattable/icu_version_64_plus", - "rust_icu_uloc/icu_version_64_plus", - "rust_icu_ustring/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_uformattable/icu_version_67_plus", - "rust_icu_uloc/icu_version_67_plus", - "rust_icu_ustring/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_uformattable/icu_version_68_plus", - "rust_icu_uloc/icu_version_68_plus", - "rust_icu_ustring/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_uformattable/icu_version_69_max", - "rust_icu_uloc/icu_version_69_max", - "rust_icu_ustring/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_unumberformatter/Cargo.toml b/rust_icu_unumberformatter/Cargo.toml index 1ec150cf..35b9cd22 100644 --- a/rust_icu_unumberformatter/Cargo.toml +++ b/rust_icu_unumberformatter/Cargo.toml @@ -64,38 +64,6 @@ icu_version_in_env = [ "rust_icu_unum/icu_version_in_env", "rust_icu_ustring/icu_version_in_env", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_uformattable/icu_version_64_plus", - "rust_icu_uloc/icu_version_64_plus", - "rust_icu_unum/icu_version_64_plus", - "rust_icu_ustring/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_uformattable/icu_version_67_plus", - "rust_icu_uloc/icu_version_67_plus", - "rust_icu_unum/icu_version_67_plus", - "rust_icu_ustring/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_uformattable/icu_version_68_plus", - "rust_icu_uloc/icu_version_68_plus", - "rust_icu_unum/icu_version_68_plus", - "rust_icu_ustring/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_uformattable/icu_version_69_max", - "rust_icu_uloc/icu_version_69_max", - "rust_icu_unum/icu_version_69_max", - "rust_icu_ustring/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_unumberformatter/src/lib.rs b/rust_icu_unumberformatter/src/lib.rs index 45965089..1d7ed58e 100644 --- a/rust_icu_unumberformatter/src/lib.rs +++ b/rust_icu_unumberformatter/src/lib.rs @@ -72,47 +72,25 @@ impl UNumberFormatter { ) -> Result { let mut status = sys::UErrorCode::U_ZERO_ERROR; - // Uses the "with error" flavor of the constructor for ICU versions upwards of - // 64. This allows more elaborate error messages in case of an issue. - #[cfg(feature = "icu_version_64_plus")] - { - let mut parse_status = common::NO_PARSE_ERROR.clone(); - let rep = unsafe { - assert!(common::Error::is_ok(status)); - versioned_function!(unumf_openForSkeletonAndLocaleWithError)( - skeleton.as_c_ptr(), - skeleton.len() as i32, - locale.label().as_ptr() as *const std::os::raw::c_char, - &mut parse_status, - &mut status, - ) - }; - assert_ne!(rep, 0 as *mut sys::UNumberFormatter); - common::parse_ok(parse_status)?; - common::Error::ok_or_warning(status)?; - let result = UNumberFormatter { - rep: std::ptr::NonNull::new(rep).unwrap(), - }; - return Ok(result); - } - #[cfg(not(feature = "icu_version_64_plus"))] - { - let rep = unsafe { - assert!(common::Error::is_ok(status)); - versioned_function!(unumf_openForSkeletonAndLocale)( - skeleton.as_c_ptr(), - skeleton.len() as i32, - locale.label().as_ptr() as *const std::os::raw::c_char, - &mut status, - ) - }; - assert_ne!(rep, 0 as *mut sys::UNumberFormatter); - common::Error::ok_or_warning(status)?; - let result = UNumberFormatter { - rep: std::ptr::NonNull::new(rep).unwrap(), - }; - return Ok(result); - } + // Uses the "with error" flavor of the constructor, which allows more + // elaborate error messages in case of an issue. + let mut parse_status = common::NO_PARSE_ERROR.clone(); + let rep = unsafe { + assert!(common::Error::is_ok(status)); + versioned_function!(unumf_openForSkeletonAndLocaleWithError)( + skeleton.as_c_ptr(), + skeleton.len() as i32, + locale.label().as_ptr() as *const std::os::raw::c_char, + &mut parse_status, + &mut status, + ) + }; + assert_ne!(rep, 0 as *mut sys::UNumberFormatter); + common::parse_ok(parse_status)?; + common::Error::ok_or_warning(status)?; + Ok(UNumberFormatter { + rep: std::ptr::NonNull::new(rep).unwrap(), + }) } /// Similar to [UNumberFormatter::try_new_ustring] but uses Rust types. diff --git a/rust_icu_upluralrules/Cargo.toml b/rust_icu_upluralrules/Cargo.toml index 96852fc0..1bdebc22 100644 --- a/rust_icu_upluralrules/Cargo.toml +++ b/rust_icu_upluralrules/Cargo.toml @@ -54,30 +54,6 @@ icu_version_in_env = [ "rust_icu_uenum/icu_version_in_env", "rust_icu_ustring/icu_version_in_env", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_uenum/icu_version_64_plus", - "rust_icu_ustring/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_uenum/icu_version_67_plus", - "rust_icu_ustring/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_uenum/icu_version_68_plus", - "rust_icu_ustring/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_uenum/icu_version_69_max", - "rust_icu_ustring/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_ures/Cargo.toml b/rust_icu_ures/Cargo.toml index 7231553b..bd46aa87 100644 --- a/rust_icu_ures/Cargo.toml +++ b/rust_icu_ures/Cargo.toml @@ -46,26 +46,6 @@ icu_version_in_env = [ "rust_icu_common/icu_version_in_env", "rust_icu_uenum/icu_version_in_env", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_uenum/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_uenum/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_uenum/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_uenum/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_ustring/Cargo.toml b/rust_icu_ustring/Cargo.toml index 77ffdddb..bfa5fb6d 100644 --- a/rust_icu_ustring/Cargo.toml +++ b/rust_icu_ustring/Cargo.toml @@ -29,21 +29,5 @@ use-bindgen = ["rust_icu_sys/use-bindgen", "rust_icu_common/use-bindgen"] renaming = ["rust_icu_sys/renaming", "rust_icu_common/renaming"] icu_config = ["rust_icu_sys/icu_config", "rust_icu_common/icu_config"] icu_version_in_env = ["rust_icu_sys/icu_version_in_env", "rust_icu_common/icu_version_in_env"] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", -] diff --git a/rust_icu_utext/Cargo.toml b/rust_icu_utext/Cargo.toml index f28e21da..f41c38c4 100644 --- a/rust_icu_utext/Cargo.toml +++ b/rust_icu_utext/Cargo.toml @@ -28,22 +28,6 @@ use-bindgen = ["rust_icu_sys/use-bindgen", "rust_icu_common/use-bindgen"] renaming = ["rust_icu_sys/renaming", "rust_icu_common/renaming"] icu_config = ["rust_icu_sys/icu_config", "rust_icu_common/icu_config"] icu_version_in_env = ["rust_icu_sys/icu_version_in_env", "rust_icu_common/icu_version_in_env"] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", -] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", -] [badges] maintenance = { status = "actively-developed" } diff --git a/rust_icu_utrans/Cargo.toml b/rust_icu_utrans/Cargo.toml index 0c6e7ca7..2fe7c6bb 100644 --- a/rust_icu_utrans/Cargo.toml +++ b/rust_icu_utrans/Cargo.toml @@ -36,18 +36,6 @@ icu_config = [ "rust_icu_uenum/icu_config", "rust_icu_ustring/icu_config", ] -icu_version_64_plus = [ - "rust_icu_common/icu_version_64_plus", - "rust_icu_sys/icu_version_64_plus", - "rust_icu_uenum/icu_version_64_plus", - "rust_icu_ustring/icu_version_64_plus", -] -icu_version_67_plus = [ - "rust_icu_common/icu_version_67_plus", - "rust_icu_sys/icu_version_67_plus", - "rust_icu_uenum/icu_version_67_plus", - "rust_icu_ustring/icu_version_67_plus", -] icu_version_in_env = [ "rust_icu_common/icu_version_in_env", "rust_icu_sys/icu_version_in_env", @@ -66,18 +54,6 @@ use-bindgen = [ "rust_icu_uenum/use-bindgen", "rust_icu_ustring/use-bindgen", ] -icu_version_68_plus = [ - "rust_icu_common/icu_version_68_plus", - "rust_icu_sys/icu_version_68_plus", - "rust_icu_uenum/icu_version_68_plus", - "rust_icu_ustring/icu_version_68_plus", -] -icu_version_69_max = [ - "rust_icu_common/icu_version_69_max", - "rust_icu_sys/icu_version_69_max", - "rust_icu_uenum/icu_version_69_max", - "rust_icu_ustring/icu_version_69_max", -] [badges] is-it-maintained-issue-resolution = { repository = "google/rust_icu" }