# Struct http::uri::Parts [−] [src]

    pub struct Parts {
        pub scheme: Option<Scheme>,
        pub authority: Option<Authority>,
        pub path_and_query: Option<PathAndQuery>,
        // some fields omitted
    }

The various parts of a URI.

This struct is used to provide to and retrieve from a URI.

## Fields

`scheme: Option<Scheme>`

The scheme component of a URI

`authority: Option<Authority>`

The authority component of a URI

`path_and_query: Option<PathAndQuery>`

The origin-form component of a URI

## Trait Implementations

### `impl Debug for Parts` [src]

#### `fn fmt(&self, f: &mut Formatter<'_>) -> Result` [src]

Formats the value using the given formatter. Read more

### `impl Default for Parts` [src]

#### `fn default() -> Parts` [src]

Returns the “default value” for a type. Read more

### `impl From<Uri> for Parts` [src]

Convert a `Uri` from parts

# Examples

Relative URI

    let mut parts = Parts::default();
    parts.path_and_query = Some("/foo".parse().unwrap());

    let uri = Uri::from_parts(parts).unwrap();

    assert_eq!(uri.path(), "/foo");

    assert!(uri.scheme().is_none());
    assert!(uri.authority().is_none());

Absolute URI

    let mut parts = Parts::default();
    parts.scheme = Some("http".parse().unwrap());
    parts.authority = Some("foo.com".parse().unwrap());
    parts.path_and_query = Some("/foo".parse().unwrap());

    let uri = Uri::from_parts(parts).unwrap();

    assert_eq!(uri.scheme().unwrap().as_str(), "http");
    assert_eq!(uri.authority().unwrap(), "foo.com");
    assert_eq!(uri.path(), "/foo");

#### `fn from(src: Uri) -> Self` [src]

Performs the conversion.

### `impl TryFrom<Parts> for Uri` [src]

#### `type Error = InvalidUriParts`

The type returned in the event of a conversion error.

#### `fn try_from(src: Parts) -> Result<Self, Self::Error>` [src]

Performs the conversion.

## Auto Trait Implementations

### `impl RefUnwindSafe for Parts`

### `impl Send for Parts`

### `impl Sync for Parts`

### `impl Unpin for Parts`

### `impl UnwindSafe for Parts`

## Blanket Implementations

### `impl<T> Any for T where
T: 'static + ?Sized,` [src]

#### `pub fn type_id(&self) -> TypeId` [src]

Gets the `TypeId` of `self`. Read more

### `impl<T> Borrow<T> for T where
T: ?Sized,` [src]

#### `pub fn borrow(&self) -> &T` [src]

Immutably borrows from an owned value. Read more

### `impl<T> BorrowMut<T> for T where
T: ?Sized,` [src]

#### `pub fn borrow_mut(&mut self) -> &mut T` [src]

Mutably borrows from an owned value. Read more

### `impl<T> From<T> for T` [src]

#### `pub fn from(t: T) -> T` [src]

Performs the conversion.

### `impl<T, U> Into<U> for T where
U: From<T>,` [src]

#### `pub fn into(self) -> U` [src]

Performs the conversion.

### `impl<T, U> TryFrom<U> for T where
U: Into<T>,` [src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

#### `pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>` [src]

Performs the conversion.

### `impl<T, U> TryInto<U> for T where
U: TryFrom<T>,` [src]

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

The type returned in the event of a conversion error.

#### `pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>` [src]

Performs the conversion.