pub trait Seek: IO {
// Required method
fn seek(&mut self, pos: SeekFrom) -> Result<u64, Self::Error>;
// Provided methods
fn stream_len(&mut self) -> Result<u64, Self::Error> { ... }
fn stream_position(&mut self) -> Result<u64, Self::Error> { ... }
}