@@ -42,19 +42,21 @@ fn payout(
42
42
. iter ( )
43
43
. find ( |& rule| rule. amount . is_some ( ) )
44
44
. map ( |& rule| rule. amount . as_ref ( ) . expect ( "should have value" ) ) ;
45
- let price_by_rules = if let Some ( amount) = fixed_amount_rule {
46
- amount. clone ( )
47
- } else {
48
- let exponent: f64 = 10.0 ;
49
- let multiplier = rules
50
- . iter ( )
51
- . filter ( |& rule| rule. multiplier . is_some ( ) )
52
- . map ( |rule| rule. multiplier . expect ( "should have value" ) )
53
- . fold ( 1.0 , |result, i| result * i) ;
54
- let value: u64 = ( multiplier * exponent. powi ( 18 ) ) as u64 ;
55
- let result = min_price * BigNum :: from ( value) ;
56
-
57
- result / BigNum :: from ( 10u64 . pow ( 18 ) )
45
+
46
+ let price_by_rules = match fixed_amount_rule {
47
+ Some ( amount) => amount. clone ( ) ,
48
+ None => {
49
+ let exponent: f64 = 10.0 ;
50
+ let multiplier = rules
51
+ . iter ( )
52
+ . filter ( |& rule| rule. multiplier . is_some ( ) )
53
+ . map ( |rule| rule. multiplier . expect ( "should have value" ) )
54
+ . fold ( 1.0 , |result, i| result * i) ;
55
+ let value: u64 = ( multiplier * exponent. powi ( 18 ) ) as u64 ;
56
+ let result = min_price * BigNum :: from ( value) ;
57
+
58
+ result / BigNum :: from ( 10u64 . pow ( 18 ) )
59
+ }
58
60
} ;
59
61
60
62
max_price. min ( price_by_rules)
@@ -66,14 +68,12 @@ fn match_rule(
66
68
session : & Session ,
67
69
uid : & ValidatorId ,
68
70
) -> bool {
69
- let ev_type = match & rule. ev_type {
70
- Some ( event_types) => event_types. contains ( & ev_type. to_string ( ) ) ,
71
- None => true ,
72
- } ;
73
-
74
- let publisher = match & rule. publisher {
75
- Some ( publishers) => publishers. contains ( & uid) ,
76
- None => true ,
71
+ let ( ev_type, publisher) = match ( & rule. ev_type , & rule. publisher ) {
72
+ ( Some ( event_types) , Some ( publishers) ) => (
73
+ event_types. contains ( & ev_type. to_string ( ) ) ,
74
+ publishers. contains ( & uid) ,
75
+ ) ,
76
+ _ => ( true , true ) ,
77
77
} ;
78
78
79
79
let os_type = match ( & rule. os_type , & session. os ) {
@@ -394,7 +394,7 @@ mod tests {
394
394
channel. spec . pricing_bounds = Some ( PricingBounds {
395
395
click : Some ( Pricing {
396
396
min : BigNum :: from ( 100 ) ,
397
- max : BigNum :: from ( 1000 )
397
+ max : BigNum :: from ( 1000 ) ,
398
398
} ) ,
399
399
impression : None ,
400
400
} ) ;
0 commit comments