1use centaurus_macro_utils::Manifest;
2use proc_macro::TokenStream;
3
4use crate::{config::config, settings::settings, update_message::update_message};
5
6mod config;
7mod settings;
8mod update_message;
9
10pub(crate) fn centaurus_path() -> syn::Path {
11 Manifest::default().get_path("centaurus")
12}
13
14#[proc_macro_derive(Config, attributes(base, metrics, site, auth, oidc, mail))]
15pub fn derive_config(input: TokenStream) -> TokenStream {
16 config(input.into()).into()
17}
18
19#[proc_macro_derive(Settings, attributes(settings))]
20pub fn derive_settings(input: TokenStream) -> TokenStream {
21 settings(input.into()).into()
22}
23
24#[proc_macro_derive(UpdateMessage, attributes(update_message))]
25pub fn derive_update_message(input: TokenStream) -> TokenStream {
26 update_message(input.into()).into()
27}