@@ -32,20 +32,20 @@ pub(crate) fn add_package_into_database(conn: &Connection,
32
32
has_examples : bool )
33
33
-> Result < i32 > {
34
34
debug ! ( "Adding package into database" ) ;
35
- let crate_id = try! ( initialize_package_in_database ( & conn, metadata_pkg) ) ;
35
+ let crate_id = initialize_package_in_database ( & conn, metadata_pkg) ? ;
36
36
let dependencies = convert_dependencies ( metadata_pkg) ;
37
37
let rustdoc = get_rustdoc ( metadata_pkg, source_dir) . unwrap_or ( None ) ;
38
38
let readme = get_readme ( metadata_pkg, source_dir) . unwrap_or ( None ) ;
39
- let ( release_time, yanked, downloads) = try! ( get_release_time_yanked_downloads ( metadata_pkg) ) ;
39
+ let ( release_time, yanked, downloads) = get_release_time_yanked_downloads ( metadata_pkg) ? ;
40
40
let is_library = metadata_pkg. is_library ( ) ;
41
41
let metadata = Metadata :: from_source_dir ( source_dir) ?;
42
42
43
43
let release_id: i32 = {
44
- let rows = try! ( conn. query ( "SELECT id FROM releases WHERE crate_id = $1 AND version = $2" ,
45
- & [ & crate_id, & format ! ( "{}" , metadata_pkg. version) ] ) ) ;
44
+ let rows = conn. query ( "SELECT id FROM releases WHERE crate_id = $1 AND version = $2" ,
45
+ & [ & crate_id, & format ! ( "{}" , metadata_pkg. version) ] ) ? ;
46
46
47
47
if rows. len ( ) == 0 {
48
- let rows = try! ( conn. query ( "INSERT INTO releases (
48
+ let rows = conn. query ( "INSERT INTO releases (
49
49
crate_id, version, release_time,
50
50
dependencies, target_name, yanked, build_status,
51
51
rustdoc_status, test_status, license, repository_url,
@@ -83,12 +83,12 @@ pub(crate) fn add_package_into_database(conn: &Connection,
83
83
& is_library,
84
84
& res. rustc_version ,
85
85
& metadata_pkg. documentation ,
86
- & metadata. default_target ] ) ) ;
86
+ & metadata. default_target ] ) ? ;
87
87
// return id
88
88
rows. get ( 0 ) . get ( 0 )
89
89
90
90
} else {
91
- try! ( conn. query ( "UPDATE releases
91
+ conn. query ( "UPDATE releases
92
92
SET release_time = $3,
93
93
dependencies = $4,
94
94
target_name = $5,
@@ -137,22 +137,22 @@ pub(crate) fn add_package_into_database(conn: &Connection,
137
137
& is_library,
138
138
& res. rustc_version ,
139
139
& metadata_pkg. documentation ,
140
- & metadata. default_target ] ) ) ;
140
+ & metadata. default_target ] ) ? ;
141
141
rows. get ( 0 ) . get ( 0 )
142
142
}
143
143
} ;
144
144
145
145
146
- try! ( add_keywords_into_database ( & conn, & metadata_pkg, & release_id) ) ;
147
- try! ( add_authors_into_database ( & conn, & metadata_pkg, & release_id) ) ;
148
- try! ( add_owners_into_database ( & conn, & metadata_pkg, & crate_id) ) ;
146
+ add_keywords_into_database ( & conn, & metadata_pkg, & release_id) ? ;
147
+ add_authors_into_database ( & conn, & metadata_pkg, & release_id) ? ;
148
+ add_owners_into_database ( & conn, & metadata_pkg, & crate_id) ? ;
149
149
150
150
151
151
// Update versions
152
152
{
153
153
let metadata_version = Version :: parse ( & metadata_pkg. version ) ?;
154
- let mut versions: Json = try! ( conn. query ( "SELECT versions FROM crates WHERE id = $1" ,
155
- & [ & crate_id] ) )
154
+ let mut versions: Json = conn. query ( "SELECT versions FROM crates WHERE id = $1" ,
155
+ & [ & crate_id] ) ?
156
156
. get ( 0 )
157
157
. get ( 0 ) ;
158
158
if let Some ( versions_array) = versions. as_array_mut ( ) {
@@ -181,7 +181,7 @@ pub(crate) fn add_build_into_database(conn: &Connection,
181
181
res : & BuildResult )
182
182
-> Result < i32 > {
183
183
debug ! ( "Adding build into database" ) ;
184
- let rows = try! ( conn. query ( "INSERT INTO builds (rid, rustc_version,
184
+ let rows = conn. query ( "INSERT INTO builds (rid, rustc_version,
185
185
cratesfyi_version,
186
186
build_status, output)
187
187
VALUES ($1, $2, $3, $4, $5)
@@ -190,17 +190,17 @@ pub(crate) fn add_build_into_database(conn: &Connection,
190
190
& res. rustc_version ,
191
191
& res. docsrs_version ,
192
192
& res. successful ,
193
- & res. build_log ] ) ) ;
193
+ & res. build_log ] ) ? ;
194
194
Ok ( rows. get ( 0 ) . get ( 0 ) )
195
195
}
196
196
197
197
198
198
fn initialize_package_in_database ( conn : & Connection , pkg : & MetadataPackage ) -> Result < i32 > {
199
- let mut rows = try! ( conn. query ( "SELECT id FROM crates WHERE name = $1" , & [ & pkg. name ] ) ) ;
199
+ let mut rows = conn. query ( "SELECT id FROM crates WHERE name = $1" , & [ & pkg. name ] ) ? ;
200
200
// insert crate into database if it is not exists
201
201
if rows. len ( ) == 0 {
202
- rows = try! ( conn. query ( "INSERT INTO crates (name) VALUES ($1) RETURNING id" ,
203
- & [ & pkg. name ] ) ) ;
202
+ rows = conn. query ( "INSERT INTO crates (name) VALUES ($1) RETURNING id" ,
203
+ & [ & pkg. name ] ) ? ;
204
204
}
205
205
Ok ( rows. get ( 0 ) . get ( 0 ) )
206
206
}
@@ -228,9 +228,9 @@ fn get_readme(pkg: &MetadataPackage, source_dir: &Path) -> Result<Option<String>
228
228
return Ok ( None ) ;
229
229
}
230
230
231
- let mut reader = try! ( fs:: File :: open ( readme_path) . map ( |f| BufReader :: new ( f) ) ) ;
231
+ let mut reader = fs:: File :: open ( readme_path) . map ( |f| BufReader :: new ( f) ) ? ;
232
232
let mut readme = String :: new ( ) ;
233
- try! ( reader. read_to_string ( & mut readme) ) ;
233
+ reader. read_to_string ( & mut readme) ? ;
234
234
235
235
if readme. is_empty ( ) {
236
236
Ok ( None )
@@ -259,11 +259,11 @@ fn get_rustdoc(pkg: &MetadataPackage, source_dir: &Path) -> Result<Option<String
259
259
260
260
/// Reads rustdoc from library
261
261
fn read_rust_doc ( file_path : & Path ) -> Result < Option < String > > {
262
- let reader = try! ( fs:: File :: open ( file_path) . map ( |f| BufReader :: new ( f) ) ) ;
262
+ let reader = fs:: File :: open ( file_path) . map ( |f| BufReader :: new ( f) ) ? ;
263
263
let mut rustdoc = String :: new ( ) ;
264
264
265
265
for line in reader. lines ( ) {
266
- let line = try! ( line) ;
266
+ let line = line? ;
267
267
if line. starts_with ( "//!" ) {
268
268
// some lines may or may not have a space between the `//!` and the start of the text
269
269
let line = line. trim_start_matches ( "//!" ) . trim_start ( ) ;
@@ -293,40 +293,40 @@ fn get_release_time_yanked_downloads(
293
293
// FIXME: There is probably better way to do this
294
294
// and so many unwraps...
295
295
let client = Client :: new ( ) ;
296
- let mut res = try! ( client. get ( & url[ ..] )
296
+ let mut res = client. get ( & url[ ..] )
297
297
. header ( ACCEPT , "application/json" )
298
- . send ( ) ) ;
298
+ . send ( ) ? ;
299
299
let mut body = String :: new ( ) ;
300
300
res. read_to_string ( & mut body) . unwrap ( ) ;
301
301
let json = Json :: from_str ( & body[ ..] ) . unwrap ( ) ;
302
- let versions = try! ( json. as_object ( )
302
+ let versions = json. as_object ( )
303
303
. and_then ( |o| o. get ( "versions" ) )
304
304
. and_then ( |v| v. as_array ( ) )
305
- . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ;
305
+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ? ;
306
306
307
307
let ( mut release_time, mut yanked, mut downloads) = ( None , None , None ) ;
308
308
309
309
for version in versions {
310
- let version = try! ( version. as_object ( ) . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ;
311
- let version_num = try! ( version. get ( "num" )
310
+ let version = version. as_object ( ) . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ? ;
311
+ let version_num = version. get ( "num" )
312
312
. and_then ( |v| v. as_string ( ) )
313
- . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ;
313
+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ? ;
314
314
315
315
if semver:: Version :: parse ( version_num) . unwrap ( ) . to_string ( ) == pkg. version {
316
- let release_time_raw = try! ( version. get ( "created_at" )
316
+ let release_time_raw = version. get ( "created_at" )
317
317
. and_then ( |c| c. as_string ( ) )
318
- . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ;
318
+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ? ;
319
319
release_time = Some ( time:: strptime ( release_time_raw, "%Y-%m-%dT%H:%M:%S" )
320
320
. unwrap ( )
321
321
. to_timespec ( ) ) ;
322
322
323
- yanked = Some ( try! ( version. get ( "yanked" )
323
+ yanked = Some ( version. get ( "yanked" )
324
324
. and_then ( |c| c. as_boolean ( ) )
325
- . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ) ;
325
+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ? ) ;
326
326
327
- downloads = Some ( try! ( version. get ( "downloads" )
327
+ downloads = Some ( version. get ( "downloads" )
328
328
. and_then ( |c| c. as_i64 ( ) )
329
- . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) as i32 ) ;
329
+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ? as i32 ) ;
330
330
331
331
break ;
332
332
}
@@ -341,12 +341,12 @@ fn add_keywords_into_database(conn: &Connection, pkg: &MetadataPackage, release_
341
341
for keyword in & pkg. keywords {
342
342
let slug = slugify ( & keyword) ;
343
343
let keyword_id: i32 = {
344
- let rows = try! ( conn. query ( "SELECT id FROM keywords WHERE slug = $1" , & [ & slug] ) ) ;
344
+ let rows = conn. query ( "SELECT id FROM keywords WHERE slug = $1" , & [ & slug] ) ? ;
345
345
if rows. len ( ) > 0 {
346
346
rows. get ( 0 ) . get ( 0 )
347
347
} else {
348
- try! ( conn. query ( "INSERT INTO keywords (name, slug) VALUES ($1, $2) RETURNING id" ,
349
- & [ & keyword, & slug] ) )
348
+ conn. query ( "INSERT INTO keywords (name, slug) VALUES ($1, $2) RETURNING id" ,
349
+ & [ & keyword, & slug] ) ?
350
350
. get ( 0 )
351
351
. get ( 0 )
352
352
}
@@ -372,13 +372,13 @@ fn add_authors_into_database(conn: &Connection, pkg: &MetadataPackage, release_i
372
372
let slug = slugify ( & author) ;
373
373
374
374
let author_id: i32 = {
375
- let rows = try! ( conn. query ( "SELECT id FROM authors WHERE slug = $1" , & [ & slug] ) ) ;
375
+ let rows = conn. query ( "SELECT id FROM authors WHERE slug = $1" , & [ & slug] ) ? ;
376
376
if rows. len ( ) > 0 {
377
377
rows. get ( 0 ) . get ( 0 )
378
378
} else {
379
- try! ( conn. query ( "INSERT INTO authors (name, email, slug) VALUES ($1, $2, $3)
379
+ conn. query ( "INSERT INTO authors (name, email, slug) VALUES ($1, $2, $3)
380
380
RETURNING id" ,
381
- & [ & author, & email, & slug] ) )
381
+ & [ & author, & email, & slug] ) ?
382
382
. get ( 0 )
383
383
. get ( 0 )
384
384
}
@@ -400,14 +400,14 @@ fn add_owners_into_database(conn: &Connection, pkg: &MetadataPackage, crate_id:
400
400
// owners available in: https://crates.io/api/v1/crates/rand/owners
401
401
let owners_url = format ! ( "https://crates.io/api/v1/crates/{}/owners" , pkg. name) ;
402
402
let client = Client :: new ( ) ;
403
- let mut res = try! ( client. get ( & owners_url[ ..] )
403
+ let mut res = client. get ( & owners_url[ ..] )
404
404
. header ( ACCEPT , "application/json" )
405
- . send ( ) ) ;
405
+ . send ( ) ? ;
406
406
// FIXME: There is probably better way to do this
407
407
// and so many unwraps...
408
408
let mut body = String :: new ( ) ;
409
409
res. read_to_string ( & mut body) . unwrap ( ) ;
410
- let json = try! ( Json :: from_str ( & body[ ..] ) ) ;
410
+ let json = Json :: from_str ( & body[ ..] ) ? ;
411
411
412
412
if let Some ( owners) = json. as_object ( )
413
413
. and_then ( |j| j. get ( "users" ) )
@@ -436,14 +436,14 @@ fn add_owners_into_database(conn: &Connection, pkg: &MetadataPackage, crate_id:
436
436
}
437
437
438
438
let owner_id: i32 = {
439
- let rows = try! ( conn. query ( "SELECT id FROM owners WHERE login = $1" , & [ & login] ) ) ;
439
+ let rows = conn. query ( "SELECT id FROM owners WHERE login = $1" , & [ & login] ) ? ;
440
440
if rows. len ( ) > 0 {
441
441
rows. get ( 0 ) . get ( 0 )
442
442
} else {
443
- try! ( conn. query ( "INSERT INTO owners (login, avatar, name, email)
443
+ conn. query ( "INSERT INTO owners (login, avatar, name, email)
444
444
VALUES ($1, $2, $3, $4)
445
445
RETURNING id" ,
446
- & [ & login, & avatar, & name, & email] ) )
446
+ & [ & login, & avatar, & name, & email] ) ?
447
447
. get ( 0 )
448
448
. get ( 0 )
449
449
}
0 commit comments