zod_rs_util/locales/
mod.rs

1pub mod ar;
2pub mod en;
3
4use crate::{
5    locales::{ar::Ar, en::En},
6    ValidationError,
7};
8
9#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
10pub enum Locale {
11    En,
12    Ar,
13}
14
15pub trait Localizer {
16    fn localize(&self, error: &ValidationError) -> String;
17}
18
19pub fn localizer(locale: Locale) -> Box<dyn Localizer> {
20    match locale {
21        Locale::En => Box::new(En),
22        Locale::Ar => Box::new(Ar),
23    }
24}
25
26#[derive(Debug, Clone)]
27struct Sizable {
28    unit: &'static str,
29    verb: &'static str,
30}
31
32impl Sizable {
33    fn new(unit: &'static str, verb: &'static str) -> Self {
34        Self { unit, verb }
35    }
36}