Avatar ·

Como obter uma referência ao valor dentro de Option<T> em Rust sem mover?

Olá, colegas! Sou novo em Rust e encontrei um problema que me parece muito estranho. Tenho uma struct que contém um campo do tipo `Option`. Quero escrever um método que retorna uma referência à string dentro deste Option, se existir, ou algo como `None`, se não existir. Aqui está meu código: ```rust struct Person { name: Option, } impl Person { fn get_name(&self) -> &str { // Como faço aqui para obter uma referência ao String dentro do Option? // self.name.unwrap() // Erro: não é possível mover de um contexto emprestado // &self.name.unwrap() // Também não funciona } } ``` Quando tento usar `unwrap()`, o compilador diz que estou tentando mover o valor de `self.name`, mas `self` foi emprestado apenas por referência. Entendo que `Option::unwrap()` consome o valor, mas preciso apenas lê-lo, sem tomar posse. Como faço para emprestar corretamente uma referência ao conteúdo de `Option`? Consultei a documentação,