Skip to main content

rustical_dav_push/
store.rs

1use crate::Subscription;
2use async_trait::async_trait;
3use rustical_store::Error;
4
5#[async_trait]
6pub trait SubscriptionStore: Send + Sync + 'static {
7    async fn get_subscriptions(&self, topic: &str) -> Result<Vec<Subscription>, Error>;
8    async fn get_subscription(&self, id: &str) -> Result<Subscription, Error>;
9    /// Returns whether a subscription under the id already existed
10    async fn upsert_subscription(&self, sub: Subscription) -> Result<bool, Error>;
11    async fn delete_subscription(&self, id: &str) -> Result<(), Error>;
12}
13
14pub trait DavPushStore: SubscriptionStore {}
15
16impl<T: SubscriptionStore> DavPushStore for T {}