envuse_parser/transformers/
transformer_list.rs1use 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}