@@ -2,8 +2,8 @@ use jmespatch::{Expression, Runtime};
22use serde_json:: Value ;
33
44use crate :: filters:: filter:: Filter ;
5- use crate :: filters:: FilterError ;
65use crate :: filters:: jmespath_filter:: custom_functions:: create_eq_ignore_case_function;
6+ use crate :: filters:: FilterError ;
77
88lazy_static ! {
99 static ref FILTER_RUNTIME : Runtime = {
@@ -14,7 +14,6 @@ lazy_static! {
1414 } ;
1515}
1616
17-
1817/// Implementation of the [Filter] trait for complex checks, such as checking for
1918/// the presence of a key in an object or comparing the second value in an array
2019/// or check array length.
@@ -24,7 +23,7 @@ pub struct JmespathFilter {
2423}
2524
2625impl Filter for JmespathFilter {
27- fn from_filters ( filters : & Vec < String > ) -> Result < Self , FilterError > {
26+ fn from_filters ( filters : & [ String ] ) -> Result < Self , FilterError > {
2827 let filters = filters
2928 . iter ( )
3029 . map ( |f| {
@@ -48,18 +47,17 @@ impl Filter for JmespathFilter {
4847 match filter. search ( message) {
4948 Err ( e) => return Err ( FilterError :: JmespathError { source : e } ) ,
5049 Ok ( v) => {
51- if v. as_boolean ( ) . unwrap ( ) == false {
50+ if ! v. as_boolean ( ) . unwrap ( ) {
5251 return Err ( FilterError :: FilterSkipMessage ) ;
5352 }
5453 }
5554 } ;
5655 }
5756
58- return Ok ( ( ) ) ;
57+ Ok ( ( ) )
5958 }
6059}
6160
62-
6361#[ cfg( test) ]
6462mod tests {
6563 use std:: fs:: File ;
@@ -89,22 +87,22 @@ mod tests {
8987
9088 for v in values. into_iter ( ) {
9189 match filter. filter ( & v) {
92- Ok ( _) => { passed_messages += 1 }
93- Err ( FilterError :: FilterSkipMessage ) => {
94- filtered_messages += 1
95- }
96- Err ( e) => panic ! ( "{}" , e)
90+ Ok ( _) => passed_messages += 1 ,
91+ Err ( FilterError :: FilterSkipMessage ) => filtered_messages += 1 ,
92+ Err ( e) => panic ! ( "{}" , e) ,
9793 }
9894 }
9995
100- return ( passed_messages, filtered_messages)
96+ return ( passed_messages, filtered_messages) ;
10197 }
10298 #[ test]
10399 fn equal ( ) {
104100 let values = read_json_file ( SOURCE_PATH ) . unwrap ( ) ;
105- let filter = match JmespathFilter :: from_filters ( & vec ! [ "session_id=='a8a3d0e3-7b4e-4f17-b264-76cb792bdb96'" . to_string( ) ] ) {
101+ let filter = match JmespathFilter :: from_filters ( & vec ! [
102+ "session_id=='a8a3d0e3-7b4e-4f17-b264-76cb792bdb96'" . to_string( ) ,
103+ ] ) {
106104 Ok ( f) => f,
107- Err ( e) => panic ! ( "{}" , e)
105+ Err ( e) => panic ! ( "{}" , e) ,
108106 } ;
109107
110108 let ( passed_messages, filtered_messages) = run_filter ( & filter, & values) ;
@@ -115,9 +113,11 @@ mod tests {
115113 #[ test]
116114 fn eq_ignore_case ( ) {
117115 let values = read_json_file ( SOURCE_PATH ) . unwrap ( ) ;
118- let filter = match JmespathFilter :: from_filters ( & vec ! [ "eq_ignore_case(method, 'get')" . to_string( ) ] ) {
116+ let filter = match JmespathFilter :: from_filters ( & vec ! [
117+ "eq_ignore_case(method, 'get')" . to_string( )
118+ ] ) {
119119 Ok ( f) => f,
120- Err ( e) => panic ! ( "{}" , e)
120+ Err ( e) => panic ! ( "{}" , e) ,
121121 } ;
122122
123123 let ( passed_messages, filtered_messages) = run_filter ( & filter, & values) ;
@@ -129,9 +129,11 @@ mod tests {
129129 #[ test]
130130 fn or_condition ( ) {
131131 let values = read_json_file ( SOURCE_PATH ) . unwrap ( ) ;
132- let filter = match JmespathFilter :: from_filters ( & vec ! [ "(status == `404` || method == 'GET')" . to_string( ) ] ) {
132+ let filter = match JmespathFilter :: from_filters ( & vec ! [
133+ "(status == `404` || method == 'GET')" . to_string( ) ,
134+ ] ) {
133135 Ok ( f) => f,
134- Err ( e) => panic ! ( "{}" , e)
136+ Err ( e) => panic ! ( "{}" , e) ,
135137 } ;
136138
137139 let ( passed_messages, filtered_messages) = run_filter ( & filter, & values) ;
@@ -158,14 +160,16 @@ mod tests {
158160 . iter ( )
159161 . map ( |line| serde_json:: from_str :: < Value > ( & line) . unwrap ( ) )
160162 . collect ( ) ;
161- let filter = match JmespathFilter :: from_filters ( & vec ! [ "!contains(keys(@), 'status') || (status == '1' && age >= `26`)" . to_string( ) ] ) {
163+ let filter = match JmespathFilter :: from_filters ( & vec ! [
164+ "!contains(keys(@), 'status') || (status == '1' && age >= `26`)" . to_string( ) ,
165+ ] ) {
162166 Ok ( f) => f,
163- Err ( e) => panic ! ( "{}" , e)
167+ Err ( e) => panic ! ( "{}" , e) ,
164168 } ;
165169
166170 let ( passed_messages, filtered_messages) = run_filter ( & filter, & values) ;
167171
168172 assert_eq ! ( 7 , passed_messages) ;
169173 assert_eq ! ( 3 , filtered_messages) ;
170174 }
171- }
175+ }
0 commit comments