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

questionAnswers(3)

yourAnswerToTheQuestion