@@ -41,7 +41,8 @@ pub fn is_debug() -> bool {
4141pub enum StyleSelector {
4242 Media ( String ) ,
4343 Selector ( String ) ,
44- Global ( String ) ,
44+ // selector, file
45+ Global ( String , String ) ,
4546}
4647
4748impl PartialOrd for StyleSelector {
@@ -56,7 +57,7 @@ fn get_selector_order(selector: &str) -> u8 {
5657 selector
5758 . split ( '&' )
5859 . next_back ( )
59- . map ( |a| format ! ( "{a}" ) )
60+ . map ( |a| a . to_string ( ) )
6061 . unwrap_or ( selector. to_string ( ) )
6162 } else {
6263 selector. to_string ( )
@@ -76,7 +77,7 @@ impl Ord for StyleSelector {
7677 }
7778 ( StyleSelector :: Media ( _) , StyleSelector :: Selector ( _) ) => Ordering :: Greater ,
7879 ( StyleSelector :: Selector ( _) , StyleSelector :: Media ( _) ) => Ordering :: Less ,
79- ( StyleSelector :: Global ( a) , StyleSelector :: Global ( b) ) => {
80+ ( StyleSelector :: Global ( a, _ ) , StyleSelector :: Global ( b, _ ) ) => {
8081 if a == b {
8182 return Ordering :: Equal ;
8283 }
@@ -105,8 +106,8 @@ impl Ord for StyleSelector {
105106 ( false , false ) => a. cmp ( b) ,
106107 }
107108 }
108- ( StyleSelector :: Global ( _) , _) => Ordering :: Less ,
109- ( _, StyleSelector :: Global ( _) ) => Ordering :: Greater ,
109+ ( StyleSelector :: Global ( _, _ ) , _) => Ordering :: Less ,
110+ ( _, StyleSelector :: Global ( _, _ ) ) => Ordering :: Greater ,
110111 }
111112 }
112113}
@@ -155,14 +156,12 @@ impl From<[&str; 2]> for StyleSelector {
155156}
156157impl From < ( & StyleSelector , & str ) > for StyleSelector {
157158 fn from ( value : ( & StyleSelector , & str ) ) -> Self {
158- if let StyleSelector :: Global ( _) = value. 0 {
159+ if let StyleSelector :: Global ( _, file ) = value. 0 {
159160 let post = to_kebab_case ( value. 1 ) ;
160- StyleSelector :: Global ( format ! (
161- "{}{}{}" ,
162- value. 0 ,
163- get_selector_separator( & post) ,
164- post
165- ) )
161+ StyleSelector :: Global (
162+ format ! ( "{}{}{}" , value. 0 , get_selector_separator( & post) , post) ,
163+ file. clone ( ) ,
164+ )
166165 } else {
167166 StyleSelector :: from ( [ & value. 0 . to_string ( ) , value. 1 ] )
168167 }
@@ -177,7 +176,7 @@ impl Display for StyleSelector {
177176 match self {
178177 StyleSelector :: Selector ( value) => value. to_string( ) ,
179178 StyleSelector :: Media ( value) => format!( "@{value}" ) ,
180- StyleSelector :: Global ( value) => format!( "{value}" ) ,
179+ StyleSelector :: Global ( value, _ ) => format!( "{value}" ) ,
181180 }
182181 )
183182 }
@@ -188,7 +187,7 @@ pub fn merge_selector(class_name: &str, selector: Option<&StyleSelector>) -> Str
188187 match selector {
189188 StyleSelector :: Selector ( value) => value. replace ( "&" , & format ! ( ".{class_name}" ) ) ,
190189 StyleSelector :: Media ( _) => format ! ( ".{class_name}" ) ,
191- StyleSelector :: Global ( v) => format ! ( "{v}" ) ,
190+ StyleSelector :: Global ( v, _ ) => v . to_string ( ) ,
192191 }
193192 } else {
194193 format ! ( ".{class_name}" )
@@ -484,21 +483,6 @@ pub fn sheet_to_classname(
484483 }
485484}
486485
487- pub fn css_to_classname ( css : & str ) -> String {
488- if * DEBUG . lock ( ) . unwrap ( ) {
489- let mut hasher = DefaultHasher :: new ( ) ;
490- css. hash ( & mut hasher) ;
491- format ! ( "css-{}" , hasher. finish( ) )
492- } else {
493- let mut map = GLOBAL_CLASS_MAP . lock ( ) . unwrap ( ) ;
494- map. get ( css) . map ( |v| format ! ( "d{v}" ) ) . unwrap_or_else ( || {
495- let len = map. len ( ) ;
496- map. insert ( css. to_string ( ) , len as i32 ) ;
497- format ! ( "d{}" , map. len( ) - 1 )
498- } )
499- }
500- }
501-
502486pub fn sheet_to_variable_name ( property : & str , level : u8 , selector : Option < & str > ) -> String {
503487 if * DEBUG . lock ( ) . unwrap ( ) {
504488 let selector = selector. unwrap_or ( "" ) . trim ( ) ;
@@ -840,34 +824,6 @@ mod tests {
840824 ) ;
841825 }
842826
843- #[ test]
844- #[ serial]
845- fn test_css_to_classname ( ) {
846- set_debug ( false ) ;
847- reset_class_map ( ) ;
848- assert_eq ! ( css_to_classname( "background: red" ) , "d0" ) ;
849- assert_eq ! ( css_to_classname( "background: blue" ) , "d1" ) ;
850- }
851- #[ test]
852- #[ serial]
853- fn test_debug_css_to_classname ( ) {
854- set_debug ( true ) ;
855- assert_eq ! (
856- css_to_classname( "background: red" ) ,
857- "css-10773204219957113694"
858- ) ;
859- assert_eq ! (
860- css_to_classname( "background: blue" ) ,
861- "css-1226995032436176700"
862- ) ;
863- set_debug ( true ) ;
864- reset_class_map ( ) ;
865- assert_eq ! (
866- css_to_classname( "background: red" ) ,
867- "css-10773204219957113694"
868- ) ;
869- }
870-
871827 #[ test]
872828 fn test_convert_property ( ) {
873829 assert_eq ! (
0 commit comments