Add ConnTx::send_only

This commit is contained in:
Joscha 2023-01-30 18:57:06 +01:00
parent 09a9620f8e
commit 46d9367670
5 changed files with 11 additions and 5 deletions

View file

@ -136,7 +136,7 @@ async fn on_packet(packet: ParsedPacket, snapshot: Snapshot) -> Result<(), ()> {
// If you are not interested in the result, you can just // If you are not interested in the result, you can just
// throw away the future returned by the send function. // throw away the future returned by the send function.
println!("Sending reply..."); println!("Sending reply...");
let _ = snapshot.conn_tx.send(Send { snapshot.conn_tx.send_only(Send {
content: reply, content: reply,
parent: Some(event.0.id), parent: Some(event.0.id),
}); });

View file

@ -137,7 +137,7 @@ async fn on_packet(packet: ParsedPacket, snapshot: Snapshot) -> Result<(), ()> {
// If you are not interested in the result, you can just // If you are not interested in the result, you can just
// throw away the future returned by the send function. // throw away the future returned by the send function.
println!("Sending reply..."); println!("Sending reply...");
let _ = snapshot.conn_tx.send(Send { snapshot.conn_tx.send_only(Send {
content: reply, content: reply,
parent: Some(event.0.id), parent: Some(event.0.id),
}); });

View file

@ -140,7 +140,7 @@ async fn on_packet(packet: ParsedPacket, conn_tx: &ConnTx, state: &State) -> Res
// If you are not interested in the result, you can just // If you are not interested in the result, you can just
// throw away the future returned by the send function. // throw away the future returned by the send function.
println!("Sending reply..."); println!("Sending reply...");
let _ = conn_tx.send(Send { conn_tx.send_only(Send {
content: reply, content: reply,
parent: Some(event.0.id), parent: Some(event.0.id),
}); });

View file

@ -421,7 +421,7 @@ impl Instance {
if config.force_username || snapshot.nick.is_none() { if config.force_username || snapshot.nick.is_none() {
debug!("{}: Setting nick to username {}", config.name, username); debug!("{}: Setting nick to username {}", config.name, username);
let name = username.to_string(); let name = username.to_string();
let _ = conn.tx().send(Nick { name }); conn.tx().send_only(Nick { name });
} else if let Some(nick) = &snapshot.nick { } else if let Some(nick) = &snapshot.nick {
debug!("{}: Not setting nick, already set to {}", config.name, nick); debug!("{}: Not setting nick, already set to {}", config.name, nick);
} }
@ -434,7 +434,7 @@ impl Instance {
r#type: AuthOption::Passcode, r#type: AuthOption::Passcode,
passcode: Some(password.to_string()), passcode: Some(password.to_string()),
}; };
let _ = conn.tx().send(cmd); conn.tx().send_only(cmd);
} else { } else {
warn!("{}: Auth required but no password configured", config.name); warn!("{}: Auth required but no password configured", config.name);
break; break;

View file

@ -330,6 +330,12 @@ impl ConnTx {
Self::finish_send::<C>(rx) Self::finish_send::<C>(rx)
} }
/// Like [`Self::send`] but ignoring the server's reply.
pub fn send_only<C: Into<Data>>(&self, cmd: C) {
let (tx, _) = oneshot::channel();
let _ = self.cmd_tx.send(ConnCommand::SendCmd(cmd.into(), tx));
}
pub async fn state(&self) -> Result<State> { pub async fn state(&self) -> Result<State> {
let (tx, rx) = oneshot::channel(); let (tx, rx) = oneshot::channel();
self.cmd_tx self.cmd_tx