Como criar um singleton global mutável em Rust?
Olá, colegas!
Sou novo em Rust e estou tentando implementar uma configuração global para minha aplicação. Preciso que de qualquer lugar do código seja possível ler e alterar as configurações (por exemplo, nível de logging ou caminho de arquivo). Em outras linguagens, eu simplesmente faria uma variável static, mas em Rust é mais complicado.
Aqui está o que tentei:
```rust
static CONFIG: Config = Config { logging: false };
struct Config {
logging: bool,
}
fn main() {
CONFIG.logging = true; // Erro: cannot assign to static immutable
}
```
O compilador reclama que a static é imutável. Tentei `static mut`, mas ele requer `unsafe`:
```rust
static mut CONFIG: Config = Config { logging: false };
fn main() {
unsafe {
CONFIG.logging = true; // Funciona, mas unsafe
}
}
```
Mas usar `unsafe` em todo lugar parece errado. Além disso, ouvi falar de problemas com threads — minha aplicação é multithread. Existe uma maneira segura de fazer um singleton global que m
No answers yet.
Faça login para deixar uma resposta
Blogs
Tratamento de erros em Go: try/catch e técnicas avançadas
Salários de desenvolvedores PHP na Rússia: panorama do mercado 2025
10 melhores frameworks C++ para desenvolvimento web: nível avançado
Redirecionamento em PHP: 5 erros fatais e como evitá-los