From 48541b850768a2534a6a55491353eebbdf9f668f Mon Sep 17 00:00:00 2001 From: David Peter Date: Sun, 4 Sep 2022 00:02:08 +0200 Subject: [PATCH] Fix clippy suggestions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Leads to a performance improvement for `bat -A`: | Command | Mean [ms] | Min [ms] | Max [ms] | Relative | |:---|---:|---:|---:|---:| | `./bat-master --no-config -A ./bat-master` | 259.8 ± 1.1 | 258.4 | 261.7 | 1.15 ± 0.01 | | `./bat-2301 --no-config -A ./bat-master` | 225.6 ± 1.8 | 224.0 | 229.5 | 1.00 | --- src/assets/assets_metadata.rs | 2 +- src/assets/build_assets/acknowledgements.rs | 3 ++- src/bin/bat/main.rs | 9 +++++---- src/less.rs | 2 +- src/line_range.rs | 2 +- src/paging.rs | 2 +- src/preprocessor.rs | 4 +++- src/syntax_mapping.rs | 2 +- 8 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/assets/assets_metadata.rs b/src/assets/assets_metadata.rs index 5dc2dd2c..700c4c3b 100644 --- a/src/assets/assets_metadata.rs +++ b/src/assets/assets_metadata.rs @@ -7,7 +7,7 @@ use serde::{Deserialize, Serialize}; use crate::error::*; -#[derive(Debug, PartialEq, Default, Serialize, Deserialize)] +#[derive(Debug, PartialEq, Eq, Default, Serialize, Deserialize)] pub struct AssetsMetadata { bat_version: Option, creation_time: Option, diff --git a/src/assets/build_assets/acknowledgements.rs b/src/assets/build_assets/acknowledgements.rs index f5d7a384..fc915548 100644 --- a/src/assets/build_assets/acknowledgements.rs +++ b/src/assets/build_assets/acknowledgements.rs @@ -1,3 +1,4 @@ +use std::fmt::Write; use std::fs::read_to_string; use std::path::{Path, PathBuf}; @@ -124,7 +125,7 @@ fn append_to_acknowledgements( relative_path: &str, license_text: &str, ) { - acknowledgements.push_str(&format!("## {}\n\n{}", relative_path, license_text)); + write!(acknowledgements, "## {}\n\n{}", relative_path, license_text).ok(); // Make sure the last char is a newline to not mess up formatting later if acknowledgements diff --git a/src/bin/bat/main.rs b/src/bin/bat/main.rs index a6424e40..83e88fbb 100644 --- a/src/bin/bat/main.rs +++ b/src/bin/bat/main.rs @@ -8,6 +8,7 @@ mod directories; mod input; use std::collections::{HashMap, HashSet}; +use std::fmt::Write as _; use std::io; use std::io::{BufReader, Write}; use std::path::Path; @@ -125,7 +126,7 @@ pub fn get_languages(config: &Config) -> Result { if config.loop_through { for lang in languages { - result += &format!("{}:{}\n", lang.name, lang.file_extensions.join(",")); + writeln!(result, "{}:{}", lang.name, lang.file_extensions.join(",")).ok(); } } else { let longest = languages @@ -146,7 +147,7 @@ pub fn get_languages(config: &Config) -> Result { }; for lang in languages { - result += &format!("{:width$}{}", lang.name, separator, width = longest); + write!(result, "{:width$}{}", lang.name, separator, width = longest).ok(); // Number of characters on this line so far, wrap before `desired_width` let mut num_chars = 0; @@ -157,11 +158,11 @@ pub fn get_languages(config: &Config) -> Result { let new_chars = word.len() + comma_separator.len(); if num_chars + new_chars >= desired_width { num_chars = 0; - result += &format!("\n{:width$}{}", "", separator, width = longest); + write!(result, "\n{:width$}{}", "", separator, width = longest).ok(); } num_chars += new_chars; - result += &format!("{}", style.paint(&word[..])); + write!(result, "{}", style.paint(&word[..])).ok(); if extension.peek().is_some() { result += comma_separator; } diff --git a/src/less.rs b/src/less.rs index 66ec4068..df6a513d 100644 --- a/src/less.rs +++ b/src/less.rs @@ -3,7 +3,7 @@ use std::ffi::OsStr; use std::process::Command; -#[derive(Debug, PartialEq)] +#[derive(Debug, PartialEq, Eq)] pub enum LessVersion { Less(usize), BusyBox, diff --git a/src/line_range.rs b/src/line_range.rs index ccd998f6..c9094fc9 100644 --- a/src/line_range.rs +++ b/src/line_range.rs @@ -168,7 +168,7 @@ fn test_parse_minus_fail() { assert!(range.is_err()); } -#[derive(Copy, Clone, Debug, PartialEq)] +#[derive(Copy, Clone, Debug, PartialEq, Eq)] pub enum RangeCheckResult { // Within one of the given ranges InRange, diff --git a/src/paging.rs b/src/paging.rs index 77a183c2..e1db6a13 100644 --- a/src/paging.rs +++ b/src/paging.rs @@ -1,4 +1,4 @@ -#[derive(Debug, Clone, Copy, PartialEq)] +#[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum PagingMode { Always, QuitIfOneScreen, diff --git a/src/preprocessor.rs b/src/preprocessor.rs index 1fbaad19..6e775595 100644 --- a/src/preprocessor.rs +++ b/src/preprocessor.rs @@ -1,3 +1,5 @@ +use std::fmt::Write; + /// Expand tabs like an ANSI-enabled expand(1). pub fn expand_tabs(mut text: &str, width: usize, cursor: &mut usize) -> String { let mut buffer = String::with_capacity(text.len() * 2); @@ -92,7 +94,7 @@ pub fn replace_nonprintable(input: &[u8], tab_width: usize) -> String { c => output.push_str(&c.escape_unicode().collect::()), } } else { - output.push_str(&format!("\\x{:02X}", input[idx])); + write!(output, "\\x{:02X}", input[idx]).ok(); idx += 1; } } diff --git a/src/syntax_mapping.rs b/src/syntax_mapping.rs index 9c9a7028..8c8473fd 100644 --- a/src/syntax_mapping.rs +++ b/src/syntax_mapping.rs @@ -7,7 +7,7 @@ use globset::{Candidate, GlobBuilder, GlobMatcher}; pub mod ignored_suffixes; -#[derive(Debug, Clone, Copy, PartialEq)] +#[derive(Debug, Clone, Copy, PartialEq, Eq)] #[non_exhaustive] pub enum MappingTarget<'a> { /// For mapping a path to a specific syntax.