use crate::DisplayConfig;
use console::style;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(default)]
pub struct CompressionConfig {
pub enabled: bool,
pub algorithms: Vec<String>,
pub display: bool,
}
impl DisplayConfig for CompressionConfig {
fn display(&self) {
if !self.display {
return;
}
println!("\n{}", style("Compression Configuration:").bold());
if self.enabled {
if self.algorithms.is_empty() {
println!(" ↳ {}", style("No algorithms enabled").yellow());
} else {
println!(" ↳ Algorithms: {}", self.algorithms.join(", "));
}
} else {
println!(" ↳ {}", style("Compression: disabled").red());
}
}
}
impl Default for CompressionConfig {
fn default() -> Self {
CompressionConfig {
enabled: false,
algorithms: Vec::new(),
display: false,
}
}
}