We already do this for a number of crates, e.g. `rustc_middle`, `rustc_span`, `rustc_metadata`, `rustc_span`, `rustc_errors`. For the ones we don't, in many cases the attributes are a mess. - There is no consistency about order of attribute kinds (e.g. `allow`/`deny`/`feature`). - Within attribute kind groups (e.g. the `feature` attributes), sometimes the order is alphabetical, and sometimes there is no particular order. - Sometimes the attributes of a particular kind aren't even grouped all together, e.g. there might be a `feature`, then an `allow`, then another `feature`. This commit extends the existing sorting to all compiler crates, increasing consistency. If any new attribute line is added there is now only one place it can go -- no need for arbitrary decisions. Exceptions: - `rustc_log`, `rustc_next_trait_solver` and `rustc_type_ir_macros`, because they have no crate attributes. - `rustc_codegen_gcc`, because it's quasi-external to rustc (e.g. it's ignored in `rustfmt.toml`).
52 lines
2.1 KiB
Rust
52 lines
2.1 KiB
Rust
//! This crate contains pre-baked ICU4X data, generated by `icu4x-datagen`. The tool
|
|
//! fetches locale data from CLDR and transforms them into const code in statics that
|
|
//! ICU4X can load, via databake. `lib.rs` in this crate is manually written, but all
|
|
//! other code is generated.
|
|
//!
|
|
//! This crate can be regenerated when there's a new CLDR version, though that is unlikely
|
|
//! to result in changes in most cases (currently this only covers list formatting data, which
|
|
//! is rather stable). It may need to be regenerated when updating ICU4X versions, especially
|
|
//! across major versions, in case it fails to compile after an update.
|
|
//!
|
|
//! It must be regenerated when adding new locales to Rust, or if Rust's usage of ICU4X
|
|
//! grows to need more kinds of data.
|
|
//!
|
|
//! To regenerate the data, run this command:
|
|
//!
|
|
//! ```text
|
|
//! icu4x-datagen -W --pretty --fingerprint --use-separate-crates \
|
|
//! --format mod -l en es fr it ja pt ru tr zh zh-Hans zh-Hant \
|
|
//! -k list/and@1 fallback/likelysubtags@1 fallback/parents@1 fallback/supplement/co@1 \
|
|
//! --cldr-tag latest --icuexport-tag latest -o src/data
|
|
//! ```
|
|
|
|
// tidy-alphabetical-start
|
|
#![allow(elided_lifetimes_in_paths)]
|
|
#![allow(internal_features)]
|
|
#![doc(rust_logo)]
|
|
#![feature(rustdoc_internals)]
|
|
// tidy-alphabetical-end
|
|
|
|
mod data {
|
|
include!("data/mod.rs");
|
|
include!("data/any.rs");
|
|
}
|
|
|
|
pub use data::BakedDataProvider;
|
|
|
|
pub const fn baked_data_provider() -> BakedDataProvider {
|
|
data::BakedDataProvider
|
|
}
|
|
|
|
pub mod supported_locales {
|
|
pub const EN: icu_locid::Locale = icu_locid::locale!("en");
|
|
pub const ES: icu_locid::Locale = icu_locid::locale!("es");
|
|
pub const FR: icu_locid::Locale = icu_locid::locale!("fr");
|
|
pub const IT: icu_locid::Locale = icu_locid::locale!("it");
|
|
pub const JA: icu_locid::Locale = icu_locid::locale!("ja");
|
|
pub const PT: icu_locid::Locale = icu_locid::locale!("pt");
|
|
pub const RU: icu_locid::Locale = icu_locid::locale!("ru");
|
|
pub const TR: icu_locid::Locale = icu_locid::locale!("tr");
|
|
pub const ZH_HANS: icu_locid::Locale = icu_locid::locale!("zh-Hans");
|
|
pub const ZH_HANT: icu_locid::Locale = icu_locid::locale!("zh-Hant");
|
|
}
|