pub struct HttpMessage<'lua> { /* private fields */ }
Expand description

This class contains all functions to manipulate an HTTP message. For now, this class is only available from a filter context.

Implementations§

source§

impl<'lua> HttpMessage<'lua>

source

pub fn add_header(&self, name: &str, value: impl AsRef<[u8]>) -> Result<()>

Appends an HTTP header field in the HTTP message whose name is specified in name and value is defined in value.

source

pub fn append(&self, data: impl AsRef<[u8]>) -> Result<isize>

Copies the string at the end of incoming data of the HTTP message. The function returns the copied length on success or -1 if data cannot be copied.

source

pub fn body( &self, offset: Option<isize>, length: Option<isize> ) -> Result<Option<LuaString<'_>>>

Returns length bytes of incoming data from the HTTP message, starting at the offset. The data are not removed from the buffer.

source

pub fn channel(&self) -> Result<Channel<'_>>

Returns a corresponding channel attached to the HTTP message.

source

pub fn eom(&self) -> Result<bool>

Returns true if the end of message is reached.

source

pub fn del_header(&self, name: &str) -> Result<()>

Removes all HTTP header fields in the HTTP message whose name is specified in name.

source

pub fn get_headers(&self) -> Result<Headers<'_>>

Returns a table containing all the headers of the HTTP message.

source

pub fn get_stline(&self) -> Result<Table<'_>>

Returns a table containing the start-line of the HTTP message.

source

pub fn forward(&self, length: usize) -> Result<usize>

Forwards length bytes of data from the HTTP message. Returns the amount of data forwarded.

Because it is called in the filter context, it never yield. Only available incoming data may be forwarded, event if the requested length exceeds the available amount of incoming data.

source

pub fn input(&self) -> Result<usize>

Returns the length of incoming data in the HTTP message from the calling filter point of view.

source

pub fn insert( &self, data: impl AsRef<[u8]>, offset: Option<isize> ) -> Result<isize>

Copies the data at the offset in incoming data of the HTTP message. Returns the copied length on success or -1 if data cannot be copied.

By default, if no offset is provided, the string is copied in front of incoming data. A positive offset is relative to the beginning of incoming data of the channel buffer while negative offset is relative to their end.

source

pub fn is_full(&self) -> Result<bool>

Returns true if the HTTP message is full.

source

pub fn is_resp(&self) -> Result<bool>

Returns true if the HTTP message is the response one.

source

pub fn may_recv(&self) -> Result<bool>

Returns true if the HTTP message may still receive data.

source

pub fn output(&self) -> Result<usize>

Returns the length of outgoing data of the HTTP message.

source

pub fn prepend(&self, data: impl AsRef<[u8]>) -> Result<isize>

Copies the data in front of incoming data of the HTTP message. Returns the copied length on success or -1 if data cannot be copied.

source

pub fn remove( &self, offset: Option<isize>, length: Option<usize> ) -> Result<isize>

Removes length bytes of incoming data of the HTTP message, starting at offset. Returns number of bytes removed on success.

source

pub fn rep_header(&self, name: &str, regex: &str, replace: &str) -> Result<()>

Matches the regular expression in all occurrences of header field name according to regex, and replaces them with the replace.

The replacement value can contain back references like 1, 2, … This function acts on whole header lines, regardless of the number of values they may contain.

source

pub fn rep_value(&self, name: &str, regex: &str, replace: &str) -> Result<()>

Matches the regular expression on every comma-delimited value of header field name according to regex, and replaces them with the replace.

The replacement value can contain back references like 1, 2, …

source

pub fn send(&self, data: impl AsRef<[u8]>) -> Result<isize>

Requires immediate send of the data. It means the data is copied at the beginning of incoming data of the HTTP message and immediately forwarded.

Because it is called in the filter context, it never yield.

source

pub fn set( &self, data: impl AsRef<[u8]>, offset: Option<isize>, length: Option<usize> ) -> Result<isize>

Replaces length bytes of incoming data of the HTTP message, starting at offset, by the string data. Returns the copied length on success or -1 if data cannot be copied.

source

pub fn set_eom(&self, eom: bool) -> Result<()>

Sets or removes the flag that indicates end of message.

source

pub fn set_header(&self, name: &str, value: impl AsRef<[u8]>) -> Result<()>

Replaces all occurrence of all header matching the name, by only one containing the value.

source

pub fn set_method(&self, method: &str) -> Result<()>

Rewrites the request method.

source

pub fn set_path(&self, path: &str) -> Result<()>

Rewrites the request path.

source

pub fn set_query(&self, query: &str) -> Result<()>

Rewrites the request’s query string which appears after the first question mark “?”.

source

pub fn set_status(&self, status: u16, reason: Option<&str>) -> Result<()>

Rewrites the response status code with the new status and optional reason. If no custom reason is provided, it will be generated from the status.

source

pub fn set_uri(&self, uri: &str) -> Result<()>

Rewrites the request URI.

Trait Implementations§

source§

impl<'lua> Clone for HttpMessage<'lua>

source§

fn clone(&self) -> HttpMessage<'lua>

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§

impl<'lua> FromLua<'lua> for HttpMessage<'lua>

source§

fn from_lua(value: Value<'lua>, lua: &'lua Lua) -> Result<Self>

Performs the conversion.

Auto Trait Implementations§

§

impl<'lua> !RefUnwindSafe for HttpMessage<'lua>

§

impl<'lua> !Send for HttpMessage<'lua>

§

impl<'lua> !Sync for HttpMessage<'lua>

§

impl<'lua> Unpin for HttpMessage<'lua>

§

impl<'lua> !UnwindSafe for HttpMessage<'lua>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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<'lua, T> FromLuaMulti<'lua> for Twhere T: FromLua<'lua>,

source§

fn from_lua_multi(values: MultiValue<'lua>, lua: &'lua Lua) -> Result<T, Error>

Performs the conversion. Read more
source§

fn from_lua_args( args: MultiValue<'lua>, i: usize, to: Option<&str>, lua: &'lua Lua ) -> Result<T, Error>

source§

unsafe fn from_stack_multi(nvals: i32, lua: &'lua Lua) -> Result<T, Error>

source§

unsafe fn from_stack_args( nargs: i32, i: usize, to: Option<&str>, lua: &'lua Lua ) -> Result<T, Error>

source§

impl<T, U> Into<U> for Twhere 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 Twhere T: Clone,

§

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, U> TryFrom<U> for Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.