diff --git a/src/libextra/url.rs b/src/libextra/url.rs index 6138c5416f2b4..c76c73dc4325b 100644 --- a/src/libextra/url.rs +++ b/src/libextra/url.rs @@ -1,4 +1,4 @@ -// Copyright 2012-2013 The Rust Project Developers. See the COPYRIGHT +// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // http://rust-lang.org/COPYRIGHT. // @@ -139,10 +139,19 @@ fn encode_inner(s: &str, full_url: bool) -> ~str { } /** - * Encodes a URI by replacing reserved characters with percent encoded + * Encodes a URI by replacing reserved characters with percent-encoded * character sequences. * * This function is compliant with RFC 3986. + * + * # Example + * + * ```rust + * use extra::url::encode; + * + * let url = encode(&"https://example.com/Rust (programming language)"); + * println!("{}", url); // https://example.com/Rust%20(programming%20language) + * ``` */ pub fn encode(s: &str) -> ~str { encode_inner(s, true) @@ -206,9 +215,18 @@ fn decode_inner(s: &str, full_url: bool) -> ~str { } /** - * Decode a string encoded with percent encoding. + * Decodes a percent-encoded string representing a URI. * - * This will only decode escape sequences generated by encode. + * This will only decode escape sequences generated by `encode`. + * + * # Example + * + * ```rust + * use extra::url::decode; + * + * let url = decode(&"https://example.com/Rust%20(programming%20language)"); + * println!("{}", url); // https://example.com/Rust (programming language) + * ``` */ pub fn decode(s: &str) -> ~str { decode_inner(s, true) @@ -410,7 +428,23 @@ pub fn query_to_str(query: &Query) -> ~str { return strvec.connect("&"); } -// returns the scheme and the rest of the url, or a parsing error +/** + * Returns a tuple of the URI scheme and the rest of the URI, or a parsing error. + * + * Does not include the separating `:` character. + * + * # Example + * + * ```rust + * use extra::url::get_scheme; + * + * let scheme = match get_scheme("https://example.com/") { + * Ok((sch, _)) => sch, + * Err(_) => ~"(None)", + * }; + * println!("Scheme in use: {}.", scheme); // Scheme in use: https. + * ``` + */ pub fn get_scheme(rawurl: &str) -> Result<(~str, ~str), ~str> { for (i,c) in rawurl.chars().enumerate() { match c { @@ -654,18 +688,16 @@ fn get_query_fragment(rawurl: &str) -> } /** - * Parse a `str` to a `url` + * Parses a URL, converting it from a string to `Url` representation. * * # Arguments * - * `rawurl` - a string representing a full url, including scheme. + * `rawurl` - a string representing the full URL, including scheme. * * # Returns * - * a `url` that contains the parsed representation of the url. - * + * A `Url` struct type representing the URL. */ - pub fn from_str(rawurl: &str) -> Result<Url, ~str> { // scheme let (scheme, rest) = match get_scheme(rawurl) { @@ -705,19 +737,18 @@ impl FromStr for Url { } /** - * Format a `url` as a string + * Converts a URL from `Url` to string representation. * * # Arguments * - * `url` - a url. + * `url` - a URL. * * # Returns * - * a `str` that contains the formatted url. Note that this will usually - * be an inverse of `from_str` but might strip out unneeded separators. + * A string that contains the formatted URL. Note that this will usually + * be an inverse of `from_str` but might strip out unneeded separators; * for example, "http://somehost.com?", when parsed and formatted, will * result in just "http://somehost.com". - * */ pub fn to_str(url: &Url) -> ~str { let user = match url.user {