ave_core/helpers/network/
service.rs1use ave_actors::ActorError;
5use ave_network::CommandHelper as Command;
6use tokio::sync::mpsc::Sender;
7use tracing::error;
8
9use super::NetworkMessage;
10
11#[derive(Debug, Clone)]
13pub struct NetworkSender {
14 command_sender: Sender<Command<NetworkMessage>>,
16}
17
18impl NetworkSender {
19 pub const fn new(command_sender: Sender<Command<NetworkMessage>>) -> Self {
21 Self { command_sender }
22 }
23
24 pub async fn send_command(
26 &self,
27 command: Command<NetworkMessage>,
28 ) -> Result<(), ActorError> {
29 self.command_sender.send(command).await.map_err(|e| {
30 error!(
31 error = %e,
32 "Failed to send command to network worker"
33 );
34 ActorError::Functional {
35 description: e.to_string(),
36 }
37 })
38 }
39
40 pub fn sender(&self) -> Sender<Command<NetworkMessage>> {
42 self.command_sender.clone()
43 }
44}