@@ -8,7 +8,7 @@ use std::{
88
99use anyhow:: { Context , Result } ;
1010use eccodes:: {
11- CodesError , CodesHandle , CodesIndex , FallibleStreamingIterator , KeyRead , ProductKind ,
11+ CodesError , CodesHandle , CodesIndex , FallibleIterator , KeyRead , ProductKind ,
1212 codes_index:: Select ,
1313} ;
1414use rand:: Rng ;
@@ -22,9 +22,9 @@ fn iterate_handle_from_index() -> Result<()> {
2222 . select ( "level" , 0 ) ?
2323 . select ( "stepType" , "instant" ) ?;
2424
25- let handle = CodesHandle :: new_from_index ( index) ?;
25+ let mut handle = CodesHandle :: new_from_index ( index) ?;
2626
27- let counter = handle. count ( ) ?;
27+ let counter = handle. ref_message_generator ( ) . count ( ) ?;
2828
2929 assert_eq ! ( counter, 1 ) ;
3030
@@ -41,7 +41,10 @@ fn read_index_messages() -> Result<()> {
4141 . select ( "stepType" , "instant" ) ?;
4242
4343 let mut handle = CodesHandle :: new_from_index ( index) ?;
44- let current_message = handle. next ( ) ?. context ( "Message not some" ) ?;
44+ let current_message = handle
45+ . ref_message_generator ( )
46+ . next ( ) ?
47+ . context ( "Message not some" ) ?;
4548
4649 {
4750 let short_name: String = current_message. read_key ( "shortName" ) ?;
@@ -68,11 +71,10 @@ fn collect_index_iterator() -> Result<()> {
6871
6972 let mut handle = CodesHandle :: new_from_index ( index) ?;
7073
71- let mut levels = vec ! [ ] ;
72-
73- while let Some ( msg) = handle. next ( ) ? {
74- levels. push ( msg. try_clone ( ) ?) ;
75- }
74+ let levels = handle
75+ . ref_message_generator ( )
76+ . map ( |msg| msg. try_clone ( ) )
77+ . collect :: < Vec < _ > > ( ) ?;
7678
7779 assert_eq ! ( levels. len( ) , 5 ) ;
7880
@@ -230,12 +232,12 @@ fn index_handle_interference() -> Result<()> {
230232 }
231233 } ) ;
232234
233- let mut rng = rand:: thread_rng ( ) ;
235+ let mut rng = rand:: rng ( ) ;
234236 let keys = vec ! [ "shortName" , "typeOfLevel" , "level" , "stepType" ] ;
235237 let grib_path = Path :: new ( "./data/iceland.grib" ) ;
236238
237239 for _ in 0 ..10 {
238- let sleep_time = rng. gen_range ( 1 ..42 ) ; // randomizing sleep time to hopefully catch segfaults
240+ let sleep_time = rng. random_range ( 1 ..42 ) ; // randomizing sleep time to hopefully catch segfaults
239241
240242 let index = CodesIndex :: new_from_keys ( & keys) ?. add_grib_file ( grib_path) ?;
241243 let i_handle = CodesHandle :: new_from_index ( index) ;
0 commit comments