diff --git a/src/common/mod.rs b/src/common/mod.rs index 26b8bc0..5d8d161 100755 --- a/src/common/mod.rs +++ b/src/common/mod.rs @@ -3,5 +3,6 @@ pub mod nonce_cache; pub mod tip_cache; pub mod types; pub mod address_lookup_cache; +pub mod subscription_handle; pub use types::*; diff --git a/src/common/subscription_handle.rs b/src/common/subscription_handle.rs new file mode 100644 index 0000000..e9395fa --- /dev/null +++ b/src/common/subscription_handle.rs @@ -0,0 +1,13 @@ +use tokio::task::JoinHandle; + +pub struct SubscriptionHandle { + pub task: JoinHandle<()>, + pub unsub_fn: Box, +} + +impl SubscriptionHandle { + pub async fn shutdown(self) { + (self.unsub_fn)(); + self.task.abort(); + } +}