I need a TOML array. ·
rust
r/o

tomlarray / src / main.rs

1
use std::error::Error;
2
3
use toml::{Value, map::Map};
4
5
fn usage() -> ! {
6
eprintln!("usage:");
7
eprintln!(" tomlarray KEY [STRING ...]");
8
eprintln!(" Dump a TOML array to stdout with the given key, containing the given strings.");
9
std::process::exit(1);
10
}
11
12
fn main() -> Result<(), Box<dyn Error>> {
13
let mut args = std::env::args_os().skip(1);
14
15
let Some(key) = args.next() else {
16
usage();
17
};
18
let key = key.into_string().expect("bad UTF-8 in input");
19
20
let values = args
21
.map(|a| a.into_string().expect("bad UTF-8 in input"))
22
.collect::<Vec<_>>();
23
24
let mut map = Map::new();
25
map.insert(
26
key.into(),
27
Value::Array(values.into_iter().map(|s| s.into()).collect()),
28
);
29
let table = Value::Table(map);
30
println!("{}", toml::to_string(&table)?);
31
32
Ok(())
33
}
34