// Copyright 2018 David Roundy // // Licensed under the Apache License, Version 2.0 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. use auto_args::AutoArgs; #[derive(Debug, AutoArgs, PartialEq, Eq)] enum Params { First { name: Option }, Second { values: Vec }, } #[test] fn craziness() { println!("help: {}", Params::help()); assert!(!Option::::REQUIRES_INPUT); assert!(Params::help().contains("--first-name ")); assert!(Params::help().contains("--first ")); assert_eq!( Ok(Params::First { name: None }), Params::from_iter(&["", "--first"]) ); assert_eq!( Ok(Params::Second { values: Vec::new() }), Params::from_iter(&["", "--second"]) ); assert_eq!( Ok(Params::Second { values: vec![1] }), Params::from_iter(&["", "--second", "--second-values", "1"]) ); assert!(Params::from_iter(&["", "--second-values"]).is_err()); }