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