use eyre::Result; use async_trait::async_trait; use tokio::sync::oneshot; use std::sync::Arc; #[async_trait] pub trait Endpoint { fn name(&self) -> String; fn is_active(&self) -> bool; async fn listen(self: Arc, success_status_send: oneshot::Sender>); }