Avatar ·

Kann man globale Variablen in Rust verwenden? Wie deklariert man einen globalen Zustand?

Hallo! Ich schreibe seit ein paar Wochen in Rust und bin auf ein Problem gestoßen. Ich muss eine Applikationskonfiguration und einen Request-Zähler speichern, die aus verschiedenen Modulen zugänglich sind. In C++ hätte ich das so gemacht:\n\n```rust\n// Mein Versuch (kompiliert nicht)\nstatic COUNTER: i32 = 0;\nstatic CONFIG: HashMap = HashMap::new();\n\nfn increment() {\n COUNTER += 1; // Fehler: cannot assign to immutable static\n}\n\nfn main() {\n CONFIG.insert("host".to_string(), "localhost".to_string()); // Fehler\n println!("{}", COUNTER);\n}\n```\n\nDer Compiler beschwert sich über die Veränderbarkeit und bei `HashMap` sagt er etwas über `const fn` und Allokationen. Ich habe gelesen, dass globale Variablen in Rust kompliziert sind, aber wie macht man dann gemeinsame Einstellungen? Ich brauche:\n\n1. Einen einfachen Zähler, der aus verschiedenen Threads erhöht werden kann.\n2. Ko