in src/buffered.rs [137:163]
fn start_seek(mut self: Pin<&mut Self>, position: SeekFrom) -> std::io::Result<()> {
self.cursor = match position {
SeekFrom::Start(offset) => offset,
SeekFrom::End(offset) => checked_add_signed(self.size, offset).ok_or_else(|| {
Error::new(
ErrorKind::InvalidInput,
format!(
"Seeking {offset} from end of {} byte file would result in overflow",
self.size
),
)
})?,
SeekFrom::Current(offset) => {
checked_add_signed(self.cursor, offset).ok_or_else(|| {
Error::new(
ErrorKind::InvalidInput,
format!(
"Seeking {offset} from current offset of {} would result in overflow",
self.cursor
),
)
})?
}
};
self.buffer = Buffer::Empty;
Ok(())
}