From a800be63f7f85600267e7b353f0ef1986204ef78 Mon Sep 17 00:00:00 2001 From: Lynnesbian Date: Thu, 23 Sep 2021 01:33:10 +1000 Subject: [PATCH] use SmartStrings in more places --- src/formats.rs | 5 +++-- src/utils.rs | 12 +++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/formats.rs b/src/formats.rs index ba40680..df9415f 100644 --- a/src/formats.rs +++ b/src/formats.rs @@ -7,12 +7,13 @@ use std::os::unix::ffi::OsStrExt; use std::path::Path; use cfg_if::cfg_if; +use itertools::{Either, Itertools}; use snailquote::escape; use crate::findings::ScanError; use crate::utils::clap_long_version; use crate::Findings; -use itertools::{Either, Itertools}; +use crate::String; /// A macro for creating an array of `Writable`s without needing to pepper your code with `into()`s. /// # Usage @@ -73,7 +74,7 @@ impl<'a> From<&'a OsStr> for Writable<'a> { fn from(p: &'a OsStr) -> Writable<'a> { Writable::Path(p.as_ref()) } } -fn generated_by() -> String { format!("Generated by fif {}", clap_long_version()) } +fn generated_by() -> String { format!("Generated by fif {}", clap_long_version()).into() } pub fn smart_write(f: &mut W, writeables: &[Writable]) -> io::Result<()> { // ehhhh diff --git a/src/utils.rs b/src/utils.rs index 2f1630c..226fd40 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,6 +1,8 @@ use cfg_if::cfg_if; use once_cell::sync::OnceCell; +use crate::String; + /// The current version of fif, as defined in Cargo.toml. pub const VERSION: Option<&'static str> = option_env!("CARGO_PKG_VERSION"); @@ -28,23 +30,23 @@ pub fn clap_version() -> &'static str { CLAP_VERSION.get_or_init(|| String::from /// Sets [`CLAP_LONG_VERSION`] to be similar to [`CLAP_VERSION`], followed by the chosen backend in parentheses (e.g. /// "v0.3.1 (XDG-Mime backend)"), then returns it as a String. pub fn clap_long_version() -> &'static str { - CLAP_LONG_VERSION.get_or_init(|| format!("v{} ({} backend)", VERSION.unwrap_or("???"), BACKEND)) + CLAP_LONG_VERSION.get_or_init(|| format!("v{} ({} backend)", VERSION.unwrap_or("???"), BACKEND).into()) } /// Returns the name of the target operating system with proper casing, like "Windows" or "macOS". #[allow(clippy::option_map_unit_fn)] pub fn os_name() -> String { - use std::env::consts::OS; - match OS { + match std::env::consts::OS { + // special cases: "ios" should not be capitalised into "Ios", for example "ios" => "iOS".into(), "macos" => "macOS".into(), "freebsd" => "FreeBSD".into(), "openbsd" => "OpenBSD".into(), "netbsd" => "NetBSD".into(), "vxworks" => "VxWorks".into(), - _ => { + os => { // generic case: return consts::OS with the first letter in uppercase ("linux" -> "Linux") - let mut os_upper = String::from(OS); + let mut os_upper = String::from(os); os_upper.get_mut(0..1).map(|first| first.make_ascii_uppercase()); os_upper }