@@ -392,12 +392,6 @@ pub enum Expression {
392392 } ,
393393}
394394
395- impl Default for Expression {
396- fn default ( ) -> Self {
397- Self :: Boolean ( true )
398- }
399- }
400-
401395impl Expression {
402396 pub fn as_number ( & self ) -> anyhow:: Result < f64 > {
403397 let Self :: Number ( number) = self else {
@@ -577,12 +571,24 @@ impl Expression {
577571 }
578572}
579573
580- #[ derive( Serialize , Deserialize , Default , Debug , Clone , PartialEq ) ]
574+ fn expression_true ( ) -> Expression {
575+ Expression :: Boolean ( true )
576+ }
577+
578+ fn expression_is_true ( expression : & Expression ) -> bool {
579+ expression == & expression_true ( )
580+ }
581+
582+ #[ derive( Serialize , Deserialize , Debug , Clone , PartialEq ) ]
581583#[ serde( deny_unknown_fields, rename_all = "kebab-case" ) ]
582584pub struct Rule {
583585 pub priority : u16 ,
584586
585- #[ serde( default , rename = "if" , skip_serializing_if = "is_default" ) ]
587+ #[ serde(
588+ default = "expression_true" ,
589+ rename = "if" ,
590+ skip_serializing_if = "expression_is_true"
591+ ) ]
586592 pub condition : Expression ,
587593
588594 #[ serde( default , skip_serializing_if = "is_default" ) ]
@@ -591,6 +597,17 @@ pub struct Rule {
591597 pub power : PowerDelta ,
592598}
593599
600+ impl Default for Rule {
601+ fn default ( ) -> Self {
602+ Self {
603+ priority : u16:: default ( ) ,
604+ condition : expression_true ( ) ,
605+ cpu : CpuDelta :: default ( ) ,
606+ power : PowerDelta :: default ( ) ,
607+ }
608+ }
609+ }
610+
594611#[ derive( Serialize , Deserialize , Default , Debug , Clone , PartialEq ) ]
595612#[ serde( default , rename_all = "kebab-case" ) ]
596613pub struct DaemonConfig {
0 commit comments