(
conn: &mut T,
msg: &message::Message,
)
| 324 | } |
| 325 | |
| 326 | pub async fn write_message<T: AsyncWrite + Unpin>( |
| 327 | conn: &mut T, |
| 328 | msg: &message::Message, |
| 329 | ) -> Result<()> { |
| 330 | let proto_msg = Message { |
| 331 | message: Some(msg.clone()), |
| 332 | }; |
| 333 | |
| 334 | debug!("Sending proto message: {:?}", msg); |
| 335 | |
| 336 | let mut buf = BytesMut::new(); |
| 337 | proto_msg |
| 338 | .encode(&mut buf) |
| 339 | .context("Failed to encode Protocol Buffers message")?; |
| 340 | |
| 341 | let len = buf.len() as u32; |
| 342 | let len_bytes = len.to_le_bytes(); |
| 343 | |
| 344 | conn.write_all(&len_bytes).await?; |
| 345 | conn.write_all(&buf).await?; |
| 346 | conn.flush().await?; |
| 347 | Ok(()) |
| 348 | } |
| 349 | |
| 350 | impl FairGroup for message::Message { |
| 351 | fn group_id(&self) -> Option<u32> { |
no test coverage detected