#![feature(type_alias_impl_trait)] #![feature(impl_trait_in_fn_trait_return)] pub(crate) use std::{fmt::{Debug, Formatter, Error as FormatError}}; mod edn_error; pub use self::edn_error::*; mod edn_item; pub use self::edn_item::*; mod edn_iter; pub use self::edn_iter::*; mod edn_token; pub use self::edn_token::*; #[cfg(test)] #[test] fn test_edn () -> Result<(), ParseError> { use EdnItem::*; assert_eq!(EdnItem::::read_all("")?, vec![]); assert_eq!(EdnItem::::read_all(" ")?, vec![]); assert_eq!(EdnItem::::read_all("1234")?, vec![Num(1234)]); assert_eq!(EdnItem::::read_all("1234 5 67")?, vec![Num(1234), Num(5), Num(67)]); assert_eq!(EdnItem::::read_all("foo/bar")?, vec![Key("foo/bar".into())]); assert_eq!(EdnItem::::read_all(":symbol")?, vec![Sym(":symbol".into())]); assert_eq!(EdnItem::::read_all(" foo/bar :baz 456")?, vec![Key("foo/bar".into()), Sym(":baz".into()), Num(456)]); assert_eq!(EdnItem::::read_all(" (foo/bar :baz 456) ")?, vec![Exp(vec![Key("foo/bar".into()), Sym(":baz".into()), Num(456)])]); Ok(()) } #[cfg(test)] #[test] fn test_edn_layout () -> Result<(), ParseError> { EdnItem::::read_all(include_str!("../../tek/examples/edn01.edn"))?; EdnItem::::read_all(include_str!("../../tek/examples/edn02.edn"))?; //panic!("{layout:?}"); //let content = >::from(&layout); Ok(()) } #[macro_export] macro_rules! from_edn { ($($x:tt)*) => {} }