@@ -237,7 +237,9 @@ fn run_filter(args: Vec<String>) -> josh_core::JoshResult<i32> {
237237 refs. push ( ( input_ref. clone ( ) , reference. target ( ) . unwrap ( ) ) ) ;
238238
239239 if args. get_flag ( "single" ) {
240- filterobj = josh_core:: filter:: chain ( josh_core:: filter:: squash ( None ) , filterobj) ;
240+ filterobj = josh_core:: filter:: Filter :: new ( )
241+ . squash ( None )
242+ . chain ( filterobj) ;
241243 }
242244
243245 if let Some ( pattern) = args. get_one :: < String > ( "squash-pattern" ) {
@@ -247,11 +249,13 @@ fn run_filter(args: Vec<String>) -> josh_core::JoshResult<i32> {
247249 let target = reference. peel_to_commit ( ) ?. id ( ) ;
248250 ids. push ( (
249251 target,
250- josh_core:: filter:: message ( reference. name ( ) . unwrap ( ) ) ,
252+ josh_core:: filter:: Filter :: new ( ) . message ( reference. name ( ) . unwrap ( ) ) ,
251253 ) ) ;
252254 refs. push ( ( reference. name ( ) . unwrap ( ) . to_string ( ) , target) ) ;
253255 }
254- filterobj = josh_core:: filter:: chain ( josh_core:: filter:: squash ( Some ( & ids) ) , filterobj) ;
256+ filterobj = josh_core:: filter:: Filter :: new ( )
257+ . squash ( Some ( & ids) )
258+ . chain ( filterobj) ;
255259 } ;
256260
257261 if let Some ( filename) = args. get_one :: < String > ( "squash-file" ) {
@@ -262,13 +266,15 @@ fn run_filter(args: Vec<String>) -> josh_core::JoshResult<i32> {
262266 if let [ sha, name] = split. as_slice ( ) {
263267 let target = git2:: Oid :: from_str ( sha) ?;
264268 let target = repo. find_object ( target, None ) ?. peel_to_commit ( ) ?. id ( ) ;
265- ids. push ( ( target, josh_core:: filter:: message ( name) ) ) ;
269+ ids. push ( ( target, josh_core:: filter:: Filter :: new ( ) . message ( name) ) ) ;
266270 refs. push ( ( name. to_string ( ) , target) ) ;
267271 } else if !split. is_empty ( ) {
268272 eprintln ! ( "Warning: malformed line: {:?}" , line) ;
269273 }
270274 }
271- filterobj = josh_core:: filter:: chain ( josh_core:: filter:: squash ( Some ( & ids) ) , filterobj) ;
275+ filterobj = josh_core:: filter:: Filter :: new ( )
276+ . squash ( Some ( & ids) )
277+ . chain ( filterobj) ;
272278 } ;
273279
274280 if args. get_flag ( "print-filter" ) {
@@ -329,7 +335,7 @@ fn run_filter(args: Vec<String>) -> josh_core::JoshResult<i32> {
329335 & transaction,
330336 josh_core:: filter:: parse ( & i) ?,
331337 & [ ( input_ref. to_string ( ) , r. id ( ) ) ] ,
332- josh_core:: filter:: empty ( ) ,
338+ josh_core:: filter:: Filter :: new ( ) . empty ( ) ,
333339 ) ;
334340 updated_refs[ 0 ] . 0 = "refs/JOSH_TMP" . to_string ( ) ;
335341 josh_core:: update_refs ( & transaction, & mut updated_refs, "" ) ;
@@ -343,7 +349,7 @@ fn run_filter(args: Vec<String>) -> josh_core::JoshResult<i32> {
343349 let reverse = args. get_flag ( "reverse" ) ;
344350
345351 let check_permissions = args. get_flag ( "check-permission" ) ;
346- let mut permissions_filter = josh_core:: filter:: empty ( ) ;
352+ let mut permissions_filter = josh_core:: filter:: Filter :: new ( ) . empty ( ) ;
347353 if check_permissions {
348354 let whitelist;
349355 let blacklist;
@@ -363,11 +369,11 @@ fn run_filter(args: Vec<String>) -> josh_core::JoshResult<i32> {
363369 } else {
364370 whitelist = match args. get_one :: < String > ( "whitelist" ) {
365371 Some ( s) => josh_core:: filter:: parse ( s) ?,
366- _ => josh_core:: filter:: nop ( ) ,
372+ _ => josh_core:: filter:: Filter :: new ( ) ,
367373 } ;
368374 blacklist = match args. get_one :: < String > ( "blacklist" ) {
369375 Some ( s) => josh_core:: filter:: parse ( s) ?,
370- _ => josh_core:: filter:: empty ( ) ,
376+ _ => josh_core:: filter:: Filter :: new ( ) . empty ( ) ,
371377 } ;
372378 }
373379 permissions_filter =
@@ -377,7 +383,7 @@ fn run_filter(args: Vec<String>) -> josh_core::JoshResult<i32> {
377383 let missing_permissions = args. get_flag ( "missing-permission" ) ;
378384 if missing_permissions {
379385 filterobj = permissions_filter;
380- permissions_filter = josh_core:: filter:: empty ( ) ;
386+ permissions_filter = josh_core:: filter:: Filter :: new ( ) . empty ( ) ;
381387 }
382388
383389 let old_oid = if let Ok ( id) = transaction. repo ( ) . refname_to_id ( target) {
@@ -412,8 +418,7 @@ fn run_filter(args: Vec<String>) -> josh_core::JoshResult<i32> {
412418 josh_core:: update_refs ( & transaction, & mut updated_refs, "" ) ;
413419
414420 if let Some ( searchstring) = args. get_one :: < String > ( "search" ) {
415- let ifilterobj =
416- josh_core:: filter:: chain ( filterobj, josh_core:: filter:: parse ( ":SQUASH:INDEX" ) ?) ;
421+ let ifilterobj = filterobj. chain ( josh_core:: filter:: parse ( ":SQUASH:INDEX" ) ?) ;
417422
418423 let max_complexity: usize = args
419424 . get_one :: < String > ( "max_comp" )
0 commit comments