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"] } chrono = { version = "0.4.44", features = ["serde"] }
clap = { version = "4.6.0", features = ["derive"] } clap = { version = "4.6.0", features = ["derive"] }
colored = "3.1.1" colored = "3.1.1"
cpal = {version = "0.17.3", default-features = false} cpal = { version = "0.17.3", optional = true }
display-info = "0.5.9" display-info = { version = "0.5.9", optional = true }
mac_address = "1.1.8" mac_address = "1.1.8"
num_cpus = "1.17.0" num_cpus = "1.17.0"
reqwest = { version = "0.13.2", features = ["blocking", "json"] } reqwest = { version = "0.13.2", features = ["blocking", "json"] }
@@ -16,3 +16,8 @@ serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149" serde_json = "1.0.149"
sysinfo = "0.38.4" sysinfo = "0.38.4"
uuid = { version = "1.22.0", features = ["v4"] } 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>> { pub fn get_all_slimes() -> Vec<Box<dyn Slime>> {
vec![ let mut slimes: Vec<Box<dyn Slime>> = vec![
Box::new(OsSlime), Box::new(OsSlime),
Box::new(KernelSlime), Box::new(KernelSlime),
Box::new(HostnameSlime), Box::new(HostnameSlime),
@@ -50,10 +50,16 @@ pub fn get_all_slimes() -> Vec<Box<dyn Slime>> {
Box::new(CpuSlime), Box::new(CpuSlime),
Box::new(GpuSlime), Box::new(GpuSlime),
Box::new(RamSlime), Box::new(RamSlime),
Box::new(MonitorSlime),
Box::new(NetworkSlime), 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 /// OS name
@@ -282,7 +288,9 @@ impl Slime for GpuSlime {
} }
/// Monitors /// Monitors
#[cfg(feature = "monitors")]
pub struct MonitorSlime; pub struct MonitorSlime;
#[cfg(feature = "monitors")]
impl Slime for MonitorSlime { impl Slime for MonitorSlime {
fn label(&self) -> &str { fn label(&self) -> &str {
"Monitors" "Monitors"
@@ -396,7 +404,9 @@ impl Slime for NetworkSlime {
} }
/// Audio hardware /// Audio hardware
#[cfg(feature = "audio")]
pub struct AudioSlime; pub struct AudioSlime;
#[cfg(feature = "audio")]
impl Slime for AudioSlime { impl Slime for AudioSlime {
fn label(&self) -> &str { fn label(&self) -> &str {
"Audio" "Audio"