diff options
Diffstat (limited to 'structopt/tests/special_types.rs')
-rw-r--r-- | structopt/tests/special_types.rs | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/structopt/tests/special_types.rs b/structopt/tests/special_types.rs deleted file mode 100644 index ffed5e2..0000000 --- a/structopt/tests/special_types.rs +++ /dev/null @@ -1,73 +0,0 @@ -//! Checks that types like `::std::option::Option` are not special - -use structopt::StructOpt; - -#[rustversion::since(1.37)] -#[test] -fn special_types_bool() { - mod inner { - #[allow(non_camel_case_types)] - #[derive(PartialEq, Debug)] - pub struct bool(pub String); - - impl std::str::FromStr for self::bool { - type Err = String; - - fn from_str(s: &str) -> Result<Self, Self::Err> { - Ok(self::bool(s.into())) - } - } - }; - - #[derive(StructOpt, PartialEq, Debug)] - struct Opt { - arg: inner::bool, - } - - assert_eq!( - Opt { - arg: inner::bool("success".into()) - }, - Opt::from_iter(&["test", "success"]) - ); -} - -#[test] -fn special_types_option() { - fn parser(s: &str) -> Option<String> { - Some(s.to_string()) - } - - #[derive(StructOpt, PartialEq, Debug)] - struct Opt { - #[structopt(parse(from_str = parser))] - arg: ::std::option::Option<String>, - } - - assert_eq!( - Opt { - arg: Some("success".into()) - }, - Opt::from_iter(&["test", "success"]) - ); -} - -#[test] -fn special_types_vec() { - fn parser(s: &str) -> Vec<String> { - vec![s.to_string()] - } - - #[derive(StructOpt, PartialEq, Debug)] - struct Opt { - #[structopt(parse(from_str = parser))] - arg: ::std::vec::Vec<String>, - } - - assert_eq!( - Opt { - arg: vec!["success".into()] - }, - Opt::from_iter(&["test", "success"]) - ); -} |