@@ -996,7 +996,7 @@ fn split_conjunction_impl<'a>(expr: &'a Expr, mut exprs: Vec<&'a Expr>) -> Vec<&
996996/// assert_eq!(split_conjunction_owned(expr), split);
997997/// ```
998998pub fn split_conjunction_owned ( expr : Expr ) -> Vec < Expr > {
999- split_binary_owned ( expr, Operator :: And )
999+ split_binary_owned ( expr, & Operator :: And )
10001000}
10011001
10021002/// Splits an owned binary operator tree [`Expr`] such as `A <OP> B <OP> C` => `[A, B, C]`
@@ -1019,19 +1019,19 @@ pub fn split_conjunction_owned(expr: Expr) -> Vec<Expr> {
10191019/// ];
10201020///
10211021/// // use split_binary_owned to split them
1022- /// assert_eq!(split_binary_owned(expr, Operator::Plus), split);
1022+ /// assert_eq!(split_binary_owned(expr, & Operator::Plus), split);
10231023/// ```
1024- pub fn split_binary_owned ( expr : Expr , op : Operator ) -> Vec < Expr > {
1024+ pub fn split_binary_owned ( expr : Expr , op : & Operator ) -> Vec < Expr > {
10251025 split_binary_owned_impl ( expr, op, vec ! [ ] )
10261026}
10271027
10281028fn split_binary_owned_impl (
10291029 expr : Expr ,
1030- operator : Operator ,
1030+ operator : & Operator ,
10311031 mut exprs : Vec < Expr > ,
10321032) -> Vec < Expr > {
10331033 match expr {
1034- Expr :: BinaryExpr ( BinaryExpr { right, op, left } ) if op == operator => {
1034+ Expr :: BinaryExpr ( BinaryExpr { right, op, left } ) if & op == operator => {
10351035 let exprs = split_binary_owned_impl ( * left, operator, exprs) ;
10361036 split_binary_owned_impl ( * right, operator, exprs)
10371037 }
@@ -1048,17 +1048,17 @@ fn split_binary_owned_impl(
10481048/// Splits an binary operator tree [`Expr`] such as `A <OP> B <OP> C` => `[A, B, C]`
10491049///
10501050/// See [`split_binary_owned`] for more details and an example.
1051- pub fn split_binary ( expr : & Expr , op : Operator ) -> Vec < & Expr > {
1051+ pub fn split_binary < ' a > ( expr : & ' a Expr , op : & Operator ) -> Vec < & ' a Expr > {
10521052 split_binary_impl ( expr, op, vec ! [ ] )
10531053}
10541054
10551055fn split_binary_impl < ' a > (
10561056 expr : & ' a Expr ,
1057- operator : Operator ,
1057+ operator : & Operator ,
10581058 mut exprs : Vec < & ' a Expr > ,
10591059) -> Vec < & ' a Expr > {
10601060 match expr {
1061- Expr :: BinaryExpr ( BinaryExpr { right, op, left } ) if * op == operator => {
1061+ Expr :: BinaryExpr ( BinaryExpr { right, op, left } ) if op == operator => {
10621062 let exprs = split_binary_impl ( left, operator, exprs) ;
10631063 split_binary_impl ( right, operator, exprs)
10641064 }
@@ -1612,13 +1612,13 @@ mod tests {
16121612 #[ test]
16131613 fn test_split_binary_owned ( ) {
16141614 let expr = col ( "a" ) ;
1615- assert_eq ! ( split_binary_owned( expr. clone( ) , Operator :: And ) , vec![ expr] ) ;
1615+ assert_eq ! ( split_binary_owned( expr. clone( ) , & Operator :: And ) , vec![ expr] ) ;
16161616 }
16171617
16181618 #[ test]
16191619 fn test_split_binary_owned_two ( ) {
16201620 assert_eq ! (
1621- split_binary_owned( col( "a" ) . eq( lit( 5 ) ) . and( col( "b" ) ) , Operator :: And ) ,
1621+ split_binary_owned( col( "a" ) . eq( lit( 5 ) ) . and( col( "b" ) ) , & Operator :: And ) ,
16221622 vec![ col( "a" ) . eq( lit( 5 ) ) , col( "b" ) ]
16231623 ) ;
16241624 }
@@ -1628,7 +1628,7 @@ mod tests {
16281628 let expr = col ( "a" ) . eq ( lit ( 5 ) ) . or ( col ( "b" ) ) ;
16291629 assert_eq ! (
16301630 // expr is connected by OR, but pass in AND
1631- split_binary_owned( expr. clone( ) , Operator :: And ) ,
1631+ split_binary_owned( expr. clone( ) , & Operator :: And ) ,
16321632 vec![ expr]
16331633 ) ;
16341634 }
0 commit comments