xtap_core_lib/
self_check.rs1pub fn run_self_check() -> Vec<String> {
6 let mut issues = Vec::new();
7
8 #[cfg(target_arch = "x86_64")]
9 if !std::is_x86_feature_detected!("avx2") {
10 issues.push("CPU 不支持 AVX2,图像处理性能可能下降".into());
11 }
12
13 if let Ok(cpus) = std::thread::available_parallelism() {
14 if cpus.get() < 2 {
15 issues.push(format!("可用核心数 {},建议至少 2 核", cpus));
16 }
17 }
18
19 issues
20}
21
22pub fn validate_pixel_buffer(buf: &[f32]) -> bool {
24 for &v in buf {
25 if !v.is_finite() {
26 return false;
27 }
28 }
29 true
30}
31
32pub fn validate_param_in_range(name: &str, value: f32, min: f32, max: f32) -> Option<String> {
34 if !value.is_finite() {
35 return Some(format!("{} = {} 不是有效浮点数", name, value));
36 }
37 if value < min || value > max {
38 return Some(format!("{} = {} 超出范围 [{}, {}]", name, value, min, max));
39 }
40 None
41}