@@ -150,3 +150,36 @@ pub fn test_expect_err() {
150
150
let err: Result < isize , & ' static str > = Err ( "All good" ) ;
151
151
err. expect ( "Got expected error" ) ;
152
152
}
153
+
154
+ #[ test]
155
+ pub fn test_iter ( ) {
156
+ let ok: Result < isize , & ' static str > = Ok ( 100 ) ;
157
+ let mut it = ok. iter ( ) ;
158
+ assert_eq ! ( it. size_hint( ) , ( 1 , Some ( 1 ) ) ) ;
159
+ assert_eq ! ( it. next( ) , Some ( & 100 ) ) ;
160
+ assert_eq ! ( it. size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
161
+ assert ! ( it. next( ) . is_none( ) ) ;
162
+ assert_eq ! ( ( & ok) . into_iter( ) . next( ) , Some ( & 100 ) ) ;
163
+
164
+ let err: Result < isize , & ' static str > = Err ( "error" ) ;
165
+ assert_eq ! ( err. iter( ) . next( ) , None ) ;
166
+ }
167
+
168
+ #[ test]
169
+ pub fn test_iter_mut ( ) {
170
+ let mut ok: Result < isize , & ' static str > = Ok ( 100 ) ;
171
+ for loc in ok. iter_mut ( ) {
172
+ * loc = 200 ;
173
+ }
174
+ assert_eq ! ( ok, Ok ( 200 ) ) ;
175
+ for loc in & mut ok {
176
+ * loc = 300 ;
177
+ }
178
+ assert_eq ! ( ok, Ok ( 300 ) ) ;
179
+
180
+ let mut err: Result < isize , & ' static str > = Err ( "error" ) ;
181
+ for loc in err. iter_mut ( ) {
182
+ * loc = 200 ;
183
+ }
184
+ assert_eq ! ( err, Err ( "error" ) ) ;
185
+ }
0 commit comments