diff --git a/crates/chanora_protocol/src/adapter.rs b/crates/chanora_protocol/src/adapter.rs index 4fcb033..7962ca7 100644 --- a/crates/chanora_protocol/src/adapter.rs +++ b/crates/chanora_protocol/src/adapter.rs @@ -299,9 +299,9 @@ impl SnapshotProbe { self.tx .send(Request::Snapshot(tx)) .await - .map_err(|_| ProtocolError::Lost("connection task is gone".to_string()))?; + .map_err(|_| ProtocolError::lost("connection task is gone"))?; rx.await - .map_err(|_| ProtocolError::Lost("snapshot reply dropped".to_string()))? + .map_err(|_| ProtocolError::lost("snapshot reply dropped"))? } } @@ -375,9 +375,9 @@ impl ProtocolClient { self.tx .send(Request::Snapshot(tx)) .await - .map_err(|_| ProtocolError::Lost("connection task is gone".to_string()))?; + .map_err(|_| ProtocolError::lost("connection task is gone"))?; rx.await - .map_err(|_| ProtocolError::Lost("snapshot reply dropped".to_string()))? + .map_err(|_| ProtocolError::lost("snapshot reply dropped"))? } /// Fetch richer profile and live connection details for one online client. @@ -389,9 +389,9 @@ impl ProtocolClient { reply: tx, }) .await - .map_err(|_| ProtocolError::Lost("connection task is gone".to_string()))?; + .map_err(|_| ProtocolError::lost("connection task is gone"))?; rx.await - .map_err(|_| ProtocolError::Lost("client_profile reply dropped".to_string()))? + .map_err(|_| ProtocolError::lost("client_profile reply dropped"))? } async fn download_file(&self, path: String) -> Result, ProtocolError> { @@ -399,9 +399,9 @@ impl ProtocolClient { self.tx .send(Request::DownloadFile { path, reply: tx }) .await - .map_err(|_| ProtocolError::Lost("connection task is gone".to_string()))?; + .map_err(|_| ProtocolError::lost("connection task is gone"))?; rx.await - .map_err(|_| ProtocolError::Lost("download_file reply dropped".to_string()))? + .map_err(|_| ProtocolError::lost("download_file reply dropped"))? } /// Download the current avatar bytes for a TeamSpeak client UID. @@ -450,9 +450,9 @@ impl ProtocolClient { reply: tx, }) .await - .map_err(|_| ProtocolError::Lost("connection task is gone".to_string()))?; + .map_err(|_| ProtocolError::lost("connection task is gone"))?; rx.await - .map_err(|_| ProtocolError::Lost("move_to_channel reply dropped".to_string()))? + .map_err(|_| ProtocolError::lost("move_to_channel reply dropped"))? } /// Queue a move command and return once it has been accepted by @@ -469,7 +469,7 @@ impl ProtocolClient { password, }) .await - .map_err(|_| ProtocolError::Lost("connection task is gone".to_string())) + .map_err(|_| ProtocolError::lost("connection task is gone")) } /// Update mute state on our own client. Pass `Some(_)` for the @@ -487,9 +487,9 @@ impl ProtocolClient { reply: tx, }) .await - .map_err(|_| ProtocolError::Lost("connection task is gone".to_string()))?; + .map_err(|_| ProtocolError::lost("connection task is gone"))?; rx.await - .map_err(|_| ProtocolError::Lost("set_muted reply dropped".to_string()))? + .map_err(|_| ProtocolError::lost("set_muted reply dropped"))? } /// Sender for outbound voice packets. Clone freely. @@ -590,9 +590,9 @@ impl ProtocolClient { reply: tx, }) .await - .map_err(|_| ProtocolError::Lost("connection task is gone".to_string()))?; + .map_err(|_| ProtocolError::lost("connection task is gone"))?; rx.await - .map_err(|_| ProtocolError::Lost("send_text_message reply dropped".to_string()))? + .map_err(|_| ProtocolError::lost("send_text_message reply dropped"))? } } @@ -1171,7 +1171,7 @@ fn move_self_to( ) -> Result { let state = con .get_state() - .map_err(|e| ProtocolError::Backend(format!("get_state: {e}")))?; + .map_err(|e| ProtocolError::backend_ctx("get_state", e))?; let own_id = state.own_client; let own_client = state .clients @@ -1184,7 +1184,7 @@ fn move_self_to( } let handle = part .send_with_result(con) - .map_err(|e| ProtocolError::Backend(format!("client_move send: {e}")))?; + .map_err(|e| ProtocolError::backend_ctx("client_move send", e))?; info!(target: "chanora_protocol", channel_id, "client_move sent"); Ok(handle) } @@ -1202,7 +1202,7 @@ fn set_self_muted( let part = { let state = con .get_state() - .map_err(|e| ProtocolError::Backend(format!("get_state: {e}")))?; + .map_err(|e| ProtocolError::backend_ctx("get_state", e))?; let mut p = state.client_update(); if let Some(v) = input { p = p.set_input_muted(v); @@ -1213,7 +1213,7 @@ fn set_self_muted( p }; part.send(con) - .map_err(|e| ProtocolError::Backend(format!("client_update send: {e}")))?; + .map_err(|e| ProtocolError::backend_ctx("client_update send", e))?; info!(target: "chanora_protocol", ?input, ?output, "client_update sent"); Ok(()) } @@ -1239,22 +1239,22 @@ fn send_text_message( MessageTarget::Client(client_id) => { let state = con .get_state() - .map_err(|e| ProtocolError::Backend(format!("get_state: {e}")))?; + .map_err(|e| ProtocolError::backend_ctx("get_state", e))?; let client = find_client_by_id(state.clients.values(), client_id)?; client .send_textmessage(message) .send(con) - .map_err(|e| ProtocolError::Backend(format!("send_textmessage(client): {e}")))?; + .map_err(|e| ProtocolError::backend_ctx("send_textmessage(client)", e))?; } MessageTarget::Poke(client_id) => { let state = con .get_state() - .map_err(|e| ProtocolError::Backend(format!("get_state: {e}")))?; + .map_err(|e| ProtocolError::backend_ctx("get_state", e))?; let client = find_client_by_id(state.clients.values(), client_id)?; client .poke(message) .send(con) - .map_err(|e| ProtocolError::Backend(format!("poke: {e}")))?; + .map_err(|e| ProtocolError::backend_ctx("poke", e))?; } } info!(target: "chanora_protocol", len = message.len(), ?target, "text message sent"); @@ -1275,7 +1275,7 @@ fn send_text_to_mode( message: message.into(), })) .send(con) - .map_err(|e| ProtocolError::Backend(format!("send_textmessage({label}): {e}"))) + .map_err(|e| ProtocolError::backend_ctx(format!("send_textmessage({label})"), e)) } async fn fetch_client_profile( @@ -1300,7 +1300,7 @@ async fn fetch_client_profile( ) = { let state = con .get_state() - .map_err(|e| ProtocolError::Backend(format!("get_state: {e}")))?; + .map_err(|e| ProtocolError::backend_ctx("get_state", e))?; let client = state .clients .get(&target_id) @@ -1411,7 +1411,7 @@ async fn fetch_client_profile( let state = con .get_state() - .map_err(|e| ProtocolError::Backend(format!("get_state: {e}")))?; + .map_err(|e| ProtocolError::backend_ctx("get_state", e))?; let client = state .clients .get(&target_id) @@ -1569,7 +1569,7 @@ async fn request_messages( ) -> Result, ProtocolError> { let handle = command .send_with_result(con) - .map_err(|e| ProtocolError::Backend(format!("send command: {e}")))?; + .map_err(|e| ProtocolError::backend_ctx("send command", e))?; let mut messages = Vec::new(); let deadline = Instant::now() + PROFILE_REFRESH_RESULT_TIMEOUT; loop { @@ -1823,7 +1823,7 @@ fn build_snapshot( ) -> Result { let state: &data::Connection = con .get_state() - .map_err(|e| ProtocolError::Backend(format!("get_state: {e}")))?; + .map_err(|e| ProtocolError::backend_ctx("get_state", e))?; // TeamSpeak channel ordering: the `order` field on a channel is // NOT a numeric rank but the id of the channel that should