From 14112c10a45a07bc3e70bf531df73ff33b92ab36 Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Wed, 4 Feb 2026 15:45:48 +0000 Subject: [PATCH] Initial upload: GitPulse - Developer Productivity Analyzer CLI tool --- src/utils/mod.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/utils/mod.rs diff --git a/src/utils/mod.rs b/src/utils/mod.rs new file mode 100644 index 0000000..003a042 --- /dev/null +++ b/src/utils/mod.rs @@ -0,0 +1,32 @@ +pub mod author; +pub mod formatting; + +use std::collections::HashSet; + +pub fn normalize_email(email: &str) -> String { + let email = email.to_lowercase(); + email.trim().to_string() +} + +pub fn normalize_name(name: &str) -> String { + let name = name.trim(); + let mut result = String::new(); + let mut capitalize = true; + for c in name.chars() { + if c.is_whitespace() { + capitalize = true; + result.push(c); + } else if capitalize { + result.push(c.to_ascii_uppercase()); + capitalize = false; + } else { + result.push(c); + } + } + result +} + +pub fn get_unique_items(items: &[T]) -> Vec<&T> { + let seen: HashSet<&T> = items.iter().collect(); + seen.into_iter().collect() +}