use crate::{decode_browser_name, utils::PooledStr};
include!("generated/baseline.rs");
static CORE_BROWSERS: &[&str] = &[
"and_chr", "and_ff", "chrome", "edge", "firefox", "ios_saf", "safari",
];
pub fn is_core_browser(name: &str) -> bool {
CORE_BROWSERS.contains(&name)
}
pub fn browsers() -> impl Iterator<Item = &'static str> {
BASELINE_BROWSERS.iter().map(|&id| decode_browser_name(id))
}
pub fn min_versions_on(
cutoff_date: u32,
) -> Option<impl Iterator<Item = (&'static str, &'static str)>> {
let index = BASELINE_TIMELINE.partition_point(|(date, ..)| *date <= cutoff_date);
index.checked_sub(1).map(|index| {
let (_, start, end) = BASELINE_TIMELINE[index];
BASELINE_VERSIONS[usize::from(start)..usize::from(end)]
.iter()
.map(|(id, version)| (decode_browser_name(*id), version.as_str()))
})
}