localize_it 2.5.2

Simple and fast library for localization
Documentation
use crate::utils::{aliases::SynResult, errors::DuplicateArgumentError};
use proc_macro2::Ident;
use std::collections::HashSet;

pub struct ArgumentProcessor {
    pub exist_arguments: HashSet<String>,
}

impl ArgumentProcessor {
    pub fn new() -> Self {
        Self {
            exist_arguments: HashSet::new(),
        }
    }

    pub fn process(&mut self, name: &Ident) -> SynResult<String> {
        let name_string = name.to_string();

        if self.exist_arguments.insert(name_string.clone()) {
            Ok(name_string)
        } else {
            Err(DuplicateArgumentError::new(name))
        }
    }
}