pub fn decode(value: &str) -> String {
let mut val:String = value.to_string();
let index_arr:Vec<_> = value.rmatch_indices("%").collect();
for (v, _s) in index_arr {
match value.get(v..v+3) {
Some("%2C") => val = val.replace("%2C", ","),
Some("%3A") => val = val.replace("%3A", ":"),
Some("%27") => val = val.replace("%27", "'"),
Some("%22") => val = val.replace("%22", "\""),
Some("%3F") => val = val.replace("%3F", "?"),
Some("%2F") => val = val.replace("%2F", "/"),
Some("%5C") => val = val.replace("%5C", "\\"),
Some("%7C") => val = val.replace("%7C", "|"),
Some("%3B") => val = val.replace("%3B", ";"),
Some("%5B") => val = val.replace("%5B", "["),
Some("%5D") => val = val.replace("%5D", "]"),
Some("%7B") => val = val.replace("%7B", "{"),
Some("%7D") => val = val.replace("%7D", "}"),
Some("%3D") => val = val.replace("%3D", "="),
Some("%2B") => val = val.replace("%2B", "+"),
Some("%60") => val = val.replace("%60", "`"),
Some("%21") => val = val.replace("%21", "!"),
Some("%40") => val = val.replace("%40", "@"),
Some("%23") => val = val.replace("%23", "#"),
Some("%24") => val = val.replace("%24", "$"),
Some("%25") => val = val.replace("%25", "%"),
Some("%5E") => val = val.replace("%5E", "^"),
Some("%26") => val = val.replace("%26", "&"),
Some("%2A") => val = val.replace("%2A", "*"),
Some("%28") => val = val.replace("%28", "("),
Some("%29") => val = val.replace("%29", ")"),
Some("%3C") => val = val.replace("%3C", "<"),
Some("%3E") => val = val.replace("%3E", ">"),
_ => (),
}
}
val
}