Module url/index

url/index

URL parsing and formatting per RFC 3986 (simplified).

Types

Url object
Url

Parsed URL with scheme, host, port, path, query, and fragment components.

Fields

NameTypeDescription
_schemeString
_hostOption(String)
_portOption(u16)
_pathString
_queryOption(String)
_fragmentOption(String)
_userinfoOption(String)

Trait Implementations

impl(Url, ...)
parse : (Url) fn(s : str, using(exn : Exception)) -> Url

Parameters

NameTypeNotes
sstr

Returns: Url

scheme : (Url) fn(self : Url) -> String

Parameters

NameTypeNotes
selfUrl

Returns: String

host : (Url) fn(self : Url) -> Option(String)

Parameters

NameTypeNotes
selfUrl

Returns: Option(String)

port : (Url) fn(self : Url) -> Option(u16)

Parameters

NameTypeNotes
selfUrl

Returns: Option(u16)

path : (Url) fn(self : Url) -> String

Parameters

NameTypeNotes
selfUrl

Returns: String

query : (Url) fn(self : Url) -> Option(String)

Parameters

NameTypeNotes
selfUrl

Returns: Option(String)

fragment : (Url) fn(self : Url) -> Option(String)

Parameters

NameTypeNotes
selfUrl

Returns: Option(String)

userinfo : (Url) fn(self : Url) -> Option(String)

Parameters

NameTypeNotes
selfUrl

Returns: Option(String)

host_port : (Url) fn(self : Url) -> Option(String)

Parameters

NameTypeNotes
selfUrl

Returns: Option(String)

origin : (Url) fn(self : Url) -> String

Parameters

NameTypeNotes
selfUrl

Returns: String

impl(Url, ToString(...))
to_string : (self -> { result := `${self._scheme}:`; match(self._host, .Some(h) => { result = result.concat(`//`); match(self._userinfo, .Some(ui) => { result = result.concat(ui).concat(`@`); }, .None => () ); result = result.concat(h); match(self._port, .Some(p) => { result = result.concat(`:${p}`); }, .None => () ); }, .None => () ); result = result.concat(self._path); match(self._query, .Some(q) => { result = result.concat(`?`).concat(q); }, .None => () ); match(self._fragment, .Some(f) => { result = result.concat(`#`).concat(f); }, .None => () ); result })
UrlError enum
UrlError

Errors that can occur during URL parsing.

Variants

VariantFieldsDescription
EmptyInput
MissingScheme
InvalidPort
InvalidCharacterpos: usize
Othermsg: String

Trait Implementations

impl(UrlError, ToString(...))
to_string : (self -> match(self, .EmptyInput => `URL error: empty input`, .MissingScheme => `URL error: missing scheme`, .InvalidPort => `URL error: invalid port`, .InvalidCharacter(pos) => `URL error: invalid character at position ${pos}`, .Other(msg) => `URL error: ${msg}` ) )
impl(UrlError, Error())