IB
pub struct KvStore<T> {
storage: T, // здесь будет FileStorage при инициализации
}
pub struct FileStorage {
file: File,
reader: BufReader<File>,
}
impl Iterator for FileStorage {
type Item = String;
fn next(&mut self) -> Option<Self::Item> {
let mut buff = String::new();
match self.reader.read_line(&mut buff) {
Ok(_) => Some(buff),
Err(_) => None,
}
}
}
а вот тут возникает ошибка:
fn get(&self, key) { self.storage.map(…) }
// cannot move out of `self.storage` which is behind a shared reference