1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
use crate::bitcursor::BitCursorResult;
pub enum BitSeekFrom {
/// Seek a given number of (bytes, bits) forwards from the start of the buffer.
Start(u64, u64),
/// Seek a given number of (bytes, bits) in either direction from the current position.
Current(i64, i64),
/// Seek a given number of (bytes, bits) backwards from the end of the buffer.
End(i64, i64),
}
pub trait BitSeek {
fn seek(&mut self, pos: BitSeekFrom) -> BitCursorResult<(u64, u64)>;
fn rewind(&mut self) -> BitCursorResult<()> {
self.seek(BitSeekFrom::Start(0, 0)).map(|_| ())
}
}