From 8fdf77a20daba89f117521b471ef77b087c94c4b Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Fri, 27 Jul 2012 12:34:55 -0700 Subject: [PATCH] std: Make url a sendable type --- src/libstd/net_url.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/libstd/net_url.rs b/src/libstd/net_url.rs index c925e93320ae..712b5124c7f7 100644 --- a/src/libstd/net_url.rs +++ b/src/libstd/net_url.rs @@ -1,8 +1,5 @@ //! Types/fns concerning URLs (see RFC 3986) -import map; -import map::*; - export url, userinfo, query, from_str, to_str; type url = { @@ -19,7 +16,7 @@ type userinfo = { pass: option<~str> }; -type query = map::hashmap<~str, ~str>; +type query = ~[(~str, ~str)]; fn url(-scheme: ~str, -user: option, -host: ~str, -path: ~str, -query: query, -fragment: option<~str>) -> url { @@ -61,11 +58,11 @@ fn userinfo_to_str(-userinfo: userinfo) -> ~str { } fn query_from_str(rawquery: ~str) -> query { - let query: query = map::str_hash(); + let mut query: query = ~[]; if str::len(rawquery) != 0 { for str::split_char(rawquery, '&').each |p| { let (k, v) = split_char_first(p, '='); - query.insert(k, v); + vec::push(query, (k, v)); }; } ret query; @@ -73,7 +70,8 @@ fn query_from_str(rawquery: ~str) -> query { fn query_to_str(query: query) -> ~str { let mut strvec = ~[]; - for query.each |k, v| { + for query.each |kv| { + let (k, v) = kv; strvec += ~[#fmt("%s=%s", k, v)]; }; ret str::connect(strvec, ~"&"); @@ -161,7 +159,7 @@ fn to_str(url: url) -> ~str { } else { ~"" }; - let query = if url.query.size() == 0 { + let query = if url.query.len() == 0 { ~"" } else { str::concat(~[~"?", query_to_str(url.query)])