1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
/// Demodulize a `String` /// /// #Examples /// ``` /// use inflector::string::demodulize::demodulize; /// /// #[test] #[allow(non_snake_case)] /// fn demodulize_Bar_as_Bar() { /// let mock_string: String = "Bar".to_string(); /// let expected_string: String = "Bar".to_string(); /// let asserted_string: String = demodulize(mock_string); /// assert!(asserted_string == expected_string); /// } /// ``` /// ``` /// use inflector::string::demodulize::demodulize; /// /// #[test] #[allow(non_snake_case)] /// fn demodulize_namespace_Bar_as_Bar() { /// let mock_string: String = "::Bar".to_string(); /// let expected_string: String = "Bar".to_string(); /// let asserted_string: String = demodulize(mock_string); /// assert!(asserted_string == expected_string); /// } /// ``` /// ``` /// use inflector::string::demodulize::demodulize; /// /// #[test] #[allow(non_snake_case)] /// fn demodulize_Foo_namespace_Bar_as_Bar() { /// let mock_string: String = "Foo::Bar".to_string(); /// let expected_string: String = "Bar".to_string(); /// let asserted_string: String = demodulize(mock_string); /// assert!(asserted_string == expected_string); /// } /// ``` /// ``` /// use inflector::string::demodulize::demodulize; /// /// #[test] #[allow(non_snake_case)] /// fn demodulize_Test_namespace_Foo_namespace_Bar_as_Bar() { /// let mock_string: String = "Test::Foo::Bar".to_string(); /// let expected_string: String = "Bar".to_string(); /// let asserted_string: String = demodulize(mock_string); /// assert!(asserted_string == expected_string); /// } /// ``` use cases::classcase::to_class_case; pub fn demodulize<'a>(non_demodulize_string: String) -> String { if non_demodulize_string.contains("::") { let split_string: Vec<&str> = non_demodulize_string.split("::").collect(); return format!("{}", to_class_case(split_string[split_string.len() - 1].to_string())); } else { return non_demodulize_string; } }