| #![warn( |
| clippy::default_trait_access, |
| clippy::dbg_macro, |
| clippy::print_stdout, |
| clippy::unimplemented, |
| clippy::use_self, |
| missing_copy_implementations, |
| missing_docs, |
| non_snake_case, |
| non_upper_case_globals, |
| rust_2018_idioms, |
| unreachable_pub |
| )] |
| |
| use enum_as_inner::EnumAsInner; |
| |
| pub mod name_collisions { |
| #![allow(dead_code, missing_copy_implementations, missing_docs)] |
| pub struct Option; |
| pub struct Some; |
| pub struct None; |
| pub struct Result; |
| pub struct Ok; |
| pub struct Err; |
| } |
| #[allow(unused_imports)] |
| use name_collisions::*; |
| |
| #[derive(Debug, EnumAsInner)] |
| #[allow(non_camel_case_types)] |
| #[allow(clippy::upper_case_acronyms)] |
| enum MixedCaseVariants { |
| XMLIsNotCool, |
| Rust_IsCoolThough(u32), |
| YMCA { named: i16 }, |
| } |
| |
| #[test] |
| fn test_xml_unit() { |
| let mixed = MixedCaseVariants::XMLIsNotCool; |
| |
| assert!(mixed.is_xml_is_not_cool()); |
| assert!(mixed.as_rust_is_cool_though().is_none()); |
| assert!(mixed.as_ymca().is_none()); |
| } |
| |
| #[test] |
| fn test_rust_unnamed() { |
| let mixed = MixedCaseVariants::Rust_IsCoolThough(42); |
| |
| assert!(!mixed.is_xml_is_not_cool()); |
| assert!(mixed.as_rust_is_cool_though().is_some()); |
| assert!(mixed.as_ymca().is_none()); |
| |
| assert_eq!(*mixed.as_rust_is_cool_though().unwrap(), 42); |
| assert_eq!(mixed.into_rust_is_cool_though().unwrap(), 42); |
| } |
| |
| #[test] |
| fn test_ymca_named() { |
| let mixed = MixedCaseVariants::YMCA { named: -32_768 }; |
| |
| assert!(!mixed.is_xml_is_not_cool()); |
| assert!(mixed.as_rust_is_cool_though().is_none()); |
| assert!(mixed.as_ymca().is_some()); |
| |
| assert_eq!(*mixed.as_ymca().unwrap(), (-32_768)); |
| assert_eq!(mixed.into_ymca().unwrap(), (-32_768)); |
| } |