11//! Code for reading process parameters CSV file
22use super :: super :: * ;
3- use crate :: id:: IDCollection ;
43use crate :: process:: { Process , ProcessID , ProcessParameter , ProcessParameterMap } ;
54use crate :: region:: parse_region_str;
65use crate :: year:: parse_year_str;
76use :: log:: warn;
87use anyhow:: { ensure, Context , Result } ;
9- use indexmap:: IndexSet ;
108use serde:: Deserialize ;
119use std:: collections:: HashMap ;
1210use std:: path:: Path ;
@@ -97,18 +95,15 @@ impl ProcessParameterRaw {
9795/// Read process parameters from the specified model directory
9896pub fn read_process_parameters (
9997 model_dir : & Path ,
100- process_ids : & IndexSet < ProcessID > ,
10198 processes : & HashMap < ProcessID , Process > ,
10299) -> Result < HashMap < ProcessID , ProcessParameterMap > > {
103100 let file_path = model_dir. join ( PROCESS_PARAMETERS_FILE_NAME ) ;
104101 let iter = read_csv :: < ProcessParameterRaw > ( & file_path) ?;
105- read_process_parameters_from_iter ( iter, process_ids, processes)
106- . with_context ( || input_err_msg ( & file_path) )
102+ read_process_parameters_from_iter ( iter, processes) . with_context ( || input_err_msg ( & file_path) )
107103}
108104
109105fn read_process_parameters_from_iter < I > (
110106 iter : I ,
111- process_ids : & IndexSet < ProcessID > ,
112107 processes : & HashMap < ProcessID , Process > ,
113108) -> Result < HashMap < ProcessID , ProcessParameterMap > >
114109where
@@ -117,10 +112,9 @@ where
117112 let mut map: HashMap < ProcessID , ProcessParameterMap > = HashMap :: new ( ) ;
118113 for param_raw in iter {
119114 // Get process
120- let id = process_ids. get_id ( & param_raw. process_id ) ?;
121- let process = processes
122- . get ( id)
123- . with_context ( || format ! ( "Process {id} not found" ) ) ?;
115+ let ( id, process) = processes
116+ . get_key_value ( param_raw. process_id . as_str ( ) )
117+ . with_context ( || format ! ( "Process {} not found" , param_raw. process_id) ) ?;
124118
125119 // Get years
126120 let process_years = & process. years ;
0 commit comments