summaryrefslogtreecommitdiff
path: root/crates/vcs_actions/src/actions.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2025-11-05 16:45:30 +0800
committer魏曹先生 <1992414357@qq.com>2025-11-05 16:46:22 +0800
commit8b3b92b405ebc96416ec300ad3f6260bd8354864 (patch)
treecf7a404b3ae78a8a7675eb2e587a07b383698198 /crates/vcs_actions/src/actions.rs
parent7627c0e4911cc354e3dd7a3e445ee36252b1e9a6 (diff)
Add sheet restoration and drop functionality
- Add write_and_return macro for common result handling pattern - Extend make_sheet_action to restore sheets with no holder - Implement drop_sheet_action for releasing sheet ownership - Register new drop_sheet_action in client and server registries
Diffstat (limited to 'crates/vcs_actions/src/actions.rs')
-rw-r--r--crates/vcs_actions/src/actions.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/crates/vcs_actions/src/actions.rs b/crates/vcs_actions/src/actions.rs
index 795d2b0..51186fb 100644
--- a/crates/vcs_actions/src/actions.rs
+++ b/crates/vcs_actions/src/actions.rs
@@ -116,3 +116,12 @@ pub async fn auth_member(
Err(TcpTargetError::NoResult("Auth failed.".to_string()))
}
+
+/// The macro to write and return a result.
+#[macro_export]
+macro_rules! write_and_return {
+ ($instance:expr, $result:expr) => {{
+ $instance.lock().await.write($result).await?;
+ return Ok($result);
+ }};
+}