такой код у меня:
struct WorldResource<'a> {
tiles: &'a mut HashMap<(i32, i32), TileProperties>,
chunks: &'a mut HashMap<(i32, i32), ChunkProperties>,
}
impl<'a> WorldResource<'a> {
fn new() -> WorldResource<'a> {
WorldResource {
tiles: &mut HashMap::new(),
chunks: &mut HashMap::new(),
}
}
}
компилятор пишет ошибку:
17 | | chunks: &mut HashMap::new(),
| | -------------- temporary value created here
18 | | }
| |_________^ returns a value referencing data owned by the current function
понятно что там создаётся ссылка на hashmap, но как убедить его, что ссылка будет жить ровно столько, сколько живет и вся родительская структура?
Звучит как ошибка дизайна. Почему ворлдресурс хранит ссылку а не владеет
Обсуждают сегодня