@@ -14,7 +14,9 @@ pub struct RepoArch {
1414}
1515
1616#[ derive( Deserialize , Serialize , Debug , Clone ) ]
17- pub struct CommitBuildInfo {
17+ pub struct EnabledRepo {
18+ #[ serde( flatten) ]
19+ pub repo_arch : RepoArch ,
1820 pub prev_endtime_for_commit : Option < u64 > ,
1921}
2022
@@ -237,26 +239,19 @@ impl BuildMeta {
237239 Ok ( ( ) )
238240 }
239241
240- pub fn get_commit_build_info ( & self , srcmd5 : & str ) -> HashMap < RepoArch , CommitBuildInfo > {
241- let mut repos = HashMap :: new ( ) ;
242-
243- for ( repo, jobhist) in & self . repos {
244- let prev_endtime_for_commit = jobhist
245- . jobhist
246- . iter ( )
247- . filter ( |e| e. srcmd5 == srcmd5)
248- . next_back ( )
249- . map ( |e| e. endtime ) ;
250-
251- repos. insert (
252- repo. clone ( ) ,
253- CommitBuildInfo {
254- prev_endtime_for_commit,
255- } ,
256- ) ;
257- }
258-
259- repos
242+ pub fn get_commit_build_info ( & self , srcmd5 : & str ) -> Vec < EnabledRepo > {
243+ self . repos
244+ . iter ( )
245+ . map ( |( repo, jobhist) | EnabledRepo {
246+ repo_arch : repo. clone ( ) ,
247+ prev_endtime_for_commit : jobhist
248+ . jobhist
249+ . iter ( )
250+ . filter ( |e| e. srcmd5 == srcmd5)
251+ . next_back ( )
252+ . map ( |e| e. endtime ) ,
253+ } )
254+ . collect ( )
260255 }
261256}
262257
@@ -360,10 +355,10 @@ mod tests {
360355
361356 let build_info = meta. get_commit_build_info ( & srcmd5_1) ;
362357
363- let arch_1 = assert_some ! ( build_info. get ( & repo_arch_1) ) ;
358+ let arch_1 = assert_some ! ( build_info. iter ( ) . find ( |e| e . repo_arch == repo_arch_1) ) ;
364359 assert_some_eq ! ( arch_1. prev_endtime_for_commit, endtime_1) ;
365360
366- let arch_2 = assert_some ! ( build_info. get ( & repo_arch_2) ) ;
361+ let arch_2 = assert_some ! ( build_info. iter ( ) . find ( |e| e . repo_arch == repo_arch_2) ) ;
367362 assert_none ! ( arch_2. prev_endtime_for_commit) ;
368363
369364 let meta = assert_ok ! (
@@ -385,9 +380,9 @@ mod tests {
385380
386381 let build_info = meta. get_commit_build_info ( & srcmd5_1) ;
387382
388- let arch_1 = assert_some ! ( build_info. get ( & repo_arch_1) ) ;
383+ let arch_1 = assert_some ! ( build_info. iter ( ) . find ( |e| e . repo_arch == repo_arch_1) ) ;
389384 assert_none ! ( arch_1. prev_endtime_for_commit) ;
390- let arch_2 = assert_some ! ( build_info. get ( & repo_arch_2) ) ;
385+ let arch_2 = assert_some ! ( build_info. iter ( ) . find ( |e| e . repo_arch == repo_arch_2) ) ;
391386 assert_none ! ( arch_2. prev_endtime_for_commit) ;
392387
393388 assert ! ( meta. repos. contains_key( & repo_arch_2) ) ;
@@ -431,7 +426,7 @@ mod tests {
431426
432427 let build_info = meta. get_commit_build_info ( & srcmd5_2) ;
433428
434- let arch_1 = assert_some ! ( build_info. get ( & repo_arch_2) ) ;
429+ let arch_1 = assert_some ! ( build_info. iter ( ) . find ( |e| e . repo_arch == repo_arch_2) ) ;
435430 assert_some_eq ! ( arch_1. prev_endtime_for_commit, endtime_2) ;
436431
437432 mock. add_job_history (
@@ -465,13 +460,13 @@ mod tests {
465460
466461 let build_info = meta. get_commit_build_info ( & srcmd5_1) ;
467462
468- let arch_2 = assert_some ! ( build_info. get ( & repo_arch_2) ) ;
463+ let arch_2 = assert_some ! ( build_info. iter ( ) . find ( |e| e . repo_arch == repo_arch_2) ) ;
469464 assert_some_eq ! ( arch_2. prev_endtime_for_commit, endtime_1) ;
470465
471466 meta. clear_stored_history ( ) ;
472467
473468 let build_info = meta. get_commit_build_info ( & srcmd5_1) ;
474- let arch_2 = assert_some ! ( build_info. get ( & repo_arch_2) ) ;
469+ let arch_2 = assert_some ! ( build_info. iter ( ) . find ( |e| e . repo_arch == repo_arch_2) ) ;
475470 assert_none ! ( arch_2. prev_endtime_for_commit) ;
476471
477472 mock. set_package_build_status (
0 commit comments