use super::HardwareCaps;
pub fn startup_banner(caps: &HardwareCaps, detector_count: usize, pattern_count: usize) -> String {
let gpu = if let Some(name) = &caps.gpu_name {
if caps.gpu_is_software {
format!("GPU: {name} (software, ignored)")
} else {
format!("GPU: {name}")
}
} else {
"GPU: none".to_string()
};
let simd = if caps.has_avx512 {
"AVX-512"
} else if caps.has_avx2 {
"AVX2"
} else if caps.has_neon {
"NEON"
} else {
"scalar"
};
let hs = if caps.hyperscan_available {
"Hyperscan"
} else {
"AC"
};
let uring = if caps.io_uring_available {
" io_uring"
} else {
""
};
format!(
"{} cores | {} | SIMD: {} | {} | {detector_count} detectors ({pattern_count} patterns){uring}",
caps.physical_cores, gpu, simd, hs,
)
}