pub(crate) mod cursor;
#[cfg(doc)]
use crate::{PeekCursor, PeekRead};
use cursor::DefaultImplPeekCursor;
pub use cursor::PeekCursorState;
#[cfg(doc)]
use std::io::BufRead;
use std::io::{Read, Result, Seek, SeekFrom};
pub trait PeekReadImpl {
fn peek_seek<'a>(&'a mut self, state: &'a mut PeekCursorState, pos: SeekFrom) -> Result<u64>;
fn peek_read<'a, 'b>(
&'a mut self,
state: &'a mut PeekCursorState,
buf: &'b mut [u8],
) -> Result<usize>;
fn peek_fill_buf<'a>(&'a mut self, state: &'a mut PeekCursorState) -> Result<&'a [u8]>;
fn peek_consume<'a>(&'a mut self, state: &'a mut PeekCursorState, amt: usize);
fn peek_stream_position<'a>(&'a mut self, state: &'a mut PeekCursorState) -> Result<u64> {
DefaultImplPeekCursor::new(self, state).stream_position()
}
fn peek_read_exact<'a, 'b>(
&'a mut self,
state: &'a mut PeekCursorState,
buf: &'b mut [u8],
) -> Result<()> {
DefaultImplPeekCursor::new(self, state).read_exact(buf)
}
fn peek_read_to_end<'a, 'b>(
&'a mut self,
state: &'a mut PeekCursorState,
buf: &'b mut Vec<u8>,
) -> Result<usize> {
DefaultImplPeekCursor::new(self, state).read_to_end(buf)
}
fn peek_read_to_string<'a, 'b>(
&'a mut self,
state: &'a mut PeekCursorState,
buf: &'b mut String,
) -> Result<usize> {
DefaultImplPeekCursor::new(self, state).read_to_string(buf)
}
fn peek_drop<'a>(&'a mut self, _state: &'a mut PeekCursorState) {
}
}