summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crates/system_action/src/action.rs14
-rw-r--r--crates/vcs_actions/src/connection/action_service.rs2
2 files changed, 13 insertions, 3 deletions
diff --git a/crates/system_action/src/action.rs b/crates/system_action/src/action.rs
index 9eef1db..ef1bf11 100644
--- a/crates/system_action/src/action.rs
+++ b/crates/system_action/src/action.rs
@@ -130,17 +130,27 @@ impl ActionContext {
}
/// Insert arbitrary data in the context
- pub fn insert<T: Any + Send + Sync>(mut self, value: T) -> Self {
+ pub fn with_data<T: Any + Send + Sync>(mut self, value: T) -> Self {
self.data.insert(TypeId::of::<T>(), Arc::new(value));
self
}
/// Insert arbitrary data as Arc in the context
- pub fn insert_arc<T: Any + Send + Sync>(mut self, value: Arc<T>) -> Self {
+ pub fn with_arc_data<T: Any + Send + Sync>(mut self, value: Arc<T>) -> Self {
self.data.insert(TypeId::of::<T>(), value);
self
}
+ /// Insert arbitrary data in the context
+ pub fn insert_data<T: Any + Send + Sync>(&mut self, value: T) {
+ self.data.insert(TypeId::of::<T>(), Arc::new(value));
+ }
+
+ /// Insert arbitrary data as Arc in the context
+ pub fn insert_arc_data<T: Any + Send + Sync>(&mut self, value: Arc<T>) {
+ self.data.insert(TypeId::of::<T>(), value);
+ }
+
/// Get arbitrary data from the context
pub fn get<T: Any + Send + Sync>(&self) -> Option<&T> {
self.data
diff --git a/crates/vcs_actions/src/connection/action_service.rs b/crates/vcs_actions/src/connection/action_service.rs
index ca236e7..3786fc5 100644
--- a/crates/vcs_actions/src/connection/action_service.rs
+++ b/crates/vcs_actions/src/connection/action_service.rs
@@ -184,7 +184,7 @@ async fn process_connection(stream: TcpStream, vault: Arc<Vault>, action_pool: A
let ctx: ActionContext = ActionContext::remote().insert_instance(instance);
// Insert vault into context
- let ctx = ctx.insert_arc(vault);
+ let ctx = ctx.with_arc_data(vault);
info!(
"Process action `{}` with argument `{}`",