diff options
Diffstat (limited to 'crates/system_action')
| -rw-r--r-- | crates/system_action/src/action.rs | 14 |
1 files changed, 12 insertions, 2 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 |
