Skip to main content

HttpHeaders

Struct HttpHeaders 

Source
pub struct HttpHeaders<'a> {
    pub raw: &'a mut http,
}
Expand description

HTTP headers of an object, wrapping HTTP from Varnish

Fields§

§raw: &'a mut http

Implementations§

Source§

impl HttpHeaders<'_>

Source

pub fn set_header(&mut self, name: &str, value: &str) -> VclResult<()>

Append a new header using name and value. This can fail if we run out of internal slots to store the new header

Source

pub fn unset_header(&mut self, name: &str)

Remove all headers matching name (case-insensitive). No-op if the header is absent.

Source

pub fn method(&self) -> Option<StrOrBytes<'_>>

Method of an HTTP request, None for a response

Source

pub fn url(&self) -> Option<StrOrBytes<'_>>

URL of an HTTP request, None for a response

Source

pub fn set_url(&mut self, value: &str) -> VclResult<()>

Set the URL of this HTTP request.

This updates the URL (path and query) component of the HTTP request line associated with this HttpHeaders object. It is only meaningful for request objects; for responses the corresponding url accessor will return None.

The new value must fit in the underlying Varnish workspace; otherwise an error is returned.

§Examples
// Change the URL of the current request before it is processed further.
http.set_url("/new/path?foo=bar")?;
assert_eq!(http.url().unwrap().as_str(), "/new/path?foo=bar");
Source

pub fn proto(&self) -> Option<StrOrBytes<'_>>

Protocol of an object

It should exist for both requests and responses, but the Option is maintained for consistency.

Source

pub fn set_proto(&mut self, value: &str) -> VclResult<()>

Set prototype

Source

pub fn status(&self) -> Option<StrOrBytes<'_>>

Response status, None for a request

Source

pub fn set_status(&mut self, status: u16)

Set the response status, it will also set the reason

Source

pub fn reason(&self) -> Option<StrOrBytes<'_>>

Response reason, None for a request

Source

pub fn set_reason(&mut self, value: &str) -> VclResult<()>

Set reason

Source

pub fn weaken_etag(&mut self) -> VclResult<()>

Weaken the ETag header if present and not already weak.

Implements RFC 2616 §3.11 ETag weakening: if the ETag header exists and does not already start with W/, it is replaced with W/<original-value>.

Source

pub fn header(&self, name: &str) -> Option<StrOrBytes<'_>>

Returns the value of a header based on its name

The header names are compared in a case-insensitive manner

Source

pub fn iter(&self) -> HttpHeadersIter<'_>

Iterate over (name, value) pairs for all headers, excluding the request/status line.

Trait Implementations§

Source§

impl<'a> Debug for HttpHeaders<'a>

Source§

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

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

impl<'a> IntoIterator for &'a HttpHeaders<'a>

Source§

type Item = (&'a str, StrOrBytes<'a>)

The type of the elements being iterated over.
Source§

type IntoIter = HttpHeadersIter<'a>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more

Auto Trait Implementations§

§

impl<'a> !Send for HttpHeaders<'a>

§

impl<'a> !Sync for HttpHeaders<'a>

§

impl<'a> !UnwindSafe for HttpHeaders<'a>

§

impl<'a> Freeze for HttpHeaders<'a>

§

impl<'a> RefUnwindSafe for HttpHeaders<'a>

§

impl<'a> Unpin for HttpHeaders<'a>

§

impl<'a> UnsafeUnpin for HttpHeaders<'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> 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> 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, 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.