#![allow(dead_code)] use derive_builder::Builder; use std::collections::HashMap; use std::io::{stdout, Write}; pub enum ValueRequirement { None, Required(&'static str), Optional(&'static str), } #[derive(Builder)] #[builder(pattern = "owned")] pub struct Option { #[builder(setter(into), default = "'\\0'")] short: char, long: &'static str, #[builder(setter(into), default = "\"\"")] description: &'static str, #[builder(setter(name = "value"), default = "ValueRequirement::None")] value_req: ValueRequirement, #[builder(setter(skip))] is_set: bool, #[builder(setter(skip))] value: std::option::Option, } pub struct Options { options: Vec