1use proc_macro::TokenStream;
4use syn::Error;
5
6mod pin_init;
7
8#[proc_macro_attribute]
9pub fn pin_init(attr: TokenStream, input: TokenStream) -> TokenStream {
10 pin_init::pin_init_attr(attr.into(), input.into())
11 .unwrap_or_else(Error::into_compile_error)
12 .into()
13}
14
15#[doc(hidden)]
16#[proc_macro_derive(PinInit, attributes(pin))]
17pub fn pin_init_derive(input: TokenStream) -> TokenStream {
18 pin_init::pin_init_derive(input.into())
19 .unwrap_or_else(Error::into_compile_error)
20 .into()
21}
22
23#[proc_macro]
24pub fn init_pin(input: TokenStream) -> TokenStream {
25 pin_init::init_pin(input.into())
26 .unwrap_or_else(Error::into_compile_error)
27 .into()
28}