summaryrefslogtreecommitdiff
path: root/crates/utils/string_proc/src/lib.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2025-09-20 16:29:33 +0800
committer魏曹先生 <1992414357@qq.com>2025-09-20 16:29:33 +0800
commit1c7db5aaef2a91b3f87c999d4a21794b19d49ab6 (patch)
treec524d778bba973596ea1a695c416d4cff2a335c4 /crates/utils/string_proc/src/lib.rs
parentd00835377141b1e6089a7222a8ecc6af2a3613de (diff)
Add string_proc util crates
Diffstat (limited to 'crates/utils/string_proc/src/lib.rs')
-rw-r--r--crates/utils/string_proc/src/lib.rs48
1 files changed, 48 insertions, 0 deletions
diff --git a/crates/utils/string_proc/src/lib.rs b/crates/utils/string_proc/src/lib.rs
new file mode 100644
index 0000000..1f24028
--- /dev/null
+++ b/crates/utils/string_proc/src/lib.rs
@@ -0,0 +1,48 @@
+pub mod macros;
+pub mod string_processer;
+
+#[cfg(test)]
+mod tests {
+ use crate::string_processer::StringProcesser;
+
+ #[test]
+ fn test_processer() {
+ let test_cases = vec![
+ ("brew_coffee", "brewCoffee"),
+ ("brew, coffee", "brewCoffee"),
+ ("brew-coffee", "brewCoffee"),
+ ("Brew.Coffee", "brewCoffee"),
+ ("bRewCofFee", "bRewCofFee"),
+ ("brewCoffee", "brewCoffee"),
+ ("b&rewCoffee", "brewCoffee"),
+ ("BrewCoffee", "brewCoffee"),
+ ("brew.coffee", "brewCoffee"),
+ ("Brew_Coffee", "brewCoffee"),
+ ("BREW COFFEE", "brewCoffee"),
+ ];
+
+ for (input, expected) in test_cases {
+ let processor = StringProcesser::from(input);
+ assert_eq!(
+ processor.to_camel_case(),
+ expected,
+ "Failed for input: '{}'",
+ input
+ );
+ }
+ }
+
+ #[test]
+ fn test_conversions() {
+ let processor = StringProcesser::from("brewCoffee");
+
+ assert_eq!(processor.to_upper_case(), "BREW COFFEE");
+ assert_eq!(processor.to_lower_case(), "brew coffee");
+ assert_eq!(processor.to_title_case(), "Brew Coffee");
+ assert_eq!(processor.to_dot_case(), "brew.coffee");
+ assert_eq!(processor.to_snake_case(), "brew_coffee");
+ assert_eq!(processor.to_kebab_case(), "brew-coffee");
+ assert_eq!(processor.to_pascal_case(), "BrewCoffee");
+ assert_eq!(processor.to_camel_case(), "brewCoffee");
+ }
+}