1#![doc = include_str!("../README.md")]
2
3use darling::FromDeriveInput;
4use proc_macro::TokenStream;
5use syn::{parse_macro_input, DeriveInput};
6
7mod bake;
8
9#[proc_macro_derive(Bake, attributes(baked))]
10pub fn restcrab(input: TokenStream) -> TokenStream {
11 let input_parsed = match bake::Struct::from_derive_input(&parse_macro_input!(input as DeriveInput)) {
12 Ok(v) => v,
13 Err(e) => {
14 return TokenStream::from(e.write_errors());
15 }
16 };
17
18 match bake::bake(input_parsed) {
19 Ok(ok) => ok,
20 Err(err) => err,
21 }
22 .into()
23}