oxc-browserslist 3.0.4

Rust-ported Browserslist for Oxc.
Documentation
use super::{Distrib, QueryResult};
use crate::data::{
    caniuse::{CANIUSE_GLOBAL_USAGE, GLOBAL_USAGE_VERSIONS},
    decode_browser_name, unpack_str,
};

pub(super) fn cover(coverage: f32) -> QueryResult {
    let mut distribs = vec![];
    let mut total = 0.0;
    for (name, version, usage) in CANIUSE_GLOBAL_USAGE {
        if total >= coverage || *usage == 0.0 {
            break;
        }
        let version = unpack_str(GLOBAL_USAGE_VERSIONS, *version);
        distribs.push(Distrib::new(decode_browser_name(*name), version));
        total += usage;
    }
    Ok(distribs)
}