standard_error/extras/
interpolate.rs1use std::collections::HashMap;
2
3use crate::StandardError;
4
5pub trait Interpolate {
6 fn interpolate_values(&mut self, values: HashMap<String, String>) -> Self;
7 fn interpolate_err(&mut self, e: String) -> Self;
8}
9
10impl Interpolate for StandardError {
11 fn interpolate_values(&mut self, values: HashMap<String, String>) -> Self {
12 let mut new_message = self.message.clone(); for (k, v) in values.into_iter() {
14 new_message = new_message.replace(&format!("[{}]", &k), &v); }
16 self.message = new_message;
17 self.clone()
18 }
19
20 fn interpolate_err(&mut self, e: String) -> Self {
21 let mut values: HashMap<String, String> = HashMap::new();
22 values.insert("err".to_string(), e);
23 self.interpolate_values(values)
24 }
25}