From bf30751bd281f1a13c0ee9228c3676d90b1bcfb4 Mon Sep 17 00:00:00 2001 From: Fabio Montefuscolo Date: Thu, 3 Apr 2025 00:08:23 +0200 Subject: [PATCH] reorganize things --- src/lib.rs | 2 ++ src/main.rs | 20 +------------------- src/slugify.rs | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+), 19 deletions(-) create mode 100644 src/lib.rs create mode 100644 src/slugify.rs diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..93a1cbf --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,2 @@ +pub mod slugify; +pub use crate::slugify::slugify; diff --git a/src/main.rs b/src/main.rs index 440667a..9376c65 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,29 +1,11 @@ use clap::Parser; +use slugify::slugify; #[derive(Parser)] struct Cli { strings: Vec, } -fn slugify(input: String) -> String { - let mut result = input.to_lowercase(); - - result = result.replace(' ', "-"); - result = result - .chars() - .filter(|&c| c.is_alphanumeric() || c == '_' || c == '-') - .collect(); - - while result.contains("--") { - result = result.replace("--", "-"); - } - - result = result - .trim_matches(|c| c == ' ' || c == '-' || c == '_') - .to_string(); - result -} - fn main() { let args = Cli::parse(); let combined = args.strings.join(" "); diff --git a/src/slugify.rs b/src/slugify.rs new file mode 100644 index 0000000..f5eb489 --- /dev/null +++ b/src/slugify.rs @@ -0,0 +1,18 @@ +pub fn slugify(input: String) -> String { + let mut result = input.to_lowercase(); + + result = result.replace(' ', "-"); + result = result + .chars() + .filter(|&c| c.is_alphanumeric() || c == '_' || c == '-') + .collect(); + + while result.contains("--") { + result = result.replace("--", "-"); + } + + result = result + .trim_matches(|c| c == ' ' || c == '-' || c == '_') + .to_string(); + result +}