hyper_old_types::header

Struct Link

Source
pub struct Link { /* private fields */ }
Expand description

The Link header, defined in RFC5988

§ABNF

Link           = "Link" ":" #link-value
link-value     = "<" URI-Reference ">" *( ";" link-param )
link-param     = ( ( "rel" "=" relation-types )
               | ( "anchor" "=" <"> URI-Reference <"> )
               | ( "rev" "=" relation-types )
               | ( "hreflang" "=" Language-Tag )
               | ( "media" "=" ( MediaDesc | ( <"> MediaDesc <"> ) ) )
               | ( "title" "=" quoted-string )
               | ( "title*" "=" ext-value )
               | ( "type" "=" ( media-type | quoted-mt ) )
               | ( link-extension ) )
link-extension = ( parmname [ "=" ( ptoken | quoted-string ) ] )
               | ( ext-name-star "=" ext-value )
ext-name-star  = parmname "*" ; reserved for RFC2231-profiled
; extensions.  Whitespace NOT
; allowed in between.
ptoken         = 1*ptokenchar
ptokenchar     = "!" | "#" | "$" | "%" | "&" | "'" | "("
               | ")" | "*" | "+" | "-" | "." | "/" | DIGIT
               | ":" | "<" | "=" | ">" | "?" | "@" | ALPHA
               | "[" | "]" | "^" | "_" | "`" | "{" | "|"
               | "}" | "~"
media-type     = type-name "/" subtype-name
quoted-mt      = <"> media-type <">
relation-types = relation-type
               | <"> relation-type *( 1*SP relation-type ) <">
relation-type  = reg-rel-type | ext-rel-type
reg-rel-type   = LOALPHA *( LOALPHA | DIGIT | "." | "-" )
ext-rel-type   = URI

§Example values

Link: <http://example.com/TheBook/chapter2>; rel="previous"; title="previous chapter"

Link: </TheBook/chapter2>; rel="previous"; title*=UTF-8'de'letztes%20Kapitel, </TheBook/chapter4>; rel="next"; title*=UTF-8'de'n%c3%a4chstes%20Kapitel

§Examples

use hyper::header::{Headers, Link, LinkValue, RelationType};

let link_value = LinkValue::new("http://example.com/TheBook/chapter2")
    .push_rel(RelationType::Previous)
    .set_title("previous chapter");

let mut headers = Headers::new();
headers.set(
    Link::new(vec![link_value])
);

Implementations§

Source

pub fn new(link_values: Vec<LinkValue>) -> Link

Create Link from a Vec<LinkValue>.

Source

pub fn values(&self) -> &[LinkValue]

Get the Link header’s LinkValues.

Source

pub fn push_value(&mut self, link_value: LinkValue)

Add a LinkValue instance to the Link header’s values.

Trait Implementations§

Source§

fn clone(&self) -> Link

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
Source§

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

Formats the value using the given formatter. Read more
Source§

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

Formats the value using the given formatter. Read more
Source§

type Err = Error

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Link>

Parses a string s to return a value of this type. Read more
Source§

fn header_name() -> &'static str

Returns the name of the header field this belongs to. Read more
Source§

fn parse_header(raw: &Raw) -> Result<Link>

Parse a header from a raw stream of bytes. Read more
Source§

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

Format a header to outgoing stream. Read more
Source§

fn eq(&self, other: &Link) -> 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§

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> 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 T)

🔬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.

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.