lazy_static!, while a declarative macro, is a macro nonetheless. It can add quite a bit of additional compilation time cost. once_cell::sync::Lazy does the same thing with generics, and can be used more flexibly (i.e. non-static lazily initialized values), and has been proposed to be added to std: https://github.com/rust-lang/rfcs/pull/2788.
Famous Rust projects already did the transition, such as:
lazy_static!, while a declarative macro, is a macro nonetheless. It can add quite a bit of additional compilation time cost. once_cell::sync::Lazy does the same thing with generics, and can be used more flexibly (i.e. non-static lazily initialized values), and has been proposed to be added to std: https://github.com/rust-lang/rfcs/pull/2788.
Famous Rust projects already did the transition, such as: