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 reference
IB
Iterator
. Мне надо иметь возможность делать map
, или же просто for _ in
, но я не могу этого делать, потому что fn next
овнит self. Есть какие-нибудь варианты это обойти? Я так понимаю, что обычная практика - это объявить какой-нибудь метод, типа .iter
, которая будет возвращать сруктуру итератора и там уже владение будет возможно, но не совсем понимаю, как это реализовыватьE
const
не редко.d