muse2/input/process/
region.rsuse super::define_process_id_getter;
use crate::input::region::{define_region_id_getter, read_regions_for_entity};
use crate::input::*;
use crate::region::RegionSelection;
use anyhow::Result;
use serde::Deserialize;
use std::collections::{HashMap, HashSet};
use std::path::Path;
use std::rc::Rc;
const PROCESS_REGIONS_FILE_NAME: &str = "process_regions.csv";
#[derive(PartialEq, Debug, Deserialize)]
struct ProcessRegion {
process_id: String,
region_id: String,
}
define_process_id_getter! {ProcessRegion}
define_region_id_getter! {ProcessRegion}
pub fn read_process_regions(
model_dir: &Path,
process_ids: &HashSet<Rc<str>>,
region_ids: &HashSet<Rc<str>>,
) -> Result<HashMap<Rc<str>, RegionSelection>> {
let file_path = model_dir.join(PROCESS_REGIONS_FILE_NAME);
read_regions_for_entity::<ProcessRegion>(&file_path, process_ids, region_ids)
}