Skip to main content

topcoat_core_macro/
lib.rs

1use proc_macro::TokenStream;
2use quote::quote;
3
4#[doc = include_str!("../docs/memoization.md")]
5#[proc_macro_attribute]
6pub fn memoize(attr: TokenStream, item: TokenStream) -> TokenStream {
7    match topcoat_core_grammar::memoize::Memoize::parse(attr.into(), item.into()) {
8        Ok(value) => quote! { #value }.into(),
9        Err(error) => error.to_compile_error().into(),
10    }
11}