use crate::Runner;
use serde_derive::Deserialize;
use std::collections::HashMap;
#[derive(Debug, Deserialize)]
pub struct Config {
pub grouped_runners: HashMap<String, Vec<Runner>>,
pub solo_runners: HashMap<String, Runner>,
}
impl Config {
pub fn get_runners<'a>(&'a self, group_name: &str) -> Option<Vec<&'a Runner>> {
self.grouped_runners.get(group_name).map(|runners| runners.iter().collect())
}
pub fn get_grouped_runner<'a>(&'a self, group_name: &str, runner_name: &str) -> Option<&'a Runner> {
let group = self.grouped_runners.get(group_name)?;
group.iter().find(|r| r.name == runner_name)
}
pub fn get_solo_runner<'a>(&'a self, name: &str) -> Option<&'a Runner> {
self.solo_runners.get(name)
}
}