rp1_macros/
lib.rs

1extern crate proc_macro;
2
3mod crud_impl;
4mod derive;
5mod error;
6mod props;
7
8pub(crate) use error::*;
9
10use proc_macro::TokenStream;
11use syn::{parse_macro_input, AttributeArgs};
12
13#[doc = include_str!("../docs/crud.md")]
14#[proc_macro_attribute]
15pub fn crud(args: TokenStream, item: TokenStream) -> TokenStream {
16    let args = parse_macro_input!(args as AttributeArgs);
17    match crud_impl::crud_impl(args, item.into()) {
18        Ok(res) => res.into(),
19        Err(e) => e.into_compile_error().into(),
20    }
21}