rustG#rustc 1.45.2 (d3fb005a3 2020-07-31)coreگ -6b04eb4e052ead07compiler_builtinsߡ·-fadb63995e3e5abdrustc_std_workspace_core-f1326a6617223d8dstd¦i-34514d97207a4772allocͤ-0ad2670ae5db2f4alibcƛ-144731228d68778cunwindԾ:-c1ddc1514fa4ab9ecfg_if-b19fe40a8aa9ca39 backtraceŜգ--f8866806557c6ae0rustc_demangleٗ-0549e124d7da10e3 backtrace_sys4-264f805e2d1bbdfb hashbrownߗ-46da44d5f739fd05rustc_std_workspace_alloc+-6d92d726c656a19c panic_unwindԢե-44317f45179cd46dW/home/daxi/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs(h@.1,FNME0K0NA  ...;#K  9*-1-"ߺɵ_/home/daxi/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs]Uu$L oDD41>91,FNME,$F1=- # =6%"p, )$IݣΏ鋼҂+corecompiler_builtinslazycorestdLazy  T 0 1TINITgetFT__lazy_static_create__lazy_static_internal lazy_static LazyStatic initialize initializeT      +!C1hMɢs=[-1-5-kj!" _(++Tܯsn ”i!ss%:{ |k y i.MAW&sn p`wM|3O%˫*: [VYy:\]t@*`1J\SRꄵtiL2K/aS9r{|T2[Նr ޖ%?T@ps~!\a2չf̮m3yD'L͋Ocw!˽b8G4['̽$ՆSoPt1B'q'2 q(,_N~&^ >i ex`?鸵{)L_!/x`&I^t*DEKyմvC6n k8!S ʁ镧r.f%18{Q0Vh@{Ӽ=Z԰>Կ G֛MeЏ.6k=2^Q{ׂ*<`~` and stores it in a static with name `NAME`. (Attributes end up attaching to this type.) On first deref, `EXPR` gets evaluated and stored internally, such that all further derefs can return a reference to the same object. Note that this can lead to deadlocks if you have multiple lazy statics that depend on each other in their initialization. Apart from the lazy initialization, the resulting "static ref" variables have generally the same properties as regular "static" variables: - Any type in them needs to fulfill the `Sync` trait. - If the type has a destructor, then it will not run when the process exits. # Example Using the macro: ```rust #[macro_use] extern crate lazy_static; use std::collections::HashMap; lazy_static! { static ref HASHMAP: HashMap = { let mut m = HashMap::new(); m.insert(0, "foo"); m.insert(1, "bar"); m.insert(2, "baz"); m }; static ref COUNT: usize = HASHMAP.len(); static ref NUMBER: u32 = times_two(21); } fn times_two(n: u32) -> u32 { n * 2 } fn main() { println!("The map has {} entries.", *COUNT); println!("The entry for `0` is \"{}\".", HASHMAP.get(&0).unwrap()); println!("A expensive calculation on a static results in: {}.", *NUMBER); } ``` # Implementation details The `Deref` implementation uses a hidden static variable that is guarded by an atomic check on each access. # Cargo features This crate provides one cargo feature: - `spin_no_std`: This allows using this crate in a no-std environment, by depending on the standalone `spin` crate. */doc html_root_url !https://docs.rs/lazy_static/1.4.0#<no_std core44std44Cell44unreachable_unchecked5 4&Once5(5 ONCE_INIT5 (5Sendԥ4Sizedڥ4Sync4Unpin4DropĦ4Fnʦ4FnMutΦ4FnOnceզ4drop̧  4AsMut̨4AsRefӨ4Fromڨ4Into4DoubleEndedIterator&4ExactSizeIteratorҩ&4Extend&4 IntoIteratorĪ &4IteratorҪ&4Option4Noneë4Noneë4Someɫ4Someɫ4Result4Err4Err4Ok4Ok4asm"4assert!4cfg4column4 compile_error 4concat4 concat_idents 4env4file4 format_args 4format_args_nlî4 global_asmӮ $4include߮ 4 include_bytes 4 include_str 4line4llvm_asm#4 log_syntax %4 module_path 4 option_env 4 stringify 4 trace_macrosȯ &4bench(4global_allocator*4test'4 test_case )4Clone 4Clone 4Copy4Copy4Debug04Default4Default4Eq 4Eq 4Hash14Ord 4Ord 4 PartialEqò  4 PartialEqò  4 PartialOrdβ  4 PartialOrdβ  4RustcDecodableڲ,4RustcEncodable-4cfg_accessible+4ToOwned4BoxR4String&4ToStringŸ4Vec 4T cfg not feature spin_no_std $pathinline_lazy.rsdoc hidden  66 60 TT;6;6 66;  66(   60 ;;;;   60;60;6060;60;60;6060 66;T;6;6 Lazy(Cell::new(None), ONCE_INIT) 787allow7O77 deprecated7 77;77777  ;7 ;7 ;7 ;(7878;7;7;7787 ;(selff77inline7^77 always778 ;F ;@ ; F@8@8 @A;8 <<(;;T;<;<, ,KL/// Support trait for enabling a few common operation on lazy static values.*L///+8/// This is implemented by each defined lazy static, and+8-/// used by the free functions in this crate.+-Selflazy,,doc,,, hidden,,, Self DA , 10 lazy0P=/// Takes a shared reference to a lazy static and initializes,="/// it if it has not been already.-"///-J/// This can be used to control the initialization point of a lazy static.-J///. /// Example:. ///. /// ```rust. /// #[macro_use]./// extern crate lazy_static;.///./// lazy_static! {.8/// static ref BUFFER: Vec = (0..255).collect();.8/// }//////// fn main() {/)/// lazy_static::initialize(&BUFFER);/)/////// // .../,/// work_with_initialized_data(&BUFFER);0,/// }00/// # fn work_with_initialized_data(_: &[u8]) {}00/// ```0 ; ;A T  1;1;1 881;@AA 888  ;;9 999@999A99 @A999 Some;9 989 ;9998.8.A981A8;@ AAL@81A8 ;8;9 ;9@9A9self8 Lf8@81=>== = NAME== ident=== T== ty===> static== NAME=== crate== lazy=> Lazy>>> T>>>> crate>> lazy>> Lazy>> INIT>>>=<  macro_export< <=doc=== hidden===% attr meta  vis tt  static ref N ident T ty e expr t tt  __lazy_static_internal   MAKE TY attr  vis  N __lazy_static_internal   TAIL N T e lazy_static   t   TAIL N ident T ty e expr" impl crate __Deref for N  type Target T fn deref  self  T  inline always fn __static_ref_initialize T e inline always fn __stability  !'static T  __lazy_static_create  LAZY T LAZY   get    __static_ref_initialize  __stability    impl   crate ! LazyStatic!  for!! N!!! fn! initialize! !! lazy!! ! Self!!! let! _!! ! ! ! lazy!!""" " MAKE" TY""""""""" attr"" meta" """""""" vis"" tt" """ N"" ident"""% ### allow### missing_copy_implementations#### allow### non_camel_case_types#### allow### dead_code# ##$##$# attr# $$$$$ vis$ $ struct$$ N$$$ __private_field$$$$$$$ doc$$$ hidden$$$$$ vis$ $ static$$ N$$$ N$$$ N$$% __private_field$%%%%%%%%%%   macro_export  local_inner_macros#doc hidden%*%&%%%%%%% attr%% meta% % static% ref%& N&& ident&&& T&& ty&&& e&& expr&&&&&& t&& tt& &&&' __lazy_static_internal' '''''''''' attr' ''' static' ref'' N''' T''' e'''''' t' ''''(''''''' attr'' meta' ' pub' static' ref'' N'' ident'(( T(( ty((( e(( expr(((((( t(( tt( ((() __lazy_static_internal( (((((((((( attr( ((( pub( static( ref(( N((( T((( e(((((( t( (()))))))))) attr)) meta) ) pub))))))) vis)) tt) ) static) ref)) N)) ident))) T)) ty))) e)) expr)))))) t)) tt) )))* __lazy_static_internal) ********** attr* *** pub******* vis* * static* ref** N*** T*** e****** t* ********%%  macro_export% %% local_inner_macros%%#% I Fm+ $%R G (5K> !"!K Gn-!$%T H (5N> !""L Jq0"%%W I (5O> !""Nu&M G)6> !"Q  Nu5 %[ (5T> !" 5[ s! Ry7 %[ !$I%!$] !$a~9 Q%d t!!$*iL w !!$!%' lazy_staticarm-unknown-linux-gnueabihf-520c97d028664bbcөK(ٮ~|cdWӎk`hx\\