Avatar ·

¿Se pueden usar variables globales en Rust? ¿Cómo declarar un estado global?

¡Hola! Llevo un par de semanas escribiendo en Rust y me encontré con un problema. Necesito almacenar la configuración de la aplicación y un contador de solicitudes accesibles desde diferentes módulos. En C++ lo haría así: ```rust // Mi intento (no compila) static COUNTER: i32 = 0; static CONFIG: HashMap = HashMap::new(); fn increment() { COUNTER += 1; // Error: cannot assign to immutable static } fn main() { CONFIG.insert("host".to_string(), "localhost".to_string()); // Error println!("{}", COUNTER); } ``` El compilador se queja de la mutabilidad y sobre `HashMap` dice algo sobre `const fn` y asignaciones. He leído que en Rust las variables globales son complicadas, pero ¿cómo hago entonces para tener configuraciones compartidas? Necesito: 1. Un contador simple que pueda incrementarse desde diferentes hilos. 2. Un config (HashMap) que se llena al inicio y luego solo se lee. 3. Un logger que escribe en un archivo y necesita inicializarse una sola vez. Probé `lazy_static!` — no lo entendí del todo. Ayuda.