Struct git_packetline::read::WithSidebands
source · pub struct WithSidebands<'a, T, F>where
T: Read,{ /* private fields */ }
blocking-io
and (crate features blocking-io
or async-io
) only.Expand description
An implementor of BufRead
yielding packet lines on each call to read_line()
.
It’s also possible to hide the underlying packet lines using the Read
implementation which is useful
if they represent binary data, like the one of a pack file.
Implementations§
source§impl<'a, T> WithSidebands<'a, T, fn(_: bool, _: &[u8])>where
T: Read,
impl<'a, T> WithSidebands<'a, T, fn(_: bool, _: &[u8])>where T: Read,
sourcepub fn new(parent: &'a mut StreamingPeekableIter<T>) -> Self
pub fn new(parent: &'a mut StreamingPeekableIter<T>) -> Self
Create a new instance with the given provider as parent
.
source§impl<'a, T, F> WithSidebands<'a, T, F>where
T: Read,
F: FnMut(bool, &[u8]),
impl<'a, T, F> WithSidebands<'a, T, F>where T: Read, F: FnMut(bool, &[u8]),
sourcepub fn with_progress_handler(
parent: &'a mut StreamingPeekableIter<T>,
handle_progress: F
) -> Self
pub fn with_progress_handler( parent: &'a mut StreamingPeekableIter<T>, handle_progress: F ) -> Self
Create a new instance with the given parent
provider and the handle_progress
function.
Progress or error information will be passed to the given handle_progress(is_error, text)
function, with is_error: bool
being true in case the text
is to be interpreted as error.
sourcepub fn without_progress_handler(
parent: &'a mut StreamingPeekableIter<T>
) -> Self
pub fn without_progress_handler( parent: &'a mut StreamingPeekableIter<T> ) -> Self
Create a new instance without a progress handler.
sourcepub fn reset_with(&mut self, delimiters: &'static [PacketLineRef<'static>])
pub fn reset_with(&mut self, delimiters: &'static [PacketLineRef<'static>])
Forwards to the parent StreamingPeekableIter::reset_with()
sourcepub fn stopped_at(&self) -> Option<PacketLineRef<'static>>
pub fn stopped_at(&self) -> Option<PacketLineRef<'static>>
Forwards to the parent StreamingPeekableIter::stopped_at()
sourcepub fn set_progress_handler(&mut self, handle_progress: Option<F>)
pub fn set_progress_handler(&mut self, handle_progress: Option<F>)
Set or unset the progress handler.
sourcepub fn peek_data_line(&mut self) -> Option<Result<Result<&[u8], Error>>>
pub fn peek_data_line(&mut self) -> Option<Result<Result<&[u8], Error>>>
Effectively forwards to the parent StreamingPeekableIter::peek_line(), allowing to see what would be returned
next on a call to read_line()
.
Warning
This skips all sideband handling and may return an unprocessed line with sidebands still contained in it.
sourcepub fn read_data_line(
&mut self
) -> Option<Result<Result<PacketLineRef<'_>, Error>>>
pub fn read_data_line( &mut self ) -> Option<Result<Result<PacketLineRef<'_>, Error>>>
Read a whole packetline from the underlying reader, with empty lines indicating a stop packetline.
Warning
This skips all sideband handling and may return an unprocessed line with sidebands still contained in it.
Trait Implementations§
source§impl<'a, T, F> BufRead for WithSidebands<'a, T, F>where
T: Read,
F: FnMut(bool, &[u8]),
impl<'a, T, F> BufRead for WithSidebands<'a, T, F>where T: Read, F: FnMut(bool, &[u8]),
source§fn fill_buf(&mut self) -> Result<&[u8]>
fn fill_buf(&mut self) -> Result<&[u8]>
source§fn consume(&mut self, amt: usize)
fn consume(&mut self, amt: usize)
amt
bytes have been consumed from the buffer,
so they should no longer be returned in calls to read
. Read moresource§fn read_line(&mut self, buf: &mut String) -> Result<usize>
fn read_line(&mut self, buf: &mut String) -> Result<usize>
0xA
byte) is reached, and append
them to the provided String
buffer. Read moresource§fn has_data_left(&mut self) -> Result<bool, Error>
fn has_data_left(&mut self) -> Result<bool, Error>
buf_read_has_data_left
)Read
has any data left to be read. Read more1.0.0 · source§fn read_until(
&mut self,
byte: u8,
buf: &mut Vec<u8, Global>
) -> Result<usize, Error>
fn read_until( &mut self, byte: u8, buf: &mut Vec<u8, Global> ) -> Result<usize, Error>
source§impl<'a, T, F> Drop for WithSidebands<'a, T, F>where
T: Read,
impl<'a, T, F> Drop for WithSidebands<'a, T, F>where T: Read,
source§impl<'a, T, F> Read for WithSidebands<'a, T, F>where
T: Read,
F: FnMut(bool, &[u8]),
impl<'a, T, F> Read for WithSidebands<'a, T, F>where T: Read, F: FnMut(bool, &[u8]),
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 more