From 83e02d6fb5b5b960be47e58ca681dd676e0dcd06 Mon Sep 17 00:00:00 2001 From: ErrorNoInternet Date: Thu, 15 Aug 2024 17:15:21 +0800 Subject: [PATCH] perf: simplify first letter capitalization --- src/desktop.rs | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/desktop.rs b/src/desktop.rs index bf0da35..f35cd2a 100644 --- a/src/desktop.rs +++ b/src/desktop.rs @@ -1,21 +1,13 @@ pub fn get_desktop_info() -> String { - fn capitalize_first_letter(s: &str) -> String { - if s.is_empty() { - return String::new(); - } - - let mut chars = s.chars(); - let first_char = chars.next().unwrap().to_uppercase().to_string(); - let rest: String = chars.collect(); - first_char + &rest - } - // Retrieve the environment variables and handle Result types let desktop_env = std::env::var("XDG_CURRENT_DESKTOP"); let display_backend_result = std::env::var("XDG_SESSION_TYPE"); // Capitalize the first letter of the display backend value - let display_backend = capitalize_first_letter(display_backend_result.as_deref().unwrap_or("")); + let mut display_backend = display_backend_result.unwrap_or_default(); + if let Some(c) = display_backend.as_mut_str().get_mut(0..1) { + c.make_ascii_uppercase(); + } // Trim "none+" from the start of desktop_env if present // Use "Unknown" if desktop_env is empty or has an error @@ -26,10 +18,11 @@ pub fn get_desktop_info() -> String { // Handle the case where display_backend might be empty after capitalization let display_backend = if display_backend.is_empty() { - "Unknown".to_string() + "Unknown" } else { - display_backend - }; + &display_backend + } + .to_string(); format!("{desktop_env} ({display_backend})") }