use tblgen::TableGenParser;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let source = r#"
def MyRecord {
int value = 42;
}
"#;
let keeper = TableGenParser::new().add_source(source)?.parse()?;
let rec = keeper.def("MyRecord")?;
println!("value = {}", rec.int_value("value")?);
if let Err(e) = rec.string_value("value") {
println!("\nWithout source info:\n {}", e);
println!("\nWith source info:");
println!("{}", e.add_source_info(keeper.source_info()));
}
if let Err(e) = rec.int_value("nonexistent") {
println!("Missing field error: {}", e);
}
if let Err(e) = keeper.def("DoesNotExist") {
println!("Missing def error: {}", e);
}
Ok(())
}