placid_macro/
lib.rs

1mod ctor;
2mod derive;
3
4#[proc_macro_derive(InitPin, attributes(pin))]
5pub fn derive_init_pin(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
6    match derive::init_pin(&syn::parse_macro_input!(input as syn::DeriveInput)) {
7        Ok(ts) => ts.into(),
8        Err(e) => e.to_compile_error().into(),
9    }
10}
11
12#[proc_macro_derive(Init)]
13pub fn derive_init(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
14    match derive::init(&syn::parse_macro_input!(input as syn::DeriveInput)) {
15        Ok(ts) => ts.into(),
16        Err(e) => e.to_compile_error().into(),
17    }
18}
19
20#[proc_macro]
21pub fn init_pin(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
22    match ctor::init_pin(syn::parse_macro_input!(input as syn::Expr)) {
23        Ok(ts) => ts.into(),
24        Err(e) => e.to_compile_error().into(),
25    }
26}
27
28#[proc_macro]
29pub fn init(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
30    match ctor::init(syn::parse_macro_input!(input as syn::Expr)) {
31        Ok(ts) => ts.into(),
32        Err(e) => e.to_compile_error().into(),
33    }
34}