Skip to main content

wowlab_common/
casing.rs

1use heck::ToLowerCamelCase;
2
3/// Convert a `snake_case` identifier to `camelCase`.
4#[must_use]
5pub fn snake_to_camel(snake: &str) -> String {
6    snake.to_lower_camel_case()
7}
8
9#[cfg(test)]
10mod tests {
11    use googletest::prelude::*;
12
13    use super::snake_to_camel;
14
15    #[gtest]
16    fn converts_resolver_method_names() -> Result<()> {
17        verify_that!(snake_to_camel("get_spell"), eq("getSpell"))?;
18        verify_that!(
19            snake_to_camel("get_item_damage_scaling"),
20            eq("getItemDamageScaling")
21        )?;
22        verify_that!(snake_to_camel("get_expected_stats"), eq("getExpectedStats"))?;
23
24        verify_that!(snake_to_camel("get_power_types"), eq("getPowerTypes"))
25    }
26
27    #[gtest]
28    fn single_word_is_unchanged() -> Result<()> {
29        verify_that!(snake_to_camel("lvl"), eq("lvl"))
30    }
31}