pub fn parse_urlencoded_params(args: &mut RequestField, query: &str) {
    for kv in query.split('&') {
        let (k, v) = match kv.splitn(2, '=').collect_tuple() {
            Some((k, v)) => (urldecode_str_def(k), urldecode_str_def(v)),
            None => (urldecode_str_def(kv), String::new()),
        };
        args.add(k, DataSource::X(XDataSource::Uri), v);
    }
}
/// parses query parameters, that look like a=b&c=d
parses query parameters, that look like a=b&c=d
parses query parameters that look like a = b&c = d
pub fn parse_urlencoded_params(args: &mut RequestField, query: &str) {
    for kv in query.split('&') {
        let (k, v) = match kv.splitn(2, '=').collect_tuple() {
            Some((k, v)) => (urldecode_str_def(k), urldecode_str_def(v)),
            None => (urldecode_str_def(kv), String::new()),
        };
        args.add(k, DataSource::X(XDataSource::Uri), v);
    }
}
pub fn parse_urlencoded_params ( args : & mut RequestField , query : & str ) { for kv in query . split ( '&' ) { let ( k , v ) = match kv . splitn ( 2 , '=' ) . collect_tuple ( ) { Some ( ( k , v ) ) => ( urldecode_str_def ( k ) , urldecode_str_def ( v ) ) , None => ( urldecode_str_def ( kv ) , String :: new ( ) ) , } ; args . add ( k , DataSource :: X ( XDataSource :: Uri ) , v ) ; } }
parses query parameters, that look like a=b&c=d
parses query parameters that look like a = b&c = d
args
&mut RequestField
query
&str