4 #![crate_type = "proc-macro"]
6 extern crate proc_macro;
8 use proc_macro::TokenStream;
10 #[proc_macro_attribute]
11 pub fn expect_let(attr: TokenStream, item: TokenStream) -> TokenStream {
12 assert!(attr.to_string().is_empty());
13 assert_eq!(item.to_string(), "let string = \"Hello, world!\" ;");
17 #[proc_macro_attribute]
18 pub fn expect_print_stmt(attr: TokenStream, item: TokenStream) -> TokenStream {
19 assert!(attr.to_string().is_empty());
20 assert_eq!(item.to_string(), "println! (\"{}\", string) ;");
24 #[proc_macro_attribute]
25 pub fn expect_expr(attr: TokenStream, item: TokenStream) -> TokenStream {
26 assert!(attr.to_string().is_empty());
27 assert_eq!(item.to_string(), "print_str(\"string\")");
31 #[proc_macro_attribute]
32 pub fn expect_print_expr(attr: TokenStream, item: TokenStream) -> TokenStream {
33 assert!(attr.to_string().is_empty());
34 assert_eq!(item.to_string(), "println! (\"{}\", string)");
38 #[proc_macro_attribute]
39 pub fn no_output(attr: TokenStream, item: TokenStream) -> TokenStream {
40 assert!(attr.to_string().is_empty());
41 assert!(!item.to_string().is_empty());
46 #[proc_macro_attribute]
47 pub fn noop(attr: TokenStream, item: TokenStream) -> TokenStream {
48 assert!(attr.to_string().is_empty());
49 assert!(!item.to_string().is_empty());