localize_it 2.5.1

Simple and fast library for localization
Documentation
use crate::utils::{
    names::{MACRO_EXPRESSION, MACRO_EXPRESSIONS},
    NamesProvider,
};
use proc_macro2::TokenStream;
use quote::quote;

pub fn macro_expressions(names_provider: &NamesProvider) -> TokenStream {
    let expressions_ident = names_provider.get_name(MACRO_EXPRESSIONS);
    let expressions_hashed_ident = names_provider.get_hashed_name(MACRO_EXPRESSIONS);
    let expression_path = names_provider.get_path(MACRO_EXPRESSION);

    quote! {
        #[macro_export]
        macro_rules! #expressions_hashed_ident {
            (
                $(
                    $name: ident $(: $r#type: ty)? => {
                        $(
                            $locale: ident: $value: expr
                        ),+ $(,)?
                    }
                ),+ $(,)?
            ) => {
                $(
                    #expression_path!($name $(: $r#type)? => {
                        $(
                            $locale: $value
                        ),+
                    });
                )+
            };
        }

        pub use #expressions_hashed_ident as #expressions_ident;
    }
}