From 9f8307ad9b0f1ce8301698277d2b8ab169ea5f7f Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Mon, 6 Apr 2026 15:57:29 +0800 Subject: Add CLI program for managing dispatchers --- mingling_cli/src/add_dispatcher.rs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 mingling_cli/src/add_dispatcher.rs (limited to 'mingling_cli/src/add_dispatcher.rs') diff --git a/mingling_cli/src/add_dispatcher.rs b/mingling_cli/src/add_dispatcher.rs new file mode 100644 index 0000000..c5eaec4 --- /dev/null +++ b/mingling_cli/src/add_dispatcher.rs @@ -0,0 +1,38 @@ +use mingling::{ + AnyOutput, + macros::{chain, dispatcher, pack, r_println, renderer}, + marker::NextProcess, + parser::Picker, +}; + +use crate::MinglingCLI; + +dispatcher!(MinglingCLI, "add.dispatcher", AddDispatcherCommand => AddDispatcherEntry); + +#[chain(MinglingCLI)] +pub async fn parse_add_dispatcher(args: AddDispatcherEntry) -> NextProcess { + let picker: Picker = Picker::new(args.inner); + let dispatcher_name = picker.pick::(()).unpack_directly().0; + let input = AddDispatcherInput::new(dispatcher_name); + input.into() +} + +pack!(MinglingCLI, AddDispatcherInput = String); + +#[chain(MinglingCLI)] +pub async fn exec_add_dispatcher(_input: AddDispatcherInput) -> NextProcess { + AnyOutput::new(AddDispatcherSuccess::new(())).route_chain() +} + +pack!(MinglingCLI, AddDispatcherSuccess = ()); +pack!(MinglingCLI, AddDispatcherFailed = String); + +#[renderer(MinglingCLI)] +pub fn render_add_dispatcher_success(_prev: AddDispatcherSuccess) { + r_println!("Dispatcher added successfully"); +} + +#[renderer(MinglingCLI)] +pub fn render_add_dispatcher_failed(prev: AddDispatcherFailed) { + r_println!("Error: {}", prev.inner); +} -- cgit