Struct proxy_header::io::ProxiedStream
source · pub struct ProxiedStream<IO> { /* private fields */ }
Expand description
Wrapper around a stream that starts with a proxy header.
Implementations§
source§impl<IO> ProxiedStream<IO>
impl<IO> ProxiedStream<IO>
sourcepub fn unproxied(io: IO) -> Self
pub fn unproxied(io: IO) -> Self
Create a new proxied stream from an stream that does not have a proxy header.
This is useful if you want to use the same stream type for proxied and unproxied connections.
sourcepub fn proxy_header(&self) -> &ProxyHeader<'_>
pub fn proxy_header(&self) -> &ProxyHeader<'_>
Get the proxy header.
sourcepub fn into_inner(self) -> IO
pub fn into_inner(self) -> IO
Consumes this wrapper, returning the underlying stream.
source§impl<IO> ProxiedStream<IO>where
IO: Read,
impl<IO> ProxiedStream<IO>where
IO: Read,
sourcepub fn create_from_std(io: IO, config: ParseConfig) -> Result<Self>
pub fn create_from_std(io: IO, config: ParseConfig) -> Result<Self>
Reads the proxy header from a Read
stream and returns a new ProxiedStream
.
Other than the fact that this method is synchronous, it is identical to create_from_tokio
.
Trait Implementations§
source§impl<IO> AsFd for ProxiedStream<IO>where
IO: AsFd,
impl<IO> AsFd for ProxiedStream<IO>where
IO: AsFd,
source§fn as_fd(&self) -> BorrowedFd<'_>
fn as_fd(&self) -> BorrowedFd<'_>
Borrows the file descriptor. Read more
source§impl<IO> AsRawFd for ProxiedStream<IO>where
IO: AsRawFd,
impl<IO> AsRawFd for ProxiedStream<IO>where
IO: AsRawFd,
source§impl<IO> BufRead for ProxiedStream<IO>where
IO: BufRead,
impl<IO> BufRead for ProxiedStream<IO>where
IO: BufRead,
source§fn fill_buf(&mut self) -> Result<&[u8]>
fn fill_buf(&mut self) -> Result<&[u8]>
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)
fn consume(&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 read
. Read moresource§fn has_data_left(&mut self) -> Result<bool, Error>
fn has_data_left(&mut self) -> Result<bool, Error>
🔬This is a nightly-only experimental API. (
buf_read_has_data_left
)Checks if the underlying
Read
has any data left to be read. Read moresource§fn skip_until(&mut self, byte: u8) -> Result<usize, Error>
fn skip_until(&mut self, byte: u8) -> Result<usize, Error>
🔬This is a nightly-only experimental API. (
bufread_skip_until
)Skips all bytes until the delimiter
byte
or EOF is reached. Read more1.0.0 · source§fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>
Reads all bytes until a newline (the
0xA
byte) is reached, and append
them to the provided String
buffer. Read moresource§impl<IO: Debug> Debug for ProxiedStream<IO>
impl<IO: Debug> Debug for ProxiedStream<IO>
source§impl<IO> Read for ProxiedStream<IO>where
IO: Read,
impl<IO> Read for ProxiedStream<IO>where
IO: Read,
source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning
how many bytes were read. Read more
1.36.0 · source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
Like
read
, except that it reads into a slice of buffers. Read moresource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
Reads all bytes until EOF in this source, placing them into
buf
. Read more1.0.0 · source§fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
Reads all bytes until EOF in this source, appending them to
buf
. Read more1.6.0 · source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
Reads the exact number of bytes required to fill
buf
. Read moresource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Pull some bytes from this source into the specified buffer. Read more
source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Reads the exact number of bytes required to fill
cursor
. Read more1.0.0 · source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Creates a “by reference” adaptor for this instance of
Read
. Read moresource§impl<IO> Write for ProxiedStream<IO>where
IO: Write,
impl<IO> Write for ProxiedStream<IO>where
IO: Write,
source§fn write_all(&mut self, buf: &[u8]) -> Result<()>
fn write_all(&mut self, buf: &[u8]) -> Result<()>
Attempts to write an entire buffer into this writer. Read more
source§fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<()>
fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<()>
Writes a formatted string into this writer, returning any error
encountered. Read more
source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Writes a buffer into this writer, returning how many bytes were written. Read more
source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flushes this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)Auto Trait Implementations§
impl<IO> Freeze for ProxiedStream<IO>where
IO: Freeze,
impl<IO> RefUnwindSafe for ProxiedStream<IO>where
IO: RefUnwindSafe,
impl<IO> Send for ProxiedStream<IO>where
IO: Send,
impl<IO> Sync for ProxiedStream<IO>where
IO: Sync,
impl<IO> Unpin for ProxiedStream<IO>where
IO: Unpin,
impl<IO> UnwindSafe for ProxiedStream<IO>where
IO: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more