Avatar ·

Cómo crear un singleton global y mutable en Rust?

¡Hola, colegas! Soy nuevo en Rust y estoy intentando implementar una configuración global para mi aplicación. Necesito poder leer y cambiar la configuración (por ejemplo, el nivel de logging o la ruta de un archivo) desde cualquier parte del código. En otros lenguajes, simplemente usaría una variable static, pero en Rust es más complicado. Esto es lo que he intentado: ```rust static CONFIG: Config = Config { logging: false }; struct Config { logging: bool, } fn main() { CONFIG.logging = true; // Error: cannot assign to static immutable } ``` El compilador se queja de que el static es inmutable. Probé con `static mut`, pero requiere `unsafe`: ```rust static mut CONFIG: Config = Config { logging: false }; fn main() { unsafe { CONFIG.logging = true; // Funciona, pero unsafe } } ``` Pero usar `unsafe` en todas partes parece incorrecto. Además, he oído sobre problemas con hilos — mi aplicación es multihilo. ¿Hay una forma segura de hacer un singleton global que pueda m