sonnerie 0.9.1

An easy timeseries database
Documentation
use sonnerie::Reader;
use std::io::Write;
use std::path::PathBuf;

fn main() -> std::io::Result<()> {
	use clap::Arg;
	let matches = clap::Command::new("get")
		.version("1.0")
		.author("Charles Samuels <kalle@eventures.vc>")
		.about("Dump a single transaction file data")
		.arg(
			Arg::new("db")
				.help("database file")
				.required(true)
				.action(clap::ArgAction::Set),
		)
		.arg(
			Arg::new("filter")
				.required(true)
				.action(clap::ArgAction::Set),
		)
		.get_matches();

	let db: &PathBuf = matches.get_one("db").unwrap();
	let filter: &String = matches.get_one("filter").unwrap();

	let stdout = std::io::stdout();
	let mut stdout = stdout.lock();

	let filter = sonnerie::Wildcard::new(filter);

	let w = std::fs::File::open(db)?;
	let r = Reader::new(w).unwrap();
	for record in r.left().unwrap().get_filter(&filter) {
		sonnerie::formatted::print_record(
			&record,
			&mut stdout,
			sonnerie::formatted::PrintTimestamp::Seconds,
			sonnerie::formatted::PrintRecordFormat::Yes,
			&choice_string::Selection::All,
		)?;
		writeln!(&mut stdout)?;
	}

	Ok(())
}