@@ -10,12 +10,11 @@ use std::{
1010 sync:: OnceLock ,
1111} ;
1212
13- #[ cfg( not( feature = "performance" ) ) ]
13+ #[ cfg( feature = "dashmap" ) ]
14+ use dashmap:: mapref:: one:: Ref ;
15+ #[ cfg( not( feature = "dashmap" ) ) ]
1416use std:: sync:: { Arc , RwLock } ;
1517
16- #[ cfg( feature = "performance" ) ]
17- use dashmap:: { mapref:: one:: Ref , DashMap , Entry } ;
18-
1918use syn:: { parse:: Parse , parse_macro_input, spanned:: Spanned } ;
2019use unic_langid:: LanguageIdentifier ;
2120
@@ -174,23 +173,37 @@ struct DomainSpecificData {
174173
175174#[ derive( Default ) ]
176175struct DomainsMap {
177- #[ cfg( not( feature = "performance " ) ) ]
176+ #[ cfg( not( feature = "dashmap " ) ) ]
178177 map : RwLock < HashMap < String , Arc < DomainSpecificData > > > ,
179178
180- #[ cfg( feature = "performance " ) ]
179+ #[ cfg( feature = "dashmap " ) ]
181180 map : dashmap:: DashMap < String , DomainSpecificData > ,
182181}
183182
183+ #[ cfg( feature = "dashmap" ) ]
184+ impl DomainsMap {
185+ fn get ( & self , domain : & String ) -> Option < Ref < String , DomainSpecificData > > {
186+ self . map . get ( domain)
187+ }
188+
189+ fn entry_or_insert (
190+ & self ,
191+ domain : & String ,
192+ data : DomainSpecificData ,
193+ ) -> Ref < String , DomainSpecificData > {
194+ self . map . entry ( domain. clone ( ) ) . or_insert ( data) . downgrade ( )
195+ }
196+ }
197+
198+ #[ cfg( not( feature = "dashmap" ) ) ]
184199impl DomainsMap {
185- #[ cfg( not( feature = "performance" ) ) ]
186200 fn get ( & self , domain : & String ) -> Option < Arc < DomainSpecificData > > {
187201 match self . map . read ( ) . unwrap ( ) . get ( domain) {
188202 None => None ,
189203 Some ( data) => Some ( data. clone ( ) ) ,
190204 }
191205 }
192206
193- #[ cfg( not( feature = "performance" ) ) ]
194207 fn entry_or_insert (
195208 & self ,
196209 domain : & String ,
@@ -203,20 +216,6 @@ impl DomainsMap {
203216 . or_insert ( Arc :: new ( data) )
204217 . clone ( )
205218 }
206-
207- #[ cfg( feature = "performance" ) ]
208- fn get ( & self , domain : & String ) -> Option < Ref < String , DomainSpecificData > > {
209- self . map . get ( domain)
210- }
211-
212- #[ cfg( feature = "performance" ) ]
213- fn entry_or_insert (
214- & self ,
215- domain : & String ,
216- data : DomainSpecificData ,
217- ) -> Ref < String , DomainSpecificData > {
218- self . map . entry ( domain. clone ( ) ) . or_insert ( data) . downgrade ( )
219- }
220219}
221220
222221fn domains ( ) -> & ' static DomainsMap {
0 commit comments