munyo 0.8.0

A data language which aims to be the most efficient way to handwrite data.
Documentation
use std::{fs, path::PathBuf, str::FromStr};

use crate::{
    builder::default_builder::DefaultMetaBuilder,
    error::{munyo_error::PathItem, parse_error::ParseError},
    lang::from_str_with_metabuilder::from_str_with_metabuilder,
    Error,
};

#[test]
fn it_works() -> Result<(), Error> {
    let path = "sample.munyo";
    let unparsed_file = fs::read_to_string(path).expect("cannot read file");
    let r = from_str_with_metabuilder(&unparsed_file, &DefaultMetaBuilder)
        .map_err(|e| Error::Parse(PathItem::new(PathBuf::from_str(path).ok()), e))?;

    println!("{}", r);

    Ok(())
}

#[test]
fn _output_sample() -> Result<(), ParseError> {
    let path = "sample.munyo";
    let unparsed_file = fs::read_to_string(path).expect("cannot read file");
    let r = from_str_with_metabuilder(&unparsed_file, &DefaultMetaBuilder)?;
    let txt = format!("{}", r);
    fs::write("sample_output.txt", &txt).unwrap();
    Ok(())
}

#[test]
fn errors() -> Result<(), ParseError> {
    let ss = vec![
        r#"
	indented first line
		some thing
"#,
        r#"some thing
		doubly indented
"#,
        r#"name |param || one space
"#,
    ];
    let s = ss[2];
    {
        match from_str_with_metabuilder(s, &DefaultMetaBuilder) {
            Ok(_) => {}
            Err(e) => println!("{}", e),
        }
    }
    Ok(())
}