oxc-browserslist 5.0.0

Rust-ported Browserslist for Oxc.
Documentation
use crate::data::caniuse::{compression::LazyData, region::RegionData};
static KEYS: LazyData<Vec<String>> =
    LazyData::new(include_bytes!("caniuse_region_keys.bin.deflate"));
static RANGES: &[u16] = &[
    0u16, 196u16, 398u16, 655u16, 835u16, 1002u16, 1178u16, 1372u16, 1596u16, 1798u16, 1936u16,
    2163u16, 2413u16, 2589u16, 2802u16, 3080u16, 3286u16, 3468u16, 3686u16, 3934u16, 4133u16,
    4369u16, 4578u16, 4795u16, 5048u16, 5170u16, 5389u16, 5572u16, 5797u16, 5985u16, 6185u16,
    6393u16, 6610u16, 6789u16, 7038u16, 7275u16, 7460u16, 7632u16, 7885u16, 8089u16, 8202u16,
    8384u16, 8652u16, 8947u16, 9128u16, 9315u16, 9603u16, 9797u16, 9862u16, 10053u16, 10304u16,
    10602u16, 10780u16, 10992u16, 11158u16, 11336u16, 11582u16, 11763u16, 11981u16, 12221u16,
    12345u16, 12567u16, 12805u16, 13062u16, 13278u16, 13382u16, 13520u16, 13689u16, 13963u16,
    14155u16, 14397u16, 14569u16, 14828u16, 15005u16, 15166u16, 15427u16, 15595u16, 15747u16,
    15961u16, 16193u16, 16372u16, 16568u16, 16777u16, 16974u16, 17153u16, 17323u16, 17513u16,
    17794u16, 17978u16, 18190u16, 18430u16, 18659u16, 18880u16, 19086u16, 19324u16, 19487u16,
    19685u16, 19881u16, 20156u16, 20343u16, 20600u16, 20774u16, 20970u16, 21158u16, 21431u16,
    21640u16, 21821u16, 22048u16, 22200u16, 22368u16, 22531u16, 22603u16, 22826u16, 23016u16,
    23182u16, 23398u16, 23604u16, 23804u16, 24000u16, 24162u16, 24348u16, 24567u16, 24748u16,
    24996u16, 25215u16, 25423u16, 25663u16, 25889u16, 26044u16, 26245u16, 26445u16, 26703u16,
    26814u16, 27021u16, 27224u16, 27467u16, 27687u16, 27902u16, 28047u16, 28223u16, 28428u16,
    28529u16, 28719u16, 28915u16, 29104u16, 29340u16, 29549u16, 29771u16, 30013u16, 30223u16,
    30420u16, 30652u16, 30724u16, 30962u16, 31145u16, 31414u16, 31674u16, 31879u16, 31973u16,
    32055u16, 32303u16, 32493u16, 32685u16, 32879u16, 33053u16, 33266u16, 33487u16, 33724u16,
    33970u16, 34094u16, 34161u16, 34369u16, 34557u16, 34780u16, 34896u16, 35069u16, 35256u16,
    35464u16, 35699u16, 35941u16, 36225u16, 36471u16, 36687u16, 36864u16, 37119u16, 37325u16,
    37580u16, 37836u16, 37929u16, 38138u16, 38347u16, 38583u16, 38718u16, 38909u16, 39111u16,
    39284u16, 39419u16, 39612u16, 39841u16, 40053u16, 40218u16, 40421u16, 40621u16, 40827u16,
    41043u16, 41282u16, 41429u16, 41642u16, 41805u16, 42068u16, 42255u16, 42370u16, 42629u16,
    42880u16, 43127u16, 43373u16, 43650u16, 43838u16, 44013u16, 44110u16, 44287u16, 44456u16,
    44644u16, 44830u16, 45049u16, 45178u16, 45297u16, 45484u16, 45689u16, 45858u16, 46083u16,
    46315u16, 46561u16, 46755u16, 46861u16, 47116u16, 47352u16, 47593u16, 47812u16, 48000u16,
    48255u16,
];
pub fn get_usage_by_region(name: &str) -> Option<RegionData> {
    let index = KEYS.get().binary_search_by(|key| key.as_str().cmp(name)).ok()?;
    Some(RegionData::new(RANGES[index].into(), RANGES[index + 1].into()))
}