Skip to main content

server_watchdog/application/
client.rs

1use std::error::Error;
2use async_trait::async_trait;
3use tokio::sync::mpsc::Receiver;
4use crate::domain::client::Message;
5use crate::infrastructure::client::Client;
6
7#[async_trait]
8pub trait MessageGateway : Send + Sync {
9    async fn send_message(&self, client_name: &str, chat_id: &str, message: &str);
10}
11
12
13#[async_trait]
14pub trait ClientLoader : Send + Sync {
15    async fn load_clients(&mut self) -> Result<(), Box<dyn Error + Send + Sync>>;
16    fn find(&self, name: &str) -> Option<Box<dyn Client>>;
17    async fn run(&mut self)-> Receiver<Message>;
18}