diff options
| author | Weicao-CatilGrass <1992414357@qq.com> | 2026-04-14 03:03:21 +0800 |
|---|---|---|
| committer | Weicao-CatilGrass <1992414357@qq.com> | 2026-04-14 03:03:21 +0800 |
| commit | 33469c75614c444f512fd51dbc78a31a9a4bec82 (patch) | |
| tree | d8ba8fbc76a8cbb2bdee60ae4569b85dbd1e3402 /mingling_cli/src/dispatcher_mgr.rs | |
| parent | 56c24db7bcd92e2eb9a779bd141fcc73a7c433c0 (diff) | |
Rename add_dispatcher module to dispatcher_mgr and add remove command
Diffstat (limited to 'mingling_cli/src/dispatcher_mgr.rs')
| -rw-r--r-- | mingling_cli/src/dispatcher_mgr.rs | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/mingling_cli/src/dispatcher_mgr.rs b/mingling_cli/src/dispatcher_mgr.rs new file mode 100644 index 0000000..483a48c --- /dev/null +++ b/mingling_cli/src/dispatcher_mgr.rs @@ -0,0 +1,47 @@ +use mingling::{ + AnyOutput, + macros::{chain, dispatcher, pack, r_println, renderer}, + marker::NextProcess, + parser::Picker, +}; + +use crate::ThisProgram; + +dispatcher!("add.dispatcher", AddDispatcherCommand => AddDispatcherEntry); +dispatcher!("remove.dispatcher", RemoveDispatcherCommand => RemoveDispatcherEntry); + +#[chain] +pub async fn parse_add_dispatcher(args: AddDispatcherEntry) -> NextProcess { + let picker: Picker<ThisProgram> = Picker::new(args.inner); + let dispatcher_name = picker.pick::<String>(()).unpack_directly().0; + let input = AddDispatcherInput::new(dispatcher_name); + input.into() +} + +#[chain] +pub async fn parse_remove_dispatcher(args: RemoveDispatcherEntry) -> NextProcess { + let picker: Picker<ThisProgram> = Picker::new(args.inner); + let dispatcher_name = picker.pick::<String>(()).unpack_directly().0; + let input = AddDispatcherInput::new(dispatcher_name); + input.into() +} + +pack!(AddDispatcherInput = String); + +#[chain] +pub async fn exec_add_dispatcher(_input: AddDispatcherInput) -> NextProcess { + AnyOutput::new(AddDispatcherSuccess::new(())).route_chain() +} + +pack!(AddDispatcherSuccess = ()); +pack!(AddDispatcherFailed = String); + +#[renderer] +pub fn render_add_dispatcher_success(_prev: AddDispatcherSuccess) { + r_println!("Dispatcher added successfully"); +} + +#[renderer] +pub fn render_add_dispatcher_failed(prev: AddDispatcherFailed) { + r_println!("Error: {}", prev.inner); +} |
