rocket::http::uri

Struct Authority

pub struct Authority<'a> { /* private fields */ }
Expand description

A URI with an authority only: user:pass@host:8000.

§Structure

The following diagram illustrates the syntactic structure of an authority URI:

username:password@some.host:8088
|---------------| |-------| |--|
    user info        host   port

Only the host part of the URI is required.

Implementations§

§

impl<'a> Authority<'a>

pub fn parse(string: &'a str) -> Result<Authority<'a>, Error<'a>>

Parses the string string into an Authority. Parsing will never allocate. Returns an Error if string is not a valid authority URI.

§Example
use rocket::http::uri::Authority;

// Parse a valid authority URI.
let uri = Authority::parse("user:pass@host").expect("valid URI");
assert_eq!(uri.user_info(), Some("user:pass"));
assert_eq!(uri.host(), "host");
assert_eq!(uri.port(), None);

// Invalid authority URIs fail to parse.
Authority::parse("http://google.com").expect_err("invalid authority");

pub fn user_info(&self) -> Option<&str>

Returns the user info part of the authority URI, if there is one.

§Example
use rocket::http::uri::Authority;

let uri = Authority::parse("username:password@host").unwrap();
assert_eq!(uri.user_info(), Some("username:password"));

pub fn host(&self) -> &str

Returns the host part of the authority URI.

If the host was provided in brackets (such as for IPv6 addresses), the brackets will not be part of the returned string.

§Example
use rocket::http::uri::Authority;

let uri = Authority::parse("domain.com:123").unwrap();
assert_eq!(uri.host(), "domain.com");

let uri = Authority::parse("username:password@host:123").unwrap();
assert_eq!(uri.host(), "host");

let uri = Authority::parse("username:password@[1::2]:123").unwrap();
assert_eq!(uri.host(), "1::2");

pub fn port(&self) -> Option<u16>

Returns the port part of the authority URI, if there is one.

§Example
use rocket::http::uri::Authority;

// With a port.
let uri = Authority::parse("username:password@host:123").unwrap();
assert_eq!(uri.port(), Some(123));

let uri = Authority::parse("domain.com:8181").unwrap();
assert_eq!(uri.port(), Some(8181));

// Without a port.
let uri = Authority::parse("username:password@host").unwrap();
assert_eq!(uri.port(), None);

Trait Implementations§

§

impl<'a> Clone for Authority<'a>

§

fn clone(&self) -> Authority<'a>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl<'a> Debug for Authority<'a>

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'a> Display for Authority<'a>

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'a> From<Authority<'a>> for Uri<'a>

§

fn from(other: Authority<'a>) -> Uri<'a>

Converts to this type from the input type.
§

impl<'a> IntoOwned for Authority<'a>

§

type Owned = Authority<'static>

The owned version of the type.
§

fn into_owned(self) -> Authority<'static>

Converts self into an owned version of itself.
§

impl<'a, 'b> PartialEq<Authority<'b>> for Authority<'a>

§

fn eq(&self, other: &Authority<'b>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

§

impl<'a> Freeze for Authority<'a>

§

impl<'a> RefUnwindSafe for Authority<'a>

§

impl<'a> Send for Authority<'a>

§

impl<'a> Sync for Authority<'a>

§

impl<'a> Unpin for Authority<'a>

§

impl<'a> UnwindSafe for Authority<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T, I> AsResult<T, I> for T
where I: Input,

Source§

fn as_result(self) -> Result<T, ParseErr<I>>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> IntoCollection<T> for T

§

fn into_collection<A>(self) -> SmallVec<A>
where A: Array<Item = T>,

Converts self into a collection.
§

fn mapped<U, F, A>(self, f: F) -> SmallVec<A>
where F: FnMut(T) -> U, A: Array<Item = U>,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Typeable for T
where T: Any,

Source§

fn get_type(&self) -> TypeId

Get the TypeId of this object.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V