use proc_macro::TokenStream;
use syn::{parse_macro_input, DeriveInput};
mod emit;
#[proc_macro_attribute]
pub fn pulse_type(_args: TokenStream, input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as DeriveInput);
emit::write_psl_type(&input);
TokenStream::from(quote::quote! { #input })
}
#[proc_macro_attribute]
pub fn pulse_enum(_args: TokenStream, input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as DeriveInput);
emit::write_psl_enum(&input);
TokenStream::from(quote::quote! { #input })
}
#[proc_macro_attribute]
pub fn pulse_error(_args: TokenStream, input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as DeriveInput);
emit::write_psl_error(&input);
TokenStream::from(quote::quote! { #input })
}
#[proc_macro_attribute]
pub fn pulse_service(_args: TokenStream, input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as syn::ItemTrait);
emit::write_psl_service(&input);
TokenStream::from(quote::quote! { #input })
}
#[proc_macro_attribute]
pub fn collection(_args: TokenStream, input: TokenStream) -> TokenStream { input }
#[proc_macro_attribute]
pub fn index(_args: TokenStream, input: TokenStream) -> TokenStream { input }
#[proc_macro_attribute]
pub fn unique(_args: TokenStream, input: TokenStream) -> TokenStream { input }
#[proc_macro_attribute]
pub fn auth(_args: TokenStream, input: TokenStream) -> TokenStream { input }