From 49b9037168fb5b6c8deb7ab06abbfd6f54ebc798 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Sat, 24 Jan 2026 03:10:41 +0800 Subject: Split prepare phase into prepare and collect - Prepare now handles argument-to-input conversion only - Collect handles resource gathering and data collection - Status command updated to use new two-phase structure - Command system trait modified to support separate phases --- templates/command.rs.template | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) (limited to 'templates') diff --git a/templates/command.rs.template b/templates/command.rs.template index 1c56c29..98d495d 100644 --- a/templates/command.rs.template +++ b/templates/command.rs.template @@ -14,20 +14,38 @@ pub struct JVUnknownArgument; pub struct JVUnknownInput; +pub struct JVUnknownCollect; + #[derive(Serialize)] pub struct JVUnknownOutput; -impl JVCommand - for JVUnknownCommand +impl + JVCommand< + JVUnknownArgument, // Argument + JVUnknownInput, // Input Data + JVUnknownCollect, // Collect Resources + JVUnknownOutput, // Output Data + JVStatusRenderer, // Default Renderer + > for JVUnknownCommand { async fn prepare( - _args: JVUnknownArgument, - _ctx: JVCommandContext, + _args: &JVUnknownArgument, + _ctx: &JVCommandContext, ) -> Result { todo!() } - async fn exec(_input: JVUnknownInput) -> Result { + async fn collect( + _args: &JVUnknownArgument, + _ctx: &JVCommandContext, + ) -> Result { + todo!() + } + + async fn exec( + _input: JVUnknownInput, + _collect: JVUnknownCollect, + ) -> Result { todo!() } -- cgit