p
Size: a a a
p
AI
V
Ct
OA
В
&mut self. (Что не отменяет факта что ансейф ненужен тут)В
t🥔
OA
E
p
E
В
d
Iterator. Мне надо иметь возможность делать map, или же просто for _ in, но я не могу этого делать, потому что fn next овнит self. Есть какие-нибудь варианты это обойти? Я так понимаю, что обычная практика - это объявить какой-нибудь метод, типа .iter, которая будет возвращать сруктуру итератора и там уже владение будет возможно, но не совсем понимаю, как это реализовыватьВ
const не редко.AI
&mut self. (Что не отменяет факта что ансейф ненужен тут)d
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 referenceIB
Iterator. Мне надо иметь возможность делать map, или же просто for _ in, но я не могу этого делать, потому что fn next овнит self. Есть какие-нибудь варианты это обойти? Я так понимаю, что обычная практика - это объявить какой-нибудь метод, типа .iter, которая будет возвращать сруктуру итератора и там уже владение будет возможно, но не совсем понимаю, как это реализовыватьE
const не редко.d