Skip to content

Commit cedfad4

Browse files
committed
refactor(embedded): Pull out sanitization logic
1 parent f8fef7a commit cedfad4

File tree

1 file changed

+24
-19
lines changed

1 file changed

+24
-19
lines changed

src/cargo/util/toml/embedded.rs

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -183,25 +183,7 @@ impl RawScript {
183183
.file_stem()
184184
.ok_or_else(|| anyhow::format_err!("no file name"))?
185185
.to_string_lossy();
186-
let mut slug = String::new();
187-
for (i, c) in name.chars().enumerate() {
188-
match (i, c) {
189-
(0, '0'..='9') => {
190-
slug.push('_');
191-
slug.push(c);
192-
}
193-
(_, '0'..='9') | (_, 'a'..='z') | (_, '_') | (_, '-') => {
194-
slug.push(c);
195-
}
196-
(_, 'A'..='Z') => {
197-
// Convert uppercase characters to lowercase to avoid `non_snake_case` warnings.
198-
slug.push(c.to_ascii_lowercase());
199-
}
200-
(_, _) => {
201-
slug.push('_');
202-
}
203-
}
204-
}
186+
let slug = sanitize_package_name(&name);
205187
Ok(slug)
206188
}
207189

@@ -210,6 +192,29 @@ impl RawScript {
210192
}
211193
}
212194

195+
fn sanitize_package_name(name: &str) -> String {
196+
let mut slug = String::new();
197+
for (i, c) in name.chars().enumerate() {
198+
match (i, c) {
199+
(0, '0'..='9') => {
200+
slug.push('_');
201+
slug.push(c);
202+
}
203+
(_, '0'..='9') | (_, 'a'..='z') | (_, '_') | (_, '-') => {
204+
slug.push(c);
205+
}
206+
(_, 'A'..='Z') => {
207+
// Convert uppercase characters to lowercase to avoid `non_snake_case` warnings.
208+
slug.push(c.to_ascii_lowercase());
209+
}
210+
(_, _) => {
211+
slug.push('_');
212+
}
213+
}
214+
}
215+
slug
216+
}
217+
213218
fn default_target_dir() -> CargoResult<std::path::PathBuf> {
214219
let mut cargo_home = home::cargo_home()?;
215220
cargo_home.push("eval");

0 commit comments

Comments
 (0)