@@ -49,7 +49,7 @@ struct SopModeler<'a> {
4949
5050impl < ' a > SopModeler < ' a > {
5151 /// Initial creation of the modeler
52- fn new ( functions : & [ Lut ] , and_cost : isize , xor_cost : isize , or_cost : isize ) -> SopModeler {
52+ fn new ( functions : & [ Lut ] , and_cost : isize , xor_cost : isize , or_cost : isize ) -> SopModeler < ' _ > {
5353 SopModeler {
5454 functions,
5555 and_cost,
@@ -333,7 +333,7 @@ struct EsopModeler<'a> {
333333
334334impl < ' a > EsopModeler < ' a > {
335335 /// Initial creation of the modeler
336- fn new ( functions : & [ Lut ] , and_cost : isize , xor_cost : isize ) -> EsopModeler {
336+ fn new ( functions : & [ Lut ] , and_cost : isize , xor_cost : isize ) -> EsopModeler < ' _ > {
337337 EsopModeler {
338338 functions,
339339 and_cost,
@@ -419,10 +419,9 @@ impl<'a> EsopModeler<'a> {
419419
420420 /// Add a xor constraint to the model using these variables
421421 fn add_xor_constraint ( & mut self , vars : Vec < Lit > , value : bool ) {
422- assert ! ( vars. len ( ) >= 1 ) ;
422+ assert ! ( ! vars. is_empty ( ) ) ;
423423 let mut xor_val = vars[ 0 ] ;
424- for i in 1 ..vars. len ( ) {
425- let v = vars[ i] ;
424+ for & v in vars. iter ( ) . skip ( 1 ) {
426425 let next_val = self . instance . new_var ( ) . pos_lit ( ) ;
427426 self . instance . add_ternary ( !xor_val, !next_val, !v) ;
428427 self . instance . add_ternary ( !xor_val, next_val, v) ;
0 commit comments