1#![deny(clippy::all, clippy::pedantic)]
2#![allow(clippy::wildcard_imports)]
3
4use proc_macro::TokenStream;
5
6use quote::quote;
7
8use syn::parse::Nothing;
9use syn::parse_macro_input;
10
11mod expand;
12mod internal;
13mod parse;
14
15#[proc_macro_attribute]
16pub fn versioned(args: TokenStream, input: TokenStream) -> TokenStream {
17 let _ = parse_macro_input!(args as Nothing);
18 let input = parse_macro_input!(input as internal::VersionedItem);
19 let expanded = quote!(#input);
20 TokenStream::from(expanded)
21}