localize_it 2.5.1

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

pub fn macro_expressions_part(names_provider: &NamesProvider) -> TokenStream {
    if cfg!(feature = "from_files") {
        let expressions_part_ident = names_provider.get_name(MACRO_EXPRESSIONS_PART);
        let expressions_part_hashed_ident = names_provider.get_hashed_name(MACRO_EXPRESSIONS_PART);
        let expression_part_path = names_provider.get_path(MACRO_EXPRESSION_PART);

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

            pub use #expressions_part_hashed_ident as #expressions_part_ident;
        }
    } else {
        TokenStream::new()
    }
}