@@ -4,7 +4,6 @@ use crate::io::{CmdIn, CmdOut};
4
4
use crate :: { debug, warn} ;
5
5
use crate :: { CmdResult , FunResult } ;
6
6
use faccess:: { AccessMode , PathExt } ;
7
- use lazy_static:: lazy_static;
8
7
use os_pipe:: { self , PipeReader , PipeWriter } ;
9
8
use std:: cell:: Cell ;
10
9
use std:: collections:: HashMap ;
@@ -72,21 +71,18 @@ impl CmdEnv {
72
71
73
72
type FnFun = fn ( & mut CmdEnv ) -> CmdResult ;
74
73
75
- lazy_static ! {
76
- static ref CMD_MAP : Mutex <HashMap <OsString , FnFun >> = {
77
- // needs explicit type, or it won't compile
78
- let mut m: HashMap <OsString , FnFun > = HashMap :: new( ) ;
79
- m. insert( "echo" . into( ) , builtin_echo) ;
80
- m. insert( "trace" . into( ) , builtin_trace) ;
81
- m. insert( "debug" . into( ) , builtin_debug) ;
82
- m. insert( "info" . into( ) , builtin_info) ;
83
- m. insert( "warn" . into( ) , builtin_warn) ;
84
- m. insert( "error" . into( ) , builtin_error) ;
85
- m. insert( "" . into( ) , builtin_empty) ;
86
-
87
- Mutex :: new( m)
88
- } ;
89
- }
74
+ static CMD_MAP : LazyLock < Mutex < HashMap < OsString , FnFun > > > = LazyLock :: new ( || {
75
+ let mut m: HashMap < OsString , FnFun > = HashMap :: new ( ) ;
76
+ m. insert ( "echo" . into ( ) , builtin_echo) ;
77
+ m. insert ( "trace" . into ( ) , builtin_trace) ;
78
+ m. insert ( "debug" . into ( ) , builtin_debug) ;
79
+ m. insert ( "info" . into ( ) , builtin_info) ;
80
+ m. insert ( "warn" . into ( ) , builtin_warn) ;
81
+ m. insert ( "error" . into ( ) , builtin_error) ;
82
+ m. insert ( "" . into ( ) , builtin_empty) ;
83
+
84
+ Mutex :: new ( m)
85
+ } ) ;
90
86
91
87
#[ doc( hidden) ]
92
88
pub fn register_cmd ( cmd : & ' static str , func : FnFun ) {
0 commit comments