pin_init_internal/
lib.rs

1//! Internal implementation details of crate `pin_init`, **do not use**.
2
3use 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}