made audio and monitors slimes conditional behind features
This commit is contained in:
@@ -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"]
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user