URL parser for Rust
docs.rs/url/
|
|
12 년 전 | |
|---|---|---|
| .gitignore | 13 년 전 | |
| LICENSE-APACHE | 13 년 전 | |
| LICENSE-MIT | 13 년 전 | |
| Makefile.in | 12 년 전 | |
| README.md | 12 년 전 | |
| configure | 13 년 전 | |
| form_urlencoded.rs | 12 년 전 | |
| parser.rs | 12 년 전 | |
| punycode.rs | 12 년 전 | |
| punycode_tests.json | 12 년 전 | |
| tests.rs | 12 년 전 | |
| url.rs | 12 년 전 | |
| urltestdata.txt | 12 년 전 |
Rust implementation of the URL Standard.
See Rust bug #10707.
This depends on rust-encoding.
pub struct URL {
scheme: ~str,
scheme_data: SchemeData,
query: Option<~str>, // See form_urlencoded::parse_str() to get name/value pairs.
fragment: Option<~str>,
}
pub enum SchemeData {
RelativeSchemeData(SchemeRelativeURL),
OtherSchemeData(~str), // data: URLs, mailto: URLs, etc.
}
pub struct SchemeRelativeURL {
userinfo: Option<UserInfo>,
host: Host,
port: ~str,
path: ~[~str],
}
pub struct UserInfo {
username: ~str,
password: Option<~str>,
}
pub enum Host {
Domain(~[~str]), // Can only be empty in the file scheme
IPv6(IPv6Address)
}
pub struct IPv6Address {
pieces: [u16, ..8]
}
pub type ParseResult<T> = Result<T, &'static str>;
impl URL {
// base_url is used to resolve relative URLs.
// Relative URLs without a base return an error.
pub fn parse(input: &str, base_url: Option<&URL>) -> ParseResult<URL>
pub fn serialize(&self) -> ~str
pub fn serialize_no_fragment(&self) -> ~str
}
impl Host {
pub fn parse(input: &str) -> ParseResult<Host>
pub fn serialize(&self) -> ~str
}
impl IPv6Address {
pub fn parse(input: &str) -> ParseResult<IPv6Address>
pub fn serialize(&self) -> ~str
}
/// application/x-www-form-urlencoded
/// Converts between a query string and name/value pairs.
pub mod form_urlencoded {
pub fn parse_str(input: &str) -> ~[(~str, ~str)]
pub fn parse_bytes(input: &[u8], encoding_override: Option<encoding::EncodingRef>,
use_charset: bool, isindex: bool) -> Option<~[(~str, ~str)]>
pub fn serialize(pairs: ~[(~str, ~str)],
encoding_override: Option<encoding::EncodingRef>) -> ~str
}
Not necessarily in the given order:
data: URL parsing.