mod args;
mod attribute;
mod derive;

use proc_macro2::TokenStream;
use syn::Error;

/// The annotation for pinned type.
const PIN: &str = "pin";

pub(crate) fn attribute(args: &TokenStream, input: TokenStream) -> TokenStream {
    attribute::parse_attribute(args, input).unwrap_or_else(Error::into_compile_error)
}

pub(crate) fn derive(input: TokenStream) -> TokenStream {
    derive::parse_derive(input).unwrap_or_else(Error::into_compile_error)
}
