@@ -18,7 +18,7 @@ use semver;
18
18
use postgres:: Connection ;
19
19
use time;
20
20
use error:: Result ;
21
-
21
+ use failure :: err_msg ;
22
22
23
23
/// Adds a package into database.
24
24
///
@@ -222,7 +222,7 @@ fn convert_dependencies(pkg: &Package) -> Vec<(String, String)> {
222
222
223
223
/// Reads readme if there is any read defined in Cargo.toml of a Package
224
224
fn get_readme ( pkg : & Package ) -> Result < Option < String > > {
225
- let readme_path = PathBuf :: from ( try!( source_path ( & pkg) . ok_or ( "File not found" ) ) )
225
+ let readme_path = PathBuf :: from ( try!( source_path ( & pkg) . ok_or_else ( || err_msg ( "File not found" ) ) ) )
226
226
. join ( pkg. manifest ( ) . metadata ( ) . readme . clone ( ) . unwrap_or ( "README.md" . to_owned ( ) ) ) ;
227
227
228
228
if !readme_path. exists ( ) {
@@ -240,7 +240,7 @@ fn get_rustdoc(pkg: &Package) -> Result<Option<String>> {
240
240
if pkg. manifest ( ) . targets ( ) [ 0 ] . src_path ( ) . is_absolute ( ) {
241
241
read_rust_doc ( pkg. manifest ( ) . targets ( ) [ 0 ] . src_path ( ) )
242
242
} else {
243
- let mut path = PathBuf :: from ( try!( source_path ( & pkg) . ok_or ( "File not found" ) ) ) ;
243
+ let mut path = PathBuf :: from ( try!( source_path ( & pkg) . ok_or_else ( || err_msg ( "File not found" ) ) ) ) ;
244
244
path. push ( pkg. manifest ( ) . targets ( ) [ 0 ] . src_path ( ) ) ;
245
245
read_rust_doc ( path. as_path ( ) )
246
246
}
@@ -289,31 +289,31 @@ fn get_release_time_yanked_downloads
289
289
let versions = try!( json. as_object ( )
290
290
. and_then ( |o| o. get ( "versions" ) )
291
291
. and_then ( |v| v. as_array ( ) )
292
- . ok_or ( "Not a JSON object" ) ) ;
292
+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ;
293
293
294
294
let ( mut release_time, mut yanked, mut downloads) = ( None , None , None ) ;
295
295
296
296
for version in versions {
297
- let version = try!( version. as_object ( ) . ok_or ( "Not a JSON object" ) ) ;
297
+ let version = try!( version. as_object ( ) . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ;
298
298
let version_num = try!( version. get ( "num" )
299
299
. and_then ( |v| v. as_string ( ) )
300
- . ok_or ( "Not a JSON object" ) ) ;
300
+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ;
301
301
302
302
if & semver:: Version :: parse ( version_num) . unwrap ( ) == pkg. manifest ( ) . version ( ) {
303
303
let release_time_raw = try!( version. get ( "created_at" )
304
304
. and_then ( |c| c. as_string ( ) )
305
- . ok_or ( "Not a JSON object" ) ) ;
305
+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ;
306
306
release_time = Some ( time:: strptime ( release_time_raw, "%Y-%m-%dT%H:%M:%S" )
307
307
. unwrap ( )
308
308
. to_timespec ( ) ) ;
309
309
310
310
yanked = Some ( try!( version. get ( "yanked" )
311
311
. and_then ( |c| c. as_boolean ( ) )
312
- . ok_or ( "Not a JSON object" ) ) ) ;
312
+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ) ;
313
313
314
314
downloads = Some ( try!( version. get ( "downloads" )
315
315
. and_then ( |c| c. as_i64 ( ) )
316
- . ok_or ( "Not a JSON object" ) ) as i32 ) ;
316
+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) as i32 ) ;
317
317
318
318
break ;
319
319
}
0 commit comments