@@ -4,14 +4,15 @@ use crate::theme::Theme;
44use css:: { convert_property, merge_selector, PropertyType , StyleSelector } ;
55use serde:: de:: Error ;
66use serde:: { Deserialize , Deserializer , Serialize } ;
7- use std:: cmp:: Ordering :: { Greater , Less } ;
7+ use std:: cmp:: Ordering :: { Equal , Greater , Less } ;
88use std:: collections:: { BTreeMap , HashSet } ;
99
1010trait ExtractStyle {
1111 fn extract ( & self ) -> String ;
1212}
1313
1414#[ derive( Debug , Hash , Eq , PartialEq , Deserialize , Serialize ) ]
15+ #[ serde( rename_all = "camelCase" ) ]
1516pub struct StyleSheetProperty {
1617 pub class_name : String ,
1718 pub property : String ,
@@ -132,24 +133,20 @@ impl StyleSheet {
132133 match ( a. selector . is_some ( ) , b. selector . is_some ( ) ) {
133134 ( true , false ) => Greater ,
134135 ( false , true ) => Less ,
135- ( true , true ) => {
136- if a. selector == b. selector {
137- if a. property == b. property {
138- a. value . cmp ( & b. value )
139- } else {
140- a. property . cmp ( & b. property )
141- }
142- } else {
143- a. selector . cmp ( & b. selector )
144- }
145- }
146- ( false , false ) => {
147- if a. property == b. property {
148- a. value . cmp ( & b. value )
149- } else {
150- a. property . cmp ( & b. property )
151- }
152- }
136+ ( true , true ) => match a. selector . cmp ( & b. selector ) {
137+ Equal => match a. value . cmp ( & b. value ) {
138+ Equal => a. class_name . cmp ( & b. class_name ) ,
139+ val => val,
140+ } ,
141+ val => val,
142+ } ,
143+ ( false , false ) => match a. property . cmp ( & b. property ) {
144+ Equal => match a. value . cmp ( & b. value ) {
145+ Equal => a. class_name . cmp ( & b. class_name ) ,
146+ val => val,
147+ } ,
148+ prop => prop,
149+ } ,
153150 }
154151 } else {
155152 b. basic . cmp ( & a. basic )
@@ -348,7 +345,7 @@ mod tests {
348345 "properties": {
349346 "0": [
350347 {
351- "class_name ": "test",
348+ "className ": "test",
352349 "property": "mx",
353350 "value": "40px",
354351 "selector": null,
@@ -382,7 +379,7 @@ mod tests {
382379 "properties": {
383380 "wrong": [
384381 {
385- "class_name ": "test",
382+ "className ": "test",
386383 "property": "mx",
387384 "value": "40px",
388385 "selector": null,
0 commit comments