use clap::builder::PossibleValue;
use super::config::policy_definitions::PolicyDefinition;
use super::config::{
ACCESSIBILITY_POLICY_DEFINITIONS, COLOUR_POLICY_DEFINITIONS, EMOJI_POLICY_DEFINITIONS,
PROGRESS_POLICY_DEFINITIONS,
};
fn possible_values<T>(definitions: &[PolicyDefinition<T>]) -> Vec<PossibleValue> {
definitions
.iter()
.map(|definition| PossibleValue::new(definition.spelling).help(definition.description))
.collect()
}
pub fn colour_policy_possible_values() -> Vec<PossibleValue> {
possible_values(&COLOUR_POLICY_DEFINITIONS)
}
pub fn emoji_policy_possible_values() -> Vec<PossibleValue> {
possible_values(&EMOJI_POLICY_DEFINITIONS)
}
pub fn progress_policy_possible_values() -> Vec<PossibleValue> {
possible_values(&PROGRESS_POLICY_DEFINITIONS)
}
pub fn accessibility_policy_possible_values() -> Vec<PossibleValue> {
possible_values(&ACCESSIBILITY_POLICY_DEFINITIONS)
}