Global static
Recipe | Crates | Categories |
---|---|---|
Declare lazily evaluated constants |
Declare lazily evaluated constants
Declares a lazily evaluated constant std::collections::HashMap
⮳. The std::collections::HashMap
⮳ will be evaluated once and stored behind a global static reference.
use std::collections::HashMap; use lazy_static::lazy_static; lazy_static! { static ref PRIVILEGES: HashMap<&'static str, Vec<&'static str>> = { let mut map = HashMap::new(); map.insert("James", vec!["user", "admin"]); map.insert("Jim", vec!["user"]); map }; } fn show_access(name: &str) { let access = PRIVILEGES.get(name); println!("{}: {:?}", name, access); } fn main() { let access = PRIVILEGES.get("James"); println!("James: {:?}", access); show_access("Jim"); }
[global_static: expand - once_cell crate and in std (P1)](https://github.com/john-cd/rust_howto/issues/409)