@@ -558,36 +558,6 @@ impl<A, B> EitherOr for Either<A, B> {
558558 }
559559}
560560
561- #[ test]
562- fn test_either_or ( ) {
563- let right = false . either_or ( |_| 'a' , |_| 12 ) ;
564- assert ! ( matches!( right, Either :: Right ( 12 ) ) ) ;
565-
566- let left = true . either_or ( |_| 'a' , |_| 12 ) ;
567- assert ! ( matches!( left, Either :: Left ( 'a' ) ) ) ;
568-
569- let left = Some ( 12 ) . either_or ( |a| a, |_| 'a' ) ;
570- assert ! ( matches!( left, Either :: Left ( 12 ) ) ) ;
571- let right = None . either_or ( |a : i32 | a, |_| 'a' ) ;
572- assert ! ( matches!( right, Either :: Right ( 'a' ) ) ) ;
573-
574- let result: Result < _ , ( ) > = Ok ( 1.2f32 ) ;
575- let left = result. either_or ( |a| a * 2f32 , |b| b) ;
576- assert ! ( matches!( left, Either :: Left ( 2.4f32 ) ) ) ;
577-
578- let result: Result < i32 , _ > = Err ( "12" ) ;
579- let right = result. either_or ( |a| a, |b| b. chars ( ) . next ( ) ) ;
580- assert ! ( matches!( right, Either :: Right ( Some ( '1' ) ) ) ) ;
581-
582- let either = Either :: < i32 , char > :: Left ( 12 ) ;
583- let left = either. either_or ( |a| a, |b| b) ;
584- assert ! ( matches!( left, Either :: Left ( 12 ) ) ) ;
585-
586- let either = Either :: < i32 , char > :: Right ( 'a' ) ;
587- let right = either. either_or ( |a| a, |b| b) ;
588- assert ! ( matches!( right, Either :: Right ( 'a' ) ) ) ;
589- }
590-
591561tuples ! ( EitherOf3 + EitherOf3Future + EitherOf3FutureProj {
592562 A => ( B , C ) + <A1 , B , C >,
593563 B => ( A , C ) + <A , B1 , C >,
@@ -1238,4 +1208,34 @@ mod tests {
12381208 fn unwrap_wrong_either ( ) {
12391209 Either :: < i32 , & str > :: Left ( 0 ) . unwrap_right ( ) ;
12401210 }
1211+
1212+ #[ test]
1213+ fn either_or ( ) {
1214+ let right = false . either_or ( |_| 'a' , |_| 12 ) ;
1215+ assert ! ( matches!( right, Either :: Right ( 12 ) ) ) ;
1216+
1217+ let left = true . either_or ( |_| 'a' , |_| 12 ) ;
1218+ assert ! ( matches!( left, Either :: Left ( 'a' ) ) ) ;
1219+
1220+ let left = Some ( 12 ) . either_or ( |a| a, |_| 'a' ) ;
1221+ assert ! ( matches!( left, Either :: Left ( 12 ) ) ) ;
1222+ let right = None . either_or ( |a : i32 | a, |_| 'a' ) ;
1223+ assert ! ( matches!( right, Either :: Right ( 'a' ) ) ) ;
1224+
1225+ let result: Result < _ , ( ) > = Ok ( 1.2f32 ) ;
1226+ let left = result. either_or ( |a| a * 2f32 , |b| b) ;
1227+ assert ! ( matches!( left, Either :: Left ( 2.4f32 ) ) ) ;
1228+
1229+ let result: Result < i32 , _ > = Err ( "12" ) ;
1230+ let right = result. either_or ( |a| a, |b| b. chars ( ) . next ( ) ) ;
1231+ assert ! ( matches!( right, Either :: Right ( Some ( '1' ) ) ) ) ;
1232+
1233+ let either = Either :: < i32 , char > :: Left ( 12 ) ;
1234+ let left = either. either_or ( |a| a, |b| b) ;
1235+ assert ! ( matches!( left, Either :: Left ( 12 ) ) ) ;
1236+
1237+ let either = Either :: < i32 , char > :: Right ( 'a' ) ;
1238+ let right = either. either_or ( |a| a, |b| b) ;
1239+ assert ! ( matches!( right, Either :: Right ( 'a' ) ) ) ;
1240+ }
12411241}
0 commit comments