rustical_dav_push/
store.rs1use 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 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 {}