mirror of
https://github.com/sharkdp/hyperfine.git
synced 2026-11-01 08:50:19 +00:00
1 parent
4b9cd06d86
commit
a8752769ab
11 files changed
+85
-10
No files matched your search
+25
-3
@@ -2,6 +2,8 @@ use std::collections::BTreeMap;
|
||||
use std::fmt;
|
||||
use std::str::FromStr;
|
||||
|
||||
use crate::parameter::tokenize::tokenize;
|
||||
use crate::parameter::ParameterValue;
|
||||
use crate::{
|
||||
error::{OptionsError, ParameterScanError},
|
||||
parameter::{
|
||||
@@ -12,9 +14,6 @@ use crate::{
|
||||
|
||||
use clap::{parser::ValuesRef, ArgMatches};
|
||||
|
||||
use crate::parameter::tokenize::tokenize;
|
||||
use crate::parameter::ParameterValue;
|
||||
|
||||
use anyhow::{bail, Context, Result};
|
||||
use rust_decimal::Decimal;
|
||||
|
||||
@@ -59,6 +58,23 @@ impl<'a> Command<'a> {
|
||||
)
|
||||
}
|
||||
|
||||
pub fn get_name_with_unused_parameters(&self) -> String {
|
||||
let parameters = self
|
||||
.get_unused_parameters()
|
||||
.map(|(parameter, value)| {
|
||||
format!("{} = {}, ", parameter.to_string(), value.to_string())
|
||||
})
|
||||
.collect::<String>();
|
||||
let parameters = parameters.trim_end_matches(", ");
|
||||
let parameters = if parameters.is_empty() {
|
||||
"".into()
|
||||
} else {
|
||||
format!(" ({})", parameters)
|
||||
};
|
||||
|
||||
format!("{}{}", self.get_name(), parameters)
|
||||
}
|
||||
|
||||
pub fn get_command_line(&self) -> String {
|
||||
self.replace_parameters_in(self.expression)
|
||||
}
|
||||
@@ -82,6 +98,12 @@ impl<'a> Command<'a> {
|
||||
&self.parameters
|
||||
}
|
||||
|
||||
pub fn get_unused_parameters(&self) -> impl Iterator<Item = &(&'a str, ParameterValue)> {
|
||||
self.parameters
|
||||
.iter()
|
||||
.filter(move |(parameter, _)| !self.expression.contains(&format!("{{{}}}", parameter)))
|
||||
}
|
||||
|
||||
fn replace_parameters_in(&self, original: &str) -> String {
|
||||
let mut result = String::new();
|
||||
let mut replacements = BTreeMap::<String, String>::new();
|
||||
|
||||
Reference in new issue
Block a user