extern crate proc_macro;
use proc_macro::TokenStream;
use quote::quote;
use syn::{parse_macro_input, LitStr};
#[proc_macro]
pub fn generate_template(input: TokenStream) -> TokenStream {
let path_token = parse_macro_input!(input as LitStr);
let path = path_token.value();
let full_path = format!("src/{}", path);
if std::path::Path::new(&full_path).exists() {
TokenStream::from(quote! {
const TEMPLATE: &str = #path_token;
})
} else {
TokenStream::from(quote! {
compile_error!("The specified file does not exist.");
})
}
}