# url::Origin - Rust
API documentation for the Rust `Origin` enum in crate `url`.
Keywords: rust, rustlang, rust-lang, Origin

# Enum url::Origin [−] [src]

    pub enum Origin {
        Opaque(OpaqueOrigin),
        Tuple(String, Host<String>, u16),
    }

The origin of an URL

Two URLs with the same origin are considered to originate from the same entity and can therefore trust each other.

The origin is determined based on the scheme as follows:

- If the scheme is "blob" the origin is the origin of the URL contained in the path component. If parsing fails, it is an opaque origin.
- If the scheme is "ftp", "http", "https", "ws", or "wss", then the origin is a tuple of the scheme, host, and port.
- If the scheme is anything else, the origin is opaque, meaning the URL does not have the same origin as any other URL.

For more information see https://url.spec.whatwg.org/#origin

## Variants

`Opaque(OpaqueOrigin)`

A globally unique identifier

`Tuple(String, Host<String>, u16)`

Consists of the URL's scheme, host and port

## Implementations

### `impl Origin` [src]

#### `pub fn new_opaque() -> Origin` [src]

Creates a new opaque origin that is only equal to itself.

#### `pub fn is_tuple(&self) -> bool` [src]

Return whether this origin is a (scheme, host, port) tuple (as opposed to an opaque origin).

#### `pub fn ascii_serialization(&self) -> String` [src]

https://html.spec.whatwg.org/multipage/#ascii-serialisation-of-an-origin

#### `pub fn unicode_serialization(&self) -> String` [src]

https://html.spec.whatwg.org/multipage/#unicode-serialisation-of-an-origin

## Trait Implementations

### `impl Clone for Origin` [src]

#### `fn clone(&self) -> Origin` [src]

Returns a copy of the value. Read more

#### `pub fn clone_from(&mut self, source: &Self)`1.0.0 [src]

Performs copy-assignment from `source`. Read more

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

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

Formats the value using the given formatter. Read more

### `impl Eq for Origin` [src]

### `impl Hash for Origin` [src]

#### `fn hash<__H: Hasher>(&self, state: &mut __H)` [src]

Feeds this value into the given `Hasher`. Read more

#### `pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,` 1.3.0 [src]

Feeds a slice of this type into the given `Hasher`. Read more

### `impl PartialEq<Origin> for Origin` [src]

#### `fn eq(&self, other: &Origin) -> bool` [src]

This method tests for `self` and `other` values to be equal, and is used by `==`. Read more

#### `fn ne(&self, other: &Origin) -> bool` [src]

This method tests for `!=`.

### `impl StructuralEq for Origin` [src]

### `impl StructuralPartialEq for Origin` [src]

## Auto Trait Implementations

### `impl RefUnwindSafe for Origin` [src]

### `impl Send for Origin` [src]

### `impl Sync for Origin` [src]

### `impl Unpin for Origin` [src]

### `impl UnwindSafe for Origin` [src]

## 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> ToOwned for T where
T: Clone,` [src]

#### `type Owned = T`

The resulting type after obtaining ownership.

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

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

#### `pub fn clone_into(&self, target: &mut T)` [src]

🔬 This is a nightly-only experimental API. (`toowned_clone_into`)

recently added

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

### `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.