From c4b6bcb0870d17c91afa0b0f4a9d8020bbf8208a Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Mon, 6 Oct 2025 02:14:03 +0800 Subject: Rename vcs_service to action_system for better naming clarity - Create new action_system crate with action framework - Create action_system_macros crate for procedural macros - Update vcs crate dependencies to use action_system - Maintain same functionality with improved naming --- crates/system_action/src/action.rs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 crates/system_action/src/action.rs (limited to 'crates/system_action/src/action.rs') diff --git a/crates/system_action/src/action.rs b/crates/system_action/src/action.rs new file mode 100644 index 0000000..14f1148 --- /dev/null +++ b/crates/system_action/src/action.rs @@ -0,0 +1,38 @@ +use tcp_connection::{error::TcpTargetError, instance::ConnectionInstance}; + +pub trait Action { + fn action_name() -> &'static str; + + fn is_remote_action() -> bool; + + fn process( + context: ActionContext, + args: Args, + ) -> impl std::future::Future> + Send; +} + +pub struct ActionContext { + // Whether the action is executed locally or remotely + local: bool, + + /// The connection instance in the current context, + /// used to interact with the machine on the other end + instance: ConnectionInstance, +} + +impl ActionContext { + /// Whether the action is executed locally + pub fn is_local(&self) -> bool { + self.local + } + + /// Whether the action is executed remotely + pub fn is_remote(&self) -> bool { + !self.local + } + + /// Get the connection instance in the current context + pub fn instance(&self) -> &ConnectionInstance { + &self.instance + } +} -- cgit