lastfm_edit/
vcr_form_data.rs1use std::collections::HashMap;
2
3pub fn parse_form_data(data: &str) -> HashMap<String, String> {
5 let mut params = HashMap::new();
6
7 for pair in data.split('&') {
8 if let Some((key, value)) = pair.split_once('=') {
9 let decoded_key = urlencoding::decode(key).unwrap_or_else(|_| key.into());
11 let decoded_value = urlencoding::decode(value).unwrap_or_else(|_| value.into());
12 params.insert(decoded_key.to_string(), decoded_value.to_string());
13 }
14 }
15
16 params
17}
18
19pub fn encode_form_data(params: &HashMap<String, String>) -> String {
21 params
22 .iter()
23 .map(|(key, value)| {
24 format!(
25 "{}={}",
26 urlencoding::encode(key),
27 urlencoding::encode(value)
28 )
29 })
30 .collect::<Vec<_>>()
31 .join("&")
32}