rustbasic_core/cli/
utils.rs1pub fn to_snake_case(s: &str) -> String {
2 let mut snake = String::new();
3 for (i, ch) in s.chars().enumerate() {
4 if ch.is_uppercase() && i != 0 {
5 snake.push('_');
6 }
7 snake.push(ch.to_ascii_lowercase());
8 }
9 snake
10}
11pub fn to_pascal_case(s: &str) -> String {
12 let mut pascal = String::new();
13 let mut capitalize_next = true;
14 for ch in s.chars() {
15 if ch == '_' || ch == '-' {
16 capitalize_next = true;
17 } else if capitalize_next {
18 pascal.push(ch.to_ascii_uppercase());
19 capitalize_next = false;
20 } else {
21 pascal.push(ch);
22 }
23 }
24 pascal
25}
26
27pub fn open_browser(url: &str) {
28 let _ = match std::env::consts::OS {
29 "macos" => std::process::Command::new("open").arg(url).spawn(),
30 "windows" => std::process::Command::new("cmd").args(["/C", "start", url]).spawn(),
31 _ => std::process::Command::new("xdg-open").arg(url).spawn(),
32 };
33}