notation_tab 0.6.0

Fun notation - tab tools
Documentation
use std::fs::File;
use std::io::Write;

use ron::ser::{to_string_pretty, PrettyConfig};

use notation_proto::prelude::*;

pub fn convert_tab(tab: &Tab) -> String {
    let pretty = PrettyConfig::new()
        .separate_tuple_members(true)
        .enumerate_arrays(true);
    to_string_pretty(&tab, pretty).expect("Serialization failed")
}

pub fn print_tab(tab: &Tab) {
    let s = convert_tab(tab);
    println!("{}", s);
}

pub fn write_tab(tab: &Tab, path: &'static str) {
    let s = convert_tab(tab);
    let mut file = File::create(path).unwrap();
    file.write_all(s.as_bytes()).unwrap();
    println!("Tab written to: `{}` [{}] - {}", path, s.len(), tab);
}