localize_it 2.4.0

Simple and fast library for localization
Documentation
mod variant;

use crate::backends::init_locale::arguments::variants::variant::Variant;
use derive_more::{Deref, DerefMut};
use proc_macro2::Ident;
use syn::LitStr;

#[derive(Deref, DerefMut)]
pub struct Variants(Vec<Variant>);

impl Variants {
    pub fn new() -> Self {
        Self(Vec::new())
    }

    pub fn add(&mut self, name: Ident, label: LitStr) {
        self.push(Variant { name, label })
    }

    pub fn unzip(&self) -> (Vec<&Ident>, Vec<&LitStr>) {
        self.iter()
            .map(|variant| (&variant.name, &variant.label))
            .unzip()
    }
}