1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
pub trait Reader {
    fn new() -> Self;
    fn open(&mut self, filename: &str) -> Result<(), String>;

    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>;
}