1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
use std::io::SeekFrom; pub trait Reader { fn open(filename: &String) -> Self; fn get_cache_size(&self) -> Option<usize>; fn set_cache_size(&mut self, cache_size: Option<usize>); fn get_max_end_position(&self) -> Option<u64>; fn set_max_end_position(&mut self, max_end_position: Option<u64>); fn get_position(&mut self) -> Result<u64, String>; fn get_size(&mut self) -> Result<u64, String>; fn read(&mut self, size: usize) -> Result<Vec<u8>, String>; fn seek(&mut self, seek: SeekFrom) -> Result<u64, String>; }