From 538691e99961b4ed7420b959b92bc50a675e243c Mon Sep 17 00:00:00 2001 From: Hasan Ibraheem Date: Thu, 17 Oct 2019 12:07:04 -0400 Subject: [PATCH] Use String instead of NumericType for paramater in Command --- src/hyperfine/benchmark.rs | 6 +++--- src/hyperfine/parameter_range.rs | 2 +- src/hyperfine/types.rs | 14 +++++++------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/hyperfine/benchmark.rs b/src/hyperfine/benchmark.rs index 1d1f6e7..181609a 100644 --- a/src/hyperfine/benchmark.rs +++ b/src/hyperfine/benchmark.rs @@ -225,7 +225,7 @@ pub fn run_benchmark( &values[num] }; match cmd.get_parameter() { - Some((param, value)) => Command::new_parametrized(preparation_command, param, value), + Some((param, value)) => Command::new_parametrized(preparation_command, param, value.clone()), None => Command::new(preparation_command), } }); @@ -421,7 +421,7 @@ pub fn run_benchmark( .cleanup_command .as_ref() .map(|cleanup_command| match cmd.get_parameter() { - Some((param, value)) => Command::new_parametrized(cleanup_command, param, value), + Some((param, value)) => Command::new_parametrized(cleanup_command, param, value.clone()), None => Command::new(cleanup_command), }); run_cleanup_command(&options.shell, &cleanup_cmd, options.show_output)?; @@ -436,6 +436,6 @@ pub fn run_benchmark( t_min, t_max, times_real, - cmd.get_parameter().map(|p| p.1), + cmd.get_parameter().as_ref().map(|p| p.1.clone()), )) } diff --git a/src/hyperfine/parameter_range.rs b/src/hyperfine/parameter_range.rs index 4691330..c6f4144 100644 --- a/src/hyperfine/parameter_range.rs +++ b/src/hyperfine/parameter_range.rs @@ -92,7 +92,7 @@ fn build_parameterized_commands<'a, T: Numeric>( for value in param_range { for cmd in &command_strings { - commands.push(Command::new_parametrized(cmd, param_name, value.into())); + commands.push(Command::new_parametrized(cmd, param_name, value.into().to_string())); } } Ok(commands) diff --git a/src/hyperfine/types.rs b/src/hyperfine/types.rs index bd61665..70e3c38 100644 --- a/src/hyperfine/types.rs +++ b/src/hyperfine/types.rs @@ -46,7 +46,7 @@ pub struct Command<'a> { expression: &'a str, /// A possible parameter value. - parameter: Option<(&'a str, NumericType)>, + parameter: Option<(&'a str, String)>, } impl<'a> Command<'a> { @@ -60,7 +60,7 @@ impl<'a> Command<'a> { pub fn new_parametrized( expression: &'a str, parameter: &'a str, - value: NumericType, + value: String, ) -> Command<'a> { Command { expression, @@ -69,7 +69,7 @@ impl<'a> Command<'a> { } pub fn get_shell_command(&self) -> String { - match self.parameter { + match &self.parameter { Some((param_name, param_value)) => self.expression.replace( &format!("{{{param_name}}}", param_name = param_name), ¶m_value.to_string(), @@ -78,8 +78,8 @@ impl<'a> Command<'a> { } } - pub fn get_parameter(&self) -> Option<(&'a str, NumericType)> { - self.parameter + pub fn get_parameter(&self) -> &Option<(&'a str, String)> { + &self.parameter } } @@ -216,7 +216,7 @@ pub struct BenchmarkResult { /// Any parameter used #[serde(skip_serializing_if = "Option::is_none")] - pub parameter: Option, + pub parameter: Option, } impl BenchmarkResult { @@ -231,7 +231,7 @@ impl BenchmarkResult { min: Second, max: Second, times: Vec, - parameter: Option, + parameter: Option, ) -> Self { BenchmarkResult { command,