made audio and monitors slimes conditional behind features

This commit is contained in:
2026-03-25 10:59:25 +01:00
parent a7ffaaeffb
commit 43172dea51
2 changed files with 21 additions and 6 deletions

View File

@@ -7,8 +7,8 @@ edition = "2024"
chrono = { version = "0.4.44", features = ["serde"] }
clap = { version = "4.6.0", features = ["derive"] }
colored = "3.1.1"
cpal = {version = "0.17.3", default-features = false}
display-info = "0.5.9"
cpal = { version = "0.17.3", optional = true }
display-info = { version = "0.5.9", optional = true }
mac_address = "1.1.8"
num_cpus = "1.17.0"
reqwest = { version = "0.13.2", features = ["blocking", "json"] }
@@ -16,3 +16,8 @@ serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"
sysinfo = "0.38.4"
uuid = { version = "1.22.0", features = ["v4"] }
[features]
default = []
audio = ["dep:cpal"]
monitors = ["dep:display-info"]

View File

@@ -42,7 +42,7 @@ pub trait Slime {
}
pub fn get_all_slimes() -> Vec<Box<dyn Slime>> {
vec![
let mut slimes: Vec<Box<dyn Slime>> = vec![
Box::new(OsSlime),
Box::new(KernelSlime),
Box::new(HostnameSlime),
@@ -50,10 +50,16 @@ pub fn get_all_slimes() -> Vec<Box<dyn Slime>> {
Box::new(CpuSlime),
Box::new(GpuSlime),
Box::new(RamSlime),
Box::new(MonitorSlime),
Box::new(NetworkSlime),
Box::new(AudioSlime),
]
];
#[cfg(feature = "monitors")]
slimes.push(Box::new(MonitorSlime));
#[cfg(feature = "audio")]
slimes.push(Box::new(AudioSlime));
slimes
}
/// OS name
@@ -282,7 +288,9 @@ impl Slime for GpuSlime {
}
/// Monitors
#[cfg(feature = "monitors")]
pub struct MonitorSlime;
#[cfg(feature = "monitors")]
impl Slime for MonitorSlime {
fn label(&self) -> &str {
"Monitors"
@@ -396,7 +404,9 @@ impl Slime for NetworkSlime {
}
/// Audio hardware
#[cfg(feature = "audio")]
pub struct AudioSlime;
#[cfg(feature = "audio")]
impl Slime for AudioSlime {
fn label(&self) -> &str {
"Audio"