aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/src/event.rs5
-rw-r--r--core/src/pubsub.rs17
2 files changed, 10 insertions, 12 deletions
diff --git a/core/src/event.rs b/core/src/event.rs
index 1632df3..a4e356b 100644
--- a/core/src/event.rs
+++ b/core/src/event.rs
@@ -14,7 +14,6 @@ use crate::{async_runtime::lock::Mutex, util::random_32, Result};
const CHANNEL_BUFFER_SIZE: usize = 1000;
-pub type ArcEventSys<T> = Arc<EventSys<T>>;
pub type EventListenerID = u32;
type Listeners<T> = HashMap<T, HashMap<String, HashMap<EventListenerID, Sender<Event>>>>;
@@ -84,7 +83,7 @@ where
T: std::hash::Hash + Eq + std::fmt::Debug + Clone,
{
/// Creates a new [`EventSys`]
- pub fn new() -> ArcEventSys<T> {
+ pub fn new() -> Arc<EventSys<T>> {
Arc::new(Self {
listeners: Mutex::new(HashMap::new()),
listener_buffer_size: CHANNEL_BUFFER_SIZE,
@@ -101,7 +100,7 @@ where
/// starts to consume the buffered events.
///
/// If `size` is zero, this function will panic.
- pub fn with_buffer_size(size: usize) -> ArcEventSys<T> {
+ pub fn with_buffer_size(size: usize) -> Arc<EventSys<T>> {
Arc::new(Self {
listeners: Mutex::new(HashMap::new()),
listener_buffer_size: size,
diff --git a/core/src/pubsub.rs b/core/src/pubsub.rs
index 09b62ea..7aa4936 100644
--- a/core/src/pubsub.rs
+++ b/core/src/pubsub.rs
@@ -7,7 +7,6 @@ use crate::{async_runtime::lock::Mutex, util::random_32, Result};
const CHANNEL_BUFFER_SIZE: usize = 1000;
-pub type ArcPublisher<T> = Arc<Publisher<T>>;
pub type SubscriptionID = u32;
/// A simple publish-subscribe system.
@@ -36,7 +35,7 @@ pub struct Publisher<T> {
impl<T: Clone> Publisher<T> {
/// Creates a new [`Publisher`]
- pub fn new() -> ArcPublisher<T> {
+ pub fn new() -> Arc<Publisher<T>> {
Arc::new(Self {
subs: Mutex::new(HashMap::new()),
subscription_buffer_size: CHANNEL_BUFFER_SIZE,
@@ -53,7 +52,7 @@ impl<T: Clone> Publisher<T> {
/// the buffered messages.
///
/// If `size` is zero, this function will panic.
- pub fn with_buffer_size(size: usize) -> ArcPublisher<T> {
+ pub fn with_buffer_size(size: usize) -> Arc<Publisher<T>> {
Arc::new(Self {
subs: Mutex::new(HashMap::new()),
subscription_buffer_size: size,
@@ -79,7 +78,7 @@ impl<T: Clone> Publisher<T> {
sub
}
- /// Unsubscribes from the publisher
+ /// Unsubscribes by providing subscription id
pub async fn unsubscribe(self: &Arc<Self>, id: &SubscriptionID) {
self.subs.lock().await.remove(id);
}
@@ -114,14 +113,14 @@ impl<T: Clone> Publisher<T> {
pub struct Subscription<T> {
id: SubscriptionID,
recv_chan: async_channel::Receiver<T>,
- publisher: ArcPublisher<T>,
+ publisher: Arc<Publisher<T>>,
}
impl<T: Clone> Subscription<T> {
- /// Creates a new Subscription
+ /// Creates a new [`Subscription`]
pub fn new(
id: SubscriptionID,
- publisher: ArcPublisher<T>,
+ publisher: Arc<Publisher<T>>,
recv_chan: async_channel::Receiver<T>,
) -> Subscription<T> {
Self {
@@ -131,13 +130,13 @@ impl<T: Clone> Subscription<T> {
}
}
- /// Receive a message from the Publisher
+ /// Receive a message from the [`Publisher`]
pub async fn recv(&self) -> Result<T> {
let msg = self.recv_chan.recv().await?;
Ok(msg)
}
- /// Unsubscribe from the Publisher
+ /// Unsubscribe from the [`Publisher`]
pub async fn unsubscribe(&self) {
self.publisher.unsubscribe(&self.id).await;
}