From cd8b4a5d618c4cfbbade447a8dafd3f10c4d158d Mon Sep 17 00:00:00 2001 From: Joel Natividad <1980690+jqnatividad@users.noreply.github.com> Date: Wed, 6 Dec 2023 02:30:40 -0500 Subject: [PATCH] `apply`, `applydp`, `explode`, `geocode` & `pseudo`: use replace_column_value in util.rs and remove redundant code in each command module --- src/cmd/apply.rs | 17 +++-------------- src/cmd/applydp.rs | 17 +++-------------- src/cmd/explode.rs | 16 +++------------- src/cmd/geocode.rs | 17 +++-------------- src/cmd/pseudo.rs | 16 +++------------- 5 files changed, 15 insertions(+), 68 deletions(-) diff --git a/src/cmd/apply.rs b/src/cmd/apply.rs index b78f8323e..9c9031071 100644 --- a/src/cmd/apply.rs +++ b/src/cmd/apply.rs @@ -382,7 +382,9 @@ use crate::{ config::{Config, Delimiter}, regex_oncelock, select::SelectColumns, - util, CliResult, + util, + util::replace_column_value, + CliResult, }; #[derive(Clone, EnumString)] @@ -483,19 +485,6 @@ enum ApplySubCmd { CalcConv, } -#[inline] -fn replace_column_value( - record: &csv::StringRecord, - column_index: usize, - new_value: &str, -) -> csv::StringRecord { - record - .into_iter() - .enumerate() - .map(|(i, v)| if i == column_index { new_value } else { v }) - .collect() -} - pub fn run(argv: &[&str]) -> CliResult<()> { let args: Args = util::get_args(USAGE, argv)?; let rconfig = Config::new(&args.arg_input) diff --git a/src/cmd/applydp.rs b/src/cmd/applydp.rs index 107cba8f1..90356b873 100644 --- a/src/cmd/applydp.rs +++ b/src/cmd/applydp.rs @@ -259,7 +259,9 @@ use crate::{ config::{Config, Delimiter}, regex_oncelock, select::SelectColumns, - util, CliResult, + util, + util::replace_column_value, + CliResult, }; #[derive(Clone, EnumString)] @@ -316,19 +318,6 @@ static ROUND_PLACES: OnceLock = OnceLock::new(); // default number of decimal places to round to const DEFAULT_ROUND_PLACES: u32 = 3; -#[inline] -fn replace_column_value( - record: &csv::StringRecord, - column_index: usize, - new_value: &str, -) -> csv::StringRecord { - record - .into_iter() - .enumerate() - .map(|(i, v)| if i == column_index { new_value } else { v }) - .collect() -} - pub fn run(argv: &[&str]) -> CliResult<()> { let args: Args = util::get_args(USAGE, argv)?; let rconfig = Config::new(&args.arg_input) diff --git a/src/cmd/explode.rs b/src/cmd/explode.rs index 0ece9f370..566fe6929 100644 --- a/src/cmd/explode.rs +++ b/src/cmd/explode.rs @@ -36,7 +36,9 @@ use serde::Deserialize; use crate::{ config::{Config, Delimiter}, select::SelectColumns, - util, CliResult, + util, + util::replace_column_value, + CliResult, }; #[derive(Deserialize)] struct Args { @@ -49,18 +51,6 @@ struct Args { flag_delimiter: Option, } -pub fn replace_column_value( - record: &csv::StringRecord, - column_index: usize, - new_value: &str, -) -> csv::StringRecord { - record - .into_iter() - .enumerate() - .map(|(i, v)| if i == column_index { new_value } else { v }) - .collect() -} - pub fn run(argv: &[&str]) -> CliResult<()> { let args: Args = util::get_args(USAGE, argv)?; let rconfig = Config::new(&args.arg_input) diff --git a/src/cmd/geocode.rs b/src/cmd/geocode.rs index 270e83460..31a5f3be0 100644 --- a/src/cmd/geocode.rs +++ b/src/cmd/geocode.rs @@ -393,7 +393,9 @@ use crate::{ config::{Config, Delimiter}, regex_oncelock, select::SelectColumns, - util, CliResult, + util, + util::replace_column_value, + CliResult, }; #[derive(Deserialize)] @@ -594,19 +596,6 @@ impl From for CliError { } } -#[inline] -fn replace_column_value( - record: &csv::StringRecord, - column_index: usize, - new_value: &str, -) -> csv::StringRecord { - record - .into_iter() - .enumerate() - .map(|(i, v)| if i == column_index { new_value } else { v }) - .collect() -} - pub fn run(argv: &[&str]) -> CliResult<()> { let mut args: Args = util::get_args(USAGE, argv)?; diff --git a/src/cmd/pseudo.rs b/src/cmd/pseudo.rs index bea9f838e..e84c0f764 100644 --- a/src/cmd/pseudo.rs +++ b/src/cmd/pseudo.rs @@ -23,7 +23,9 @@ use serde::Deserialize; use crate::{ config::{Config, Delimiter}, select::SelectColumns, - util, CliResult, + util, + util::replace_column_value, + CliResult, }; #[derive(Deserialize)] @@ -35,18 +37,6 @@ struct Args { flag_delimiter: Option, } -pub fn replace_column_value( - record: &csv::StringRecord, - column_index: usize, - new_value: &str, -) -> csv::StringRecord { - record - .into_iter() - .enumerate() - .map(|(i, v)| if i == column_index { new_value } else { v }) - .collect() -} - type Values = AHashMap; pub fn run(argv: &[&str]) -> CliResult<()> {