Struct thrift::transport::TBufferChannel
source · pub struct TBufferChannel { /* private fields */ }
Expand description
In-memory read and write channel with fixed-size read and write buffers.
On a write
bytes are written to the internal write buffer. Writes are no
longer accepted once this buffer is full. Callers must empty_write_buffer()
before subsequent writes are accepted.
You can set readable bytes in the internal read buffer by filling it with
set_readable_bytes(...)
. Callers can then read until the buffer is
depleted. No further reads are accepted until the internal read buffer is
replenished again.
Implementations§
source§impl TBufferChannel
impl TBufferChannel
sourcepub fn with_capacity(
read_capacity: usize,
write_capacity: usize
) -> TBufferChannel ⓘ
pub fn with_capacity( read_capacity: usize, write_capacity: usize ) -> TBufferChannel ⓘ
Constructs a new, empty TBufferChannel
with the given
read buffer capacity and write buffer capacity.
sourcepub fn read_bytes(&self) -> Vec<u8>
pub fn read_bytes(&self) -> Vec<u8>
Return a copy of the bytes held by the internal read buffer. Returns an empty vector if no readable bytes are present.
sourcepub fn empty_read_buffer(&mut self)
pub fn empty_read_buffer(&mut self)
Reset the number of readable bytes to zero.
Subsequent calls to read
will return nothing.
sourcepub fn set_readable_bytes(&mut self, buf: &[u8]) -> usize
pub fn set_readable_bytes(&mut self, buf: &[u8]) -> usize
Copy bytes from the source buffer buf
into the internal read buffer,
overwriting any existing bytes. Returns the number of bytes copied,
which is min(buf.len(), internal_read_buf.len())
.
sourcepub fn write_bytes(&self) -> Vec<u8>
pub fn write_bytes(&self) -> Vec<u8>
Return a copy of the bytes held by the internal write buffer. Returns an empty vector if no bytes were written.
sourcepub fn empty_write_buffer(&mut self)
pub fn empty_write_buffer(&mut self)
Resets the internal write buffer, making it seem like no bytes were
written. Calling write_buffer
after this returns an empty vector.
sourcepub fn copy_write_buffer_to_read_buffer(&mut self)
pub fn copy_write_buffer_to_read_buffer(&mut self)
Overwrites the contents of the read buffer with the contents of the write buffer. The write buffer is emptied after this operation.
Trait Implementations§
source§impl Clone for TBufferChannel
impl Clone for TBufferChannel
source§impl Debug for TBufferChannel
impl Debug for TBufferChannel
source§impl Read for TBufferChannel
impl Read for TBufferChannel
source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
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>
read
, except that it reads into a slice of buffers. Read moresource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
can_vector
)1.0.0 · source§fn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>
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>
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>
buf
. Read moresource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)cursor
. Read more1.0.0 · source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere Self: Sized,
Read
. Read moresource§impl TIoChannel for TBufferChannel
impl TIoChannel for TBufferChannel
source§fn split(self) -> Result<(ReadHalf<Self>, WriteHalf<Self>)>where
Self: Sized,
fn split(self) -> Result<(ReadHalf<Self>, WriteHalf<Self>)>where Self: Sized,
io::Read
and the writable half implements
io::Write
. Returns None
if the channel was not initialized, or if it
cannot be split safely. Read moresource§impl Write for TBufferChannel
impl Write for TBufferChannel
source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
can_vector
)1.0.0 · source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
write_all_vectored
)Auto Trait Implementations§
impl RefUnwindSafe for TBufferChannel
impl Send for TBufferChannel
impl Sync for TBufferChannel
impl Unpin for TBufferChannel
impl UnwindSafe for TBufferChannel
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
source§impl<R> FixedIntReader for Rwhere
R: Read,
impl<R> FixedIntReader for Rwhere R: Read,
source§impl<W> FixedIntWriter for Wwhere
W: Write,
impl<W> FixedIntWriter for Wwhere W: Write,
source§impl<R> ReadBytesExt for Rwhere
R: Read + ?Sized,
impl<R> ReadBytesExt for Rwhere R: Read + ?Sized,
source§fn read_u8(&mut self) -> Result<u8, Error>
fn read_u8(&mut self) -> Result<u8, Error>
source§fn read_i8(&mut self) -> Result<i8, Error>
fn read_i8(&mut self) -> Result<i8, Error>
source§fn read_u16<T>(&mut self) -> Result<u16, Error>where
T: ByteOrder,
fn read_u16<T>(&mut self) -> Result<u16, Error>where T: ByteOrder,
source§fn read_i16<T>(&mut self) -> Result<i16, Error>where
T: ByteOrder,
fn read_i16<T>(&mut self) -> Result<i16, Error>where T: ByteOrder,
source§fn read_u24<T>(&mut self) -> Result<u32, Error>where
T: ByteOrder,
fn read_u24<T>(&mut self) -> Result<u32, Error>where T: ByteOrder,
source§fn read_i24<T>(&mut self) -> Result<i32, Error>where
T: ByteOrder,
fn read_i24<T>(&mut self) -> Result<i32, Error>where T: ByteOrder,
source§fn read_u32<T>(&mut self) -> Result<u32, Error>where
T: ByteOrder,
fn read_u32<T>(&mut self) -> Result<u32, Error>where T: ByteOrder,
source§fn read_i32<T>(&mut self) -> Result<i32, Error>where
T: ByteOrder,
fn read_i32<T>(&mut self) -> Result<i32, Error>where T: ByteOrder,
source§fn read_u48<T>(&mut self) -> Result<u64, Error>where
T: ByteOrder,
fn read_u48<T>(&mut self) -> Result<u64, Error>where T: ByteOrder,
source§fn read_i48<T>(&mut self) -> Result<i64, Error>where
T: ByteOrder,
fn read_i48<T>(&mut self) -> Result<i64, Error>where T: ByteOrder,
source§fn read_u64<T>(&mut self) -> Result<u64, Error>where
T: ByteOrder,
fn read_u64<T>(&mut self) -> Result<u64, Error>where T: ByteOrder,
source§fn read_i64<T>(&mut self) -> Result<i64, Error>where
T: ByteOrder,
fn read_i64<T>(&mut self) -> Result<i64, Error>where T: ByteOrder,
source§fn read_u128<T>(&mut self) -> Result<u128, Error>where
T: ByteOrder,
fn read_u128<T>(&mut self) -> Result<u128, Error>where T: ByteOrder,
source§fn read_i128<T>(&mut self) -> Result<i128, Error>where
T: ByteOrder,
fn read_i128<T>(&mut self) -> Result<i128, Error>where T: ByteOrder,
source§fn read_uint<T>(&mut self, nbytes: usize) -> Result<u64, Error>where
T: ByteOrder,
fn read_uint<T>(&mut self, nbytes: usize) -> Result<u64, Error>where T: ByteOrder,
source§fn read_int<T>(&mut self, nbytes: usize) -> Result<i64, Error>where
T: ByteOrder,
fn read_int<T>(&mut self, nbytes: usize) -> Result<i64, Error>where T: ByteOrder,
source§fn read_uint128<T>(&mut self, nbytes: usize) -> Result<u128, Error>where
T: ByteOrder,
fn read_uint128<T>(&mut self, nbytes: usize) -> Result<u128, Error>where T: ByteOrder,
source§fn read_int128<T>(&mut self, nbytes: usize) -> Result<i128, Error>where
T: ByteOrder,
fn read_int128<T>(&mut self, nbytes: usize) -> Result<i128, Error>where T: ByteOrder,
source§fn read_f32<T>(&mut self) -> Result<f32, Error>where
T: ByteOrder,
fn read_f32<T>(&mut self) -> Result<f32, Error>where T: ByteOrder,
source§fn read_f64<T>(&mut self) -> Result<f64, Error>where
T: ByteOrder,
fn read_f64<T>(&mut self) -> Result<f64, Error>where T: ByteOrder,
source§fn read_u16_into<T>(&mut self, dst: &mut [u16]) -> Result<(), Error>where
T: ByteOrder,
fn read_u16_into<T>(&mut self, dst: &mut [u16]) -> Result<(), Error>where T: ByteOrder,
source§fn read_u32_into<T>(&mut self, dst: &mut [u32]) -> Result<(), Error>where
T: ByteOrder,
fn read_u32_into<T>(&mut self, dst: &mut [u32]) -> Result<(), Error>where T: ByteOrder,
source§fn read_u64_into<T>(&mut self, dst: &mut [u64]) -> Result<(), Error>where
T: ByteOrder,
fn read_u64_into<T>(&mut self, dst: &mut [u64]) -> Result<(), Error>where T: ByteOrder,
source§fn read_u128_into<T>(&mut self, dst: &mut [u128]) -> Result<(), Error>where
T: ByteOrder,
fn read_u128_into<T>(&mut self, dst: &mut [u128]) -> Result<(), Error>where T: ByteOrder,
source§fn read_i8_into(&mut self, dst: &mut [i8]) -> Result<(), Error>
fn read_i8_into(&mut self, dst: &mut [i8]) -> Result<(), Error>
source§fn read_i16_into<T>(&mut self, dst: &mut [i16]) -> Result<(), Error>where
T: ByteOrder,
fn read_i16_into<T>(&mut self, dst: &mut [i16]) -> Result<(), Error>where T: ByteOrder,
source§fn read_i32_into<T>(&mut self, dst: &mut [i32]) -> Result<(), Error>where
T: ByteOrder,
fn read_i32_into<T>(&mut self, dst: &mut [i32]) -> Result<(), Error>where T: ByteOrder,
source§fn read_i64_into<T>(&mut self, dst: &mut [i64]) -> Result<(), Error>where
T: ByteOrder,
fn read_i64_into<T>(&mut self, dst: &mut [i64]) -> Result<(), Error>where T: ByteOrder,
source§fn read_i128_into<T>(&mut self, dst: &mut [i128]) -> Result<(), Error>where
T: ByteOrder,
fn read_i128_into<T>(&mut self, dst: &mut [i128]) -> Result<(), Error>where T: ByteOrder,
source§fn read_f32_into<T>(&mut self, dst: &mut [f32]) -> Result<(), Error>where
T: ByteOrder,
fn read_f32_into<T>(&mut self, dst: &mut [f32]) -> Result<(), Error>where T: ByteOrder,
source§fn read_f32_into_unchecked<T>(&mut self, dst: &mut [f32]) -> Result<(), Error>where
T: ByteOrder,
fn read_f32_into_unchecked<T>(&mut self, dst: &mut [f32]) -> Result<(), Error>where T: ByteOrder,
read_f32_into
instead