use crate::{
error::Result,
pb::BeginActivationRequest,
runtime_adapter::{ActivationAdapter, ActivationDecision},
};
#[async_trait::async_trait]
pub trait TimerActivationClient: Send + Sync + std::fmt::Debug {
async fn begin_timer(&self, request: BeginActivationRequest) -> Result<ActivationDecision>;
}
#[async_trait::async_trait]
impl TimerActivationClient for tokio::sync::Mutex<ActivationAdapter> {
async fn begin_timer(&self, request: BeginActivationRequest) -> Result<ActivationDecision> {
self.lock().await.begin(request).await
}
}