diesel_versioning_derives/
lib.rs1use proc_macro::TokenStream;
2use proc_macro_error::proc_macro_error;
3use syn::parse_macro_input;
4
5mod model;
6mod versioned;
7
8#[proc_macro_derive(Versioned, attributes(diesel, version))]
12#[proc_macro_error]
13pub fn derive_versioned(input: TokenStream) -> TokenStream {
14 versioned::derive(parse_macro_input!(input), false)
15 .unwrap_or_else(syn::Error::into_compile_error)
16 .into()
17}
18
19#[cfg(feature = "async")]
23#[proc_macro_derive(VersionedAsync, attributes(diesel, version))]
24#[proc_macro_error]
25pub fn derive_versioned_async(input: TokenStream) -> TokenStream {
26 versioned::derive(parse_macro_input!(input), true)
27 .unwrap_or_else(syn::Error::into_compile_error)
28 .into()
29}