envuse_parser/transformers/
transformer_list.rs

1use super::trait_transformer::Transformer;
2use std::collections::HashMap;
3
4type TransformerType = Box<dyn Transformer>;
5
6pub struct TransformerList {
7    transformers: HashMap<String, TransformerType>,
8}
9
10impl TransformerList {
11    pub fn new() -> Self {
12        Self {
13            transformers: Default::default(),
14        }
15    }
16
17    pub fn insert<T: ToString>(&mut self, key: T, transformer: TransformerType) {
18        self.transformers.insert(key.to_string(), transformer);
19    }
20
21    pub fn get<T: ToString>(&self, transform_type: T) -> Option<&Box<dyn Transformer>> {
22        self.transformers.get(&transform_type.to_string())
23    }
24}
25
26impl Default for TransformerList {
27    fn default() -> Self {
28        Self::new()
29    }
30}