use multiio::{ErrorPolicy, MultiioBuilder, default_registry};
use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize)]
struct Config {
name: String,
value: i32,
enabled: bool,
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let registry = default_registry();
let engine = MultiioBuilder::new(registry)
.add_input("examples/data/config.json")
.add_output("-") .with_mode(ErrorPolicy::FastFail)
.build()?;
let configs: Vec<Config> = engine.read_all()?;
println!("Read {} config(s):", configs.len());
for config in &configs {
println!(
" - {}: {} (enabled: {})",
config.name, config.value, config.enabled
);
}
engine.write_all(&configs)?;
Ok(())
}