aboutsummaryrefslogtreecommitdiff
path: root/mingling_cli/src/config/cmd_cfg.rs
diff options
context:
space:
mode:
Diffstat (limited to 'mingling_cli/src/config/cmd_cfg.rs')
-rw-r--r--mingling_cli/src/config/cmd_cfg.rs37
1 files changed, 21 insertions, 16 deletions
diff --git a/mingling_cli/src/config/cmd_cfg.rs b/mingling_cli/src/config/cmd_cfg.rs
index c10195e..cde7772 100644
--- a/mingling_cli/src/config/cmd_cfg.rs
+++ b/mingling_cli/src/config/cmd_cfg.rs
@@ -1,8 +1,6 @@
use mingling::{
- LazyRes, Routable, ShellContext, Suggest,
- macros::{
- arg, buffer, chain, command, completion, metadata, pack, r_println, renderer, suggest,
- },
+ Grouped, LazyRes, Routable, ShellContext, Suggest, Wrap,
+ macros::{arg, buffer, chain, command, completion, metadata, r_println, renderer, suggest},
metadata::Description,
picker::{EntryPicker, PickerArg, value::Flag},
};
@@ -11,10 +9,17 @@ use crate::{Entry, Next, config::ResMlingConfig};
const FLAG_PAIR: PickerArg<Flag> = arg![pair: Flag];
-pack!(StateConfigEdit = (String, String));
-pack!(ResultConfigKeyValuePair = String);
-pack!(ResultConfigValue = String);
-pack!(ResultConfig = ());
+#[derive(Grouped, Wrap)]
+pub struct StateConfigEdit((String, String));
+
+#[derive(Grouped, Wrap)]
+pub struct ResultConfigKeyValuePair(String);
+
+#[derive(Grouped, Wrap)]
+pub struct ResultConfigValue(String);
+
+#[derive(Grouped)]
+pub struct ResultConfig;
#[command]
pub fn cfg(args: Entry) -> Next {
@@ -27,19 +32,19 @@ pub fn cfg(args: Entry) -> Next {
match (key, value) {
(Some(k), Some(v)) => {
// Edit
- StateConfigEdit::new((k, v)).into()
+ StateConfigEdit((k, v)).into()
}
(Some(k), None) => {
// Display
if *show_pair {
- ResultConfigKeyValuePair::new(k).to_render()
+ ResultConfigKeyValuePair(k).to_render()
} else {
- ResultConfigValue::new(k).to_render()
+ ResultConfigValue(k).to_render()
}
}
(None, None) => {
// List
- ResultConfig::new(()).to_render()
+ ResultConfig.to_render()
}
_ => {
unreachable!("This path is unreachable given the positional parsing done by arg-picker")
@@ -50,13 +55,13 @@ pub fn cfg(args: Entry) -> Next {
#[chain]
pub fn handle_state_config_edit(kv: StateConfigEdit, config: &mut LazyRes<ResMlingConfig>) {
let config = config.get_mut();
- config.edit(&kv.0, &kv.1);
+ config.edit(&kv.0.0, &kv.0.1);
}
#[renderer(buffer)]
pub fn render_config_kvp(r: ResultConfigKeyValuePair, config: &mut LazyRes<ResMlingConfig>) {
let config = config.get_ref();
- let key = r.inner;
+ let key = r.0;
let value = config.get(&key);
r_println!(
"\"{}\" = \"{}\"",
@@ -68,7 +73,7 @@ pub fn render_config_kvp(r: ResultConfigKeyValuePair, config: &mut LazyRes<ResMl
#[renderer(buffer)]
pub fn render_config_value(r: ResultConfigValue, config: &mut LazyRes<ResMlingConfig>) {
let config = config.get_ref();
- let key = r.inner;
+ let key = r.0;
let value = config.get(&key);
r_println!("{}", value)
}
@@ -104,7 +109,7 @@ pub fn escape_config_value(input: &str) -> String {
}
#[completion(EntryCfg)]
-pub fn complete_config(_ctx: &ShellContext, config: &mut LazyRes<ResMlingConfig>) -> Suggest {
+pub fn complete_config(_ctx: ShellContext, config: &mut LazyRes<ResMlingConfig>) -> Suggest {
let config = config.get_ref();
let keys = config.get_hash_map().keys().cloned().collect::<Vec<_>>();
Suggest::from(keys).combine(suggest! {