pub const AVX: bool = cfg!(target_feature="avx");
pub const AVX2: bool = cfg!(target_feature="avx2");
pub const CRT_STATIC: bool = cfg!(target_feature="crt-static");
pub const RDRAND: bool = cfg!(target_feature="rdrand");
pub const SSE: bool = cfg!(target_feature="sse");
pub const SSE_2: bool = cfg!(target_feature="sse2");
pub const SSE_4_1: bool = cfg!(target_feature="sse4.1");
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
pub struct cfg_target_feature_info {
pub avx: bool,
pub avx2: bool,
pub crt_static: bool,
pub rdrand: bool,
pub sse: bool,
pub sse_2: bool,
pub sse_4_1: bool,
}
pub const ALL_INFO: cfg_target_feature_info = all_info();
pub const fn all_info() -> cfg_target_feature_info {
cfg_target_feature_info {
avx: AVX,
avx2: AVX2,
crt_static: CRT_STATIC,
rdrand: RDRAND,
sse: SSE,
sse_2: SSE_2,
sse_4_1: SSE_4_1,
}
}
#[cfg(feature = "json")]
impl cfg_target_feature_info {
pub fn to_json(&self) -> serde_json::Value {
serde_json::json!({
"avx": self.avx,
"avx2": self.avx2,
"crt_static": self.crt_static,
"rdrand": self.rdrand,
"sse": self.sse,
"sse_2": self.sse_2,
"sse_4_1": self.sse_4_1,
})
}
}