Struct FCGIWriter

Source
pub struct FCGIWriter<RW> { /* private fields */ }
Available on crate feature codec only.

Implementations§

Source§

impl<RW: AsyncRead + AsyncWrite + Unpin> FCGIWriter<RW>

Source

pub fn new(io: RW) -> FCGIWriter<RW>

Source§

impl<W: AsyncWrite + Unpin> FCGIWriter<W>

Source

pub async fn shutdown(&mut self) -> Result<()>

Source

pub async fn encode(&mut self, item: FCGIType) -> Result<()>

Source

pub async fn data_stream<B>( &mut self, body: B, request_id: u16, rtype: RecordType, len: usize, ) -> Result<()>
where B: Body + Unpin,

Write whole body to the stream

Source

pub async fn flush_data_chunk<B>( &mut self, data: B, request_id: u16, rtype: RecordType, ) -> Result<()>
where B: Buf,

Write data to the stream. Insert header as needed. do not end the data stream

Source

pub fn kv_stream( &mut self, request_id: u16, rtype: RecordType, ) -> NameValuePairWriter<'_, W>

Create a NameValuePairWriter for this stream in order to write key value pairs (like PARAMS).

use tokio::io::AsyncWrite;
use async_fcgi::{fastcgi::RecordType, codec::FCGIWriter};
async fn write_params<W: AsyncWrite+Unpin>(fcgi_writer: &mut FCGIWriter<W>) -> std::io::Result<()> {
    let mut kvw = fcgi_writer.kv_stream(1, RecordType::Params);
    kvw.add_kv(&b"QUERY_STRING"[..], &b""[..]).await?;
    kvw.flush().await?;
    Ok(())
}

See encode_kvp

Trait Implementations§

Source§

impl<R: AsyncBufRead + Unpin> AsyncBufRead for FCGIWriter<R>

Source§

fn poll_fill_buf( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<&[u8]>>

Attempts to return the contents of the internal buffer, filling it with more data from the inner reader if it is empty. Read more
Source§

fn consume(self: Pin<&mut Self>, amt: usize)

Tells this buffer that amt bytes have been consumed from the buffer, so they should no longer be returned in calls to poll_read. Read more
Source§

impl<R: AsyncRead + Unpin> AsyncRead for FCGIWriter<R>

Source§

fn poll_read( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &mut ReadBuf<'_>, ) -> Poll<Result<()>>

Attempts to read from the AsyncRead into buf. Read more

Auto Trait Implementations§

§

impl<RW> Freeze for FCGIWriter<RW>
where RW: Freeze,

§

impl<RW> RefUnwindSafe for FCGIWriter<RW>
where RW: RefUnwindSafe,

§

impl<RW> Send for FCGIWriter<RW>
where RW: Send,

§

impl<RW> Sync for FCGIWriter<RW>
where RW: Sync,

§

impl<RW> Unpin for FCGIWriter<RW>
where RW: Unpin,

§

impl<RW> UnwindSafe for FCGIWriter<RW>
where RW: UnwindSafe,

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<R> AsyncBufReadExt for R
where R: AsyncBufRead + ?Sized,

Source§

fn read_until<'a>( &'a mut self, byte: u8, buf: &'a mut Vec<u8>, ) -> ReadUntil<'a, Self>
where Self: Unpin,

Reads all bytes into buf until the delimiter byte or EOF is reached. Read more
Source§

fn read_line<'a>(&'a mut self, buf: &'a mut String) -> ReadLine<'a, Self>
where Self: Unpin,

Reads all bytes until a newline (the 0xA byte) is reached, and append them to the provided buffer. Read more
Source§

fn split(self, byte: u8) -> Split<Self>
where Self: Sized + Unpin,

Returns a stream of the contents of this reader split on the byte byte. Read more
Source§

fn fill_buf(&mut self) -> FillBuf<'_, Self>
where Self: Unpin,

Returns the contents of the internal buffer, filling it with more data from the inner reader if it is empty. Read more
Source§

fn consume(&mut self, amt: usize)
where Self: Unpin,

Tells this buffer that amt bytes have been consumed from the buffer, so they should no longer be returned in calls to read. Read more
Source§

fn lines(self) -> Lines<Self>
where Self: Sized,

Returns a stream over the lines of this reader. This method is the async equivalent to BufRead::lines. Read more
Source§

impl<R> AsyncReadExt for R
where R: AsyncRead + ?Sized,

Source§

fn chain<R>(self, next: R) -> Chain<Self, R>
where Self: Sized, R: AsyncRead,

Creates a new AsyncRead instance that chains this stream with next. Read more
Source§

fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self>
where Self: Unpin,

Pulls some bytes from this source into the specified buffer, returning how many bytes were read. Read more
Source§

fn read_buf<'a, B>(&'a mut self, buf: &'a mut B) -> ReadBuf<'a, Self, B>
where Self: Sized + Unpin, B: BufMut,

Pulls some bytes from this source into the specified buffer, advancing the buffer’s internal cursor. Read more
Source§

fn read_exact<'a>(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self>
where Self: Unpin,

Reads the exact number of bytes required to fill buf. Read more
Source§

fn read_u8<'a>(&'a mut self) -> ReadU8<&'a mut Self>
where Self: Unpin,

Reads an unsigned 8 bit integer from the underlying reader. Read more
Source§

fn read_i8<'a>(&'a mut self) -> ReadI8<&'a mut Self>
where Self: Unpin,

Reads a signed 8 bit integer from the underlying reader. Read more
Source§

fn read_u16<'a>(&'a mut self) -> ReadU16<&'a mut Self>
where Self: Unpin,

Reads an unsigned 16-bit integer in big-endian order from the underlying reader. Read more
Source§

fn read_i16<'a>(&'a mut self) -> ReadI16<&'a mut Self>
where Self: Unpin,

Reads a signed 16-bit integer in big-endian order from the underlying reader. Read more
Source§

fn read_u32<'a>(&'a mut self) -> ReadU32<&'a mut Self>
where Self: Unpin,

Reads an unsigned 32-bit integer in big-endian order from the underlying reader. Read more
Source§

fn read_i32<'a>(&'a mut self) -> ReadI32<&'a mut Self>
where Self: Unpin,

Reads a signed 32-bit integer in big-endian order from the underlying reader. Read more
Source§

fn read_u64<'a>(&'a mut self) -> ReadU64<&'a mut Self>
where Self: Unpin,

Reads an unsigned 64-bit integer in big-endian order from the underlying reader. Read more
Source§

fn read_i64<'a>(&'a mut self) -> ReadI64<&'a mut Self>
where Self: Unpin,

Reads an signed 64-bit integer in big-endian order from the underlying reader. Read more
Source§

fn read_u128<'a>(&'a mut self) -> ReadU128<&'a mut Self>
where Self: Unpin,

Reads an unsigned 128-bit integer in big-endian order from the underlying reader. Read more
Source§

fn read_i128<'a>(&'a mut self) -> ReadI128<&'a mut Self>
where Self: Unpin,

Reads an signed 128-bit integer in big-endian order from the underlying reader. Read more
Source§

fn read_f32<'a>(&'a mut self) -> ReadF32<&'a mut Self>
where Self: Unpin,

Reads an 32-bit floating point type in big-endian order from the underlying reader. Read more
Source§

fn read_f64<'a>(&'a mut self) -> ReadF64<&'a mut Self>
where Self: Unpin,

Reads an 64-bit floating point type in big-endian order from the underlying reader. Read more
Source§

fn read_u16_le<'a>(&'a mut self) -> ReadU16Le<&'a mut Self>
where Self: Unpin,

Reads an unsigned 16-bit integer in little-endian order from the underlying reader. Read more
Source§

fn read_i16_le<'a>(&'a mut self) -> ReadI16Le<&'a mut Self>
where Self: Unpin,

Reads a signed 16-bit integer in little-endian order from the underlying reader. Read more
Source§

fn read_u32_le<'a>(&'a mut self) -> ReadU32Le<&'a mut Self>
where Self: Unpin,

Reads an unsigned 32-bit integer in little-endian order from the underlying reader. Read more
Source§

fn read_i32_le<'a>(&'a mut self) -> ReadI32Le<&'a mut Self>
where Self: Unpin,

Reads a signed 32-bit integer in little-endian order from the underlying reader. Read more
Source§

fn read_u64_le<'a>(&'a mut self) -> ReadU64Le<&'a mut Self>
where Self: Unpin,

Reads an unsigned 64-bit integer in little-endian order from the underlying reader. Read more
Source§

fn read_i64_le<'a>(&'a mut self) -> ReadI64Le<&'a mut Self>
where Self: Unpin,

Reads an signed 64-bit integer in little-endian order from the underlying reader. Read more
Source§

fn read_u128_le<'a>(&'a mut self) -> ReadU128Le<&'a mut Self>
where Self: Unpin,

Reads an unsigned 128-bit integer in little-endian order from the underlying reader. Read more
Source§

fn read_i128_le<'a>(&'a mut self) -> ReadI128Le<&'a mut Self>
where Self: Unpin,

Reads an signed 128-bit integer in little-endian order from the underlying reader. Read more
Source§

fn read_f32_le<'a>(&'a mut self) -> ReadF32Le<&'a mut Self>
where Self: Unpin,

Reads an 32-bit floating point type in little-endian order from the underlying reader. Read more
Source§

fn read_f64_le<'a>(&'a mut self) -> ReadF64Le<&'a mut Self>
where Self: Unpin,

Reads an 64-bit floating point type in little-endian order from the underlying reader. Read more
Source§

fn read_to_end<'a>(&'a mut self, buf: &'a mut Vec<u8>) -> ReadToEnd<'a, Self>
where Self: Unpin,

Reads all bytes until EOF in this source, placing them into buf. Read more
Source§

fn read_to_string<'a>( &'a mut self, dst: &'a mut String, ) -> ReadToString<'a, Self>
where Self: Unpin,

Reads all bytes until EOF in this source, appending them to buf. Read more
Source§

fn take(self, limit: u64) -> Take<Self>
where Self: Sized,

Creates an adaptor which reads at most limit bytes from it. 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.