summaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2025-11-06 22:10:56 +0800
committer魏曹先生 <1992414357@qq.com>2025-11-06 22:10:56 +0800
commit637d49109a1b050bbfb4804cf33c5127e8ba5386 (patch)
tree651668fd98164b1e139bf2321be1ff32593e55b4 /crates
parenta5e0dcf25dd45685057e0671d0f5dd8d75884266 (diff)
feat: Add virtual file actions foundation (WIP)
- Create virtual file actions module - Add basic structure for virtual file operations - NOTE: Still under development
Diffstat (limited to 'crates')
-rw-r--r--crates/vcs_actions/src/actions/virtual_file_actions.rs32
1 files changed, 32 insertions, 0 deletions
diff --git a/crates/vcs_actions/src/actions/virtual_file_actions.rs b/crates/vcs_actions/src/actions/virtual_file_actions.rs
index e69de29..3e801b0 100644
--- a/crates/vcs_actions/src/actions/virtual_file_actions.rs
+++ b/crates/vcs_actions/src/actions/virtual_file_actions.rs
@@ -0,0 +1,32 @@
+use std::path::PathBuf;
+
+use action_system::{action::ActionContext, macros::action_gen};
+use serde::{Deserialize, Serialize};
+use tcp_connection::error::TcpTargetError;
+
+use crate::actions::{auth_member, check_connection_instance};
+
+#[derive(Serialize, Deserialize)]
+pub enum TrackFileActionResult {
+ Success,
+
+ // Fail
+ AuthorizeFailed(String),
+}
+
+#[action_gen]
+pub async fn track_file_action(
+ ctx: ActionContext,
+ relative_pathes: Vec<PathBuf>,
+) -> Result<TrackFileActionResult, TcpTargetError> {
+ let instance = check_connection_instance(&ctx)?;
+
+ // Auth Member
+ if let Err(e) = auth_member(&ctx, instance).await {
+ return Ok(TrackFileActionResult::AuthorizeFailed(e.to_string()));
+ };
+
+ if ctx.is_proc_on_local() {}
+
+ Err(TcpTargetError::NoResult("No result.".to_string()))
+}