cargo-binstall/crates/leon-macros/tests/parsing.rs
Jiahao XU 5683ca2476
Add new crate leon-macros that provide template! with identical syntax as runtime parsing (#946)
`leon_macros::template!` can parse template at compile-time.
It accepts a utf-8 string literal and uses `leon` internally to parse it, then generate code that evaluates to `Template<'static>`.

 - Exclude fuzz from crate leon when publishing
 - Impl fn-like proc-macro `leon_macros::template!`
 - Add dep `leon-macros` to binstalk
 - Use `leon_macros::template!` in `binstalk::fetchers::gh_crate_meta::hosting`
 - Add doc for `leon-macros` in `leon`
 - Improve `std::fmt::Display` impl for `leon::ParseError`
 - Fixed broken infra link in leon

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-04-17 14:50:58 +10:00

21 lines
494 B
Rust

use leon::{Item, Template};
#[test]
fn test() {
assert_eq!(leon_macros::template!(""), Template::new(&[], None),);
assert_eq!(
leon_macros::template!("a"),
Template::new(&[Item::Text("a")], None),
);
assert_eq!(
leon_macros::template!("{1}"),
Template::new(&[Item::Key("1")], None),
);
assert_eq!(
leon_macros::template!("a{ 1 } c"),
Template::new(&[Item::Text("a"), Item::Key("1"), Item::Text(" c")], None),
);
}