@@ -30,7 +30,7 @@ fn main() -> Result<(), Box<dyn Error>> {
3030 & [ ] ,
3131 ) ?;
3232
33- let data = load_movielens ( Path :: new ( & movielens_path) ) ;
33+ let data = load_movielens ( Path :: new ( & movielens_path) ) ? ;
3434 let recommender = RecommenderBuilder :: new ( ) . factors ( 20 ) . fit_explicit ( & data) ;
3535
3636 for user_id in recommender. user_ids ( ) {
@@ -66,37 +66,37 @@ fn main() -> Result<(), Box<dyn Error>> {
6666 Ok ( ( ) )
6767}
6868
69- fn load_movielens ( path : & Path ) -> Dataset < i32 , String > {
69+ fn load_movielens ( path : & Path ) -> Result < Dataset < i32 , String > , Box < dyn Error > > {
7070 // read movies, removing invalid UTF-8 bytes
7171 let mut movies = HashMap :: new ( ) ;
72- let mut movies_file = File :: open ( path. join ( "u.item" ) ) . unwrap ( ) ;
72+ let mut movies_file = File :: open ( path. join ( "u.item" ) ) ? ;
7373 let mut buf = Vec :: new ( ) ;
74- movies_file. read_to_end ( & mut buf) . unwrap ( ) ;
74+ movies_file. read_to_end ( & mut buf) ? ;
7575 let movies_data = String :: from_utf8_lossy ( & buf) ;
7676 let mut rdr = ReaderBuilder :: new ( )
7777 . has_headers ( false )
7878 . delimiter ( b'|' )
7979 . from_reader ( movies_data. as_bytes ( ) ) ;
8080 for record in rdr. records ( ) {
81- let row = record. unwrap ( ) ;
81+ let row = record? ;
8282 movies. insert ( row[ 0 ] . to_string ( ) , row[ 1 ] . to_string ( ) ) ;
8383 }
8484
8585 // read ratings and create dataset
8686 let mut data = Dataset :: new ( ) ;
87- let ratings_file = File :: open ( path. join ( "u.data" ) ) . unwrap ( ) ;
87+ let ratings_file = File :: open ( path. join ( "u.data" ) ) ? ;
8888 let mut rdr = ReaderBuilder :: new ( )
8989 . has_headers ( false )
9090 . delimiter ( b'\t' )
9191 . from_reader ( ratings_file) ;
9292 for record in rdr. records ( ) {
93- let row = record. unwrap ( ) ;
93+ let row = record? ;
9494 data. push (
95- row[ 0 ] . parse :: < i32 > ( ) . unwrap ( ) ,
95+ row[ 0 ] . parse :: < i32 > ( ) ? ,
9696 movies. get ( & row[ 1 ] ) . unwrap ( ) . to_string ( ) ,
97- row[ 2 ] . parse ( ) . unwrap ( ) ,
97+ row[ 2 ] . parse ( ) ? ,
9898 ) ;
9999 }
100100
101- data
101+ Ok ( data)
102102}
0 commit comments