use serde::Deserialize;
#[derive(Clone, Default, Deserialize)]
#[non_exhaustive]
pub struct VerboseConfig {
pub header: bool,
pub body: bool,
}
impl VerboseConfig {
pub const fn new(header: bool, body: bool) -> Self {
Self { header, body }
}
}
impl std::fmt::Display for VerboseConfig {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let _ = writeln!(
f,
"[log.verbose] header = {}, body = {}",
if self.header { "Yes" } else { "No" },
if self.body { "Yes" } else { "No" }
);
Ok(())
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn new_sets_both_fields() {
let v = VerboseConfig::new(true, false);
assert!(v.header);
assert!(!v.body);
}
}