@@ -226,7 +226,9 @@ fn run_filter(args: Vec<String>) -> josh_core::JoshResult<i32> {
226226 refs. push ( ( input_ref. clone ( ) , reference. target ( ) . unwrap ( ) ) ) ;
227227
228228 if args. get_flag ( "single" ) {
229- filterobj = josh_core:: filter:: chain ( josh_core:: filter:: squash ( None ) , filterobj) ;
229+ filterobj = josh_core:: filter:: Filter :: new ( )
230+ . squash ( None )
231+ . chain ( filterobj) ;
230232 }
231233
232234 if let Some ( pattern) = args. get_one :: < String > ( "squash-pattern" ) {
@@ -236,11 +238,13 @@ fn run_filter(args: Vec<String>) -> josh_core::JoshResult<i32> {
236238 let target = reference. peel_to_commit ( ) ?. id ( ) ;
237239 ids. push ( (
238240 target,
239- josh_core:: filter:: message ( reference. name ( ) . unwrap ( ) ) ,
241+ josh_core:: filter:: Filter :: new ( ) . message ( reference. name ( ) . unwrap ( ) ) ,
240242 ) ) ;
241243 refs. push ( ( reference. name ( ) . unwrap ( ) . to_string ( ) , target) ) ;
242244 }
243- filterobj = josh_core:: filter:: chain ( josh_core:: filter:: squash ( Some ( & ids) ) , filterobj) ;
245+ filterobj = josh_core:: filter:: Filter :: new ( )
246+ . squash ( Some ( & ids) )
247+ . chain ( filterobj) ;
244248 } ;
245249
246250 if let Some ( filename) = args. get_one :: < String > ( "squash-file" ) {
@@ -251,13 +255,15 @@ fn run_filter(args: Vec<String>) -> josh_core::JoshResult<i32> {
251255 if let [ sha, name] = split. as_slice ( ) {
252256 let target = git2:: Oid :: from_str ( sha) ?;
253257 let target = repo. find_object ( target, None ) ?. peel_to_commit ( ) ?. id ( ) ;
254- ids. push ( ( target, josh_core:: filter:: message ( name) ) ) ;
258+ ids. push ( ( target, josh_core:: filter:: Filter :: new ( ) . message ( name) ) ) ;
255259 refs. push ( ( name. to_string ( ) , target) ) ;
256260 } else if !split. is_empty ( ) {
257261 eprintln ! ( "Warning: malformed line: {:?}" , line) ;
258262 }
259263 }
260- filterobj = josh_core:: filter:: chain ( josh_core:: filter:: squash ( Some ( & ids) ) , filterobj) ;
264+ filterobj = josh_core:: filter:: Filter :: new ( )
265+ . squash ( Some ( & ids) )
266+ . chain ( filterobj) ;
261267 } ;
262268
263269 if args. get_flag ( "print-filter" ) {
@@ -318,7 +324,7 @@ fn run_filter(args: Vec<String>) -> josh_core::JoshResult<i32> {
318324 & transaction,
319325 josh_core:: filter:: parse ( & i) ?,
320326 & [ ( input_ref. to_string ( ) , r. id ( ) ) ] ,
321- josh_core:: filter:: empty ( ) ,
327+ josh_core:: filter:: Filter :: new ( ) . empty ( ) ,
322328 ) ;
323329 updated_refs[ 0 ] . 0 = "refs/JOSH_TMP" . to_string ( ) ;
324330 josh_core:: update_refs ( & transaction, & mut updated_refs, "" ) ;
@@ -332,7 +338,7 @@ fn run_filter(args: Vec<String>) -> josh_core::JoshResult<i32> {
332338 let reverse = args. get_flag ( "reverse" ) ;
333339
334340 let check_permissions = args. get_flag ( "check-permission" ) ;
335- let mut permissions_filter = josh_core:: filter:: empty ( ) ;
341+ let mut permissions_filter = josh_core:: filter:: Filter :: new ( ) . empty ( ) ;
336342 if check_permissions {
337343 let whitelist;
338344 let blacklist;
@@ -352,11 +358,11 @@ fn run_filter(args: Vec<String>) -> josh_core::JoshResult<i32> {
352358 } else {
353359 whitelist = match args. get_one :: < String > ( "whitelist" ) {
354360 Some ( s) => josh_core:: filter:: parse ( s) ?,
355- _ => josh_core:: filter:: nop ( ) ,
361+ _ => josh_core:: filter:: Filter :: new ( ) ,
356362 } ;
357363 blacklist = match args. get_one :: < String > ( "blacklist" ) {
358364 Some ( s) => josh_core:: filter:: parse ( s) ?,
359- _ => josh_core:: filter:: empty ( ) ,
365+ _ => josh_core:: filter:: Filter :: new ( ) . empty ( ) ,
360366 } ;
361367 }
362368 permissions_filter =
@@ -366,7 +372,7 @@ fn run_filter(args: Vec<String>) -> josh_core::JoshResult<i32> {
366372 let missing_permissions = args. get_flag ( "missing-permission" ) ;
367373 if missing_permissions {
368374 filterobj = permissions_filter;
369- permissions_filter = josh_core:: filter:: empty ( ) ;
375+ permissions_filter = josh_core:: filter:: Filter :: new ( ) . empty ( ) ;
370376 }
371377
372378 let old_oid = if let Ok ( id) = transaction. repo ( ) . refname_to_id ( target) {
@@ -401,8 +407,7 @@ fn run_filter(args: Vec<String>) -> josh_core::JoshResult<i32> {
401407 josh_core:: update_refs ( & transaction, & mut updated_refs, "" ) ;
402408
403409 if let Some ( searchstring) = args. get_one :: < String > ( "search" ) {
404- let ifilterobj =
405- josh_core:: filter:: chain ( filterobj, josh_core:: filter:: parse ( ":SQUASH:INDEX" ) ?) ;
410+ let ifilterobj = filterobj. chain ( josh_core:: filter:: parse ( ":SQUASH:INDEX" ) ?) ;
406411
407412 let max_complexity: usize = args
408413 . get_one :: < String > ( "max_comp" )
0 commit comments