[][src]Struct solicit::http::Header

pub struct Header<'n, 'v> { /* fields omitted */ }

Represents an HTTP/2 header. Allows both the name and the value to be either an owned or a borrowed byte sequence.

Examples

A new Header can be created by providing an owned or borrowed name, as well as value:

use solicit::http::Header;
// Name and value both borrowed (static) slices.
let h1 = Header::new(b":method", b"GET");
assert_eq!(h1.name(), &b":method"[..]);
assert_eq!(h1.value(), &b"GET"[..]);
// A borrowed slice with a scope-bound lifetime as the value; static name
{
    let value = vec![1];
    let header = Header::new(&b"x-test-head"[..], &value[..]);
    assert_eq!(header.name(), &b"x-test-head"[..]);
    assert_eq!(header.value(), &[1][..]);
}
// An owned value, static name
{
    let value = vec![1];
    let header = Header::new(&b"x-test-head"[..], value);
    assert_eq!(header.name(), &b"x-test-head"[..]);
    assert_eq!(header.value(), &[1][..]);
}
// An owned name, as well as value
{
    let value = vec![1];
    let name = b"x-test-head".to_vec();
    let header = Header::new(name, value);
    assert_eq!(header.name(), &b"x-test-head"[..]);
    assert_eq!(header.value(), &[1][..]);
}

Implementations

impl<'n, 'v> Header<'n, 'v>[src]

pub fn new<N: Into<HeaderPart<'n>>, V: Into<HeaderPart<'v>>>(
    name: N,
    value: V
) -> Header<'n, 'v>
[src]

Creates a new Header with the given name and value.

The name and value need to be convertible into a HeaderPart.

pub fn name(&self) -> &[u8][src]

Return a borrowed representation of the Header name.

pub fn value(&self) -> &[u8][src]

Return a borrowed representation of the Header value.

Trait Implementations

impl<'n, 'v> Clone for Header<'n, 'v>[src]

impl<'n, 'v> Debug for Header<'n, 'v>[src]

impl<'n, 'v> Into<(Vec<u8>, Vec<u8>)> for Header<'n, 'v>[src]

impl<'n, 'v> Into<Header<'n, 'v>> for OwnedHeader[src]

impl<'n, 'v> PartialEq<(Vec<u8>, Vec<u8>)> for Header<'n, 'v>[src]

impl<'n, 'v> PartialEq<Header<'n, 'v>> for OwnedHeader[src]

impl<'n, 'v> PartialEq<Header<'n, 'v>> for Header<'n, 'v>[src]

impl<'n, 'v> StructuralPartialEq for Header<'n, 'v>[src]

Auto Trait Implementations

impl<'n, 'v> RefUnwindSafe for Header<'n, 'v>

impl<'n, 'v> Send for Header<'n, 'v>

impl<'n, 'v> Sync for Header<'n, 'v>

impl<'n, 'v> Unpin for Header<'n, 'v>

impl<'n, 'v> UnwindSafe for Header<'n, 'v>

Blanket Implementations

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

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

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

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

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

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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.

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.