zod_rs_util/locales/
mod.rs1pub 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}