use std::collections::BTreeMap;
use super::protocol::Subscription;
#[derive(Debug, Default)]
pub(crate) struct SubscriptionManager {
subscriptions: BTreeMap<String, Subscription>,
}
impl SubscriptionManager {
pub(crate) fn add(&mut self, subscription: Subscription) -> bool {
self.subscriptions
.insert(subscription.id.clone(), subscription)
.is_none()
}
pub(crate) fn remove(&mut self, id: &str) -> bool {
self.subscriptions.remove(id).is_some()
}
pub(crate) fn desired(&self) -> impl Iterator<Item = &Subscription> {
self.subscriptions.values()
}
}