localize_it 2.1.0

Simple and fast library for localization
Documentation
use crate::names::Names;
use proc_macro2::TokenStream;
use quote::quote;

pub fn macro_expressions(names: &Names) -> TokenStream {
    let expressions_ident = names.get_hashed_name("expressions");
    let expression_path = names.get_path("expression");

    quote! {
        #[macro_export]
        macro_rules! #expressions_ident {
            (
                $(
                    $name: ident $(: $content_type: ty)? => {
                        $(
                            $lang: ident: $content: expr
                        ),+ $(,)?
                    }
                ),+ $(,)?
            ) => {
                $(
                    #expression_path!($name $(: $content_type)? => {
                        $(
                            $lang: $content
                        ),+
                    });
                )+
            };
        }

        pub use #expressions_ident as expressions;
    }
}