baker/
lib.rs

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}