preserves/implementations/rust/preserves-schema/src/lib.rs

46 lines
1.3 KiB
Rust
Raw Normal View History

2021-06-28 14:35:45 +00:00
pub mod syntax;
pub mod compiler;
2021-06-29 20:32:35 +00:00
pub mod support;
pub mod gen;
2021-06-28 14:35:45 +00:00
#[cfg(test)]
mod tests {
#[test]
fn can_access_preserves_core() {
use preserves::value::*;
assert_eq!(format!("{:?}", UnwrappedIOValue::from(3 + 4)), "7");
}
#[test]
fn simple_rendering() {
use crate::*;
use crate::syntax::block::*;
let code = semiblock![
seq!["f", parens!["a", "b", "c"]],
seq!["f", parens!["a", "b", "c"]],
seq!["f", parens!["a", "b", "c"]],
seq!["f", parens!["a", "b", "c"]],
seq!["f", parens!["a", "b", "c"]],
seq!["f", parens!["a", "b", "c"]],
seq!["g", parens![]],
parens![]
];
println!("{}", Formatter::to_string(&code));
}
#[test]
fn metaschema_parsing() -> Result<(), std::io::Error> {
2021-06-29 14:54:29 +00:00
use preserves::value::{IOValue, Reader};
2021-06-28 14:35:45 +00:00
use std::convert::TryFrom;
2021-06-29 14:54:29 +00:00
use std::convert::From;
2021-06-28 14:35:45 +00:00
let mut f = std::fs::File::open("../../../schema/schema.bin")?;
let mut reader = preserves::value::PackedReader::decode_read(&mut f);
let schema = reader.demand_next(false)?;
2021-06-29 20:32:35 +00:00
let parsed = crate::gen::schema::Schema::try_from(&schema).expect("successful parse");
2021-06-29 14:54:29 +00:00
assert_eq!(schema, IOValue::from(&parsed));
2021-06-28 14:35:45 +00:00
Ok(())
}
}