Попытка скомпилировать эту программу, я застрять на заема проверки:Mutable заема, кажется, переживет его объем
use std::collections::BTreeMap;
type Object<'a> = BTreeMap<&'a str, i32>;
struct Root<'a>(Object<'a>);
struct Sub<'a>(&'a mut Object<'a>, &'a str);
impl<'a> Root<'a> {
fn borrow_mut(&'a mut self, data: &'a str) -> Sub<'a> {
Sub(&mut self.0, data)
}
fn borrow(&self) {
println!("{:?}", self.0);
}
}
fn main() {
let mut me = Root(Object::new());
{
me.borrow_mut("data!");
}
me.borrow();
}
я получаю:
error: cannot borrow `me` as immutable because it is also borrowed as mutable
Похоже, изменяемые заема должна закончиться до me.borrow()
но контролер настаивает на том, что он заканчивается, когда заканчивается main
.
Чтобы быстро объяснить, что я пытаюсь выполнить:
- сделать родительский-структуру для хранения данных
- Сделать подкатегорию данных и хранить его в родительском
- Используйте этот строитель стиль шаблон сделать MongoDB запросы
Над кодом на ржавчину манежа: http://is.gd/mLbBFG
А? Теперь это неожиданно, изменчивый заимствование должно быть ограничено. Ох ... если ваши жизни не повлияют на это ... –