Como faço para retornar uma matriz própria de uma função?
Sou um novato do Rust tentando descobrir o idioma brincando com ele. Eu encontrei alguns problemas ao tentar retornar uma matriz de uma função:
struct Widget {
thingies: ~[int]
}
impl Widget {
fn new() -> Widget {
Widget { thingies: ~[4, 8, 15, 16, 23, 42] }
}
fn somethings(&self) -> ~[int] {
self.thingies
}
}
fn main() {
let widget = Widget::new();
let wotsits = widget.somethings();
}
Obviamente, isso falha na compilação com este erro:
pointers.rs:11:8: 11:21 error: cannot move out of dereference of & pointer
pointers.rs:11 self.thingies
Caso esse exemplo de código pareça estranho, tudo o que estou tentando fazer é extrair uma matriz de uma estrutura implementada. O ponteiro emprestado não é importante, é exatamente como estou tentando armazenar os dados.
Alguma dica sobre como extrair minha matriz corretamente?
Btw, eu estou usando Rust 0.8