Skip to content

Commit 813070e

Browse files
authored
feat: Add Display impl for PeerMessages (#140)
2 parents 08c5cfd + 08e6915 commit 813070e

File tree

3 files changed

+40
-2
lines changed

3 files changed

+40
-2
lines changed

crates/libtortillas/src/peer/actor.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ impl Actor for PeerActor {
293293
impl Message<PeerMessages> for PeerActor {
294294
type Reply = ();
295295

296-
#[instrument(skip(self), fields(addr = %self.stream, id = %self.peer.id.unwrap()))]
296+
#[instrument(skip(self, msg), fields(addr = %self.stream, id = %self.peer.id.unwrap(), message = %msg))]
297297
async fn handle(
298298
&mut self, msg: PeerMessages, _: &mut KameoContext<Self, Self::Reply>,
299299
) -> Self::Reply {

crates/libtortillas/src/protocol/messages.rs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use std::{
22
collections::HashMap,
3+
fmt::Display,
34
net::{IpAddr, Ipv4Addr, Ipv6Addr},
45
sync::{
56
Arc,
@@ -124,6 +125,42 @@ pub enum PeerMessages {
124125
KeepAlive,
125126
}
126127

128+
impl Display for PeerMessages {
129+
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
130+
match self {
131+
PeerMessages::Handshake(handshake) => write!(f, "Handshake({})", handshake.peer_id),
132+
PeerMessages::Choke => write!(f, "Choke"),
133+
PeerMessages::Unchoke => write!(f, "Unchoke"),
134+
PeerMessages::Interested => write!(f, "Interested"),
135+
PeerMessages::NotInterested => write!(f, "NotInterested"),
136+
PeerMessages::Have(index) => write!(f, "Have({})", index),
137+
PeerMessages::Bitfield(bitfield) => write!(
138+
f,
139+
"Bitfield(true: {}, false: {})",
140+
bitfield.count_ones(),
141+
bitfield.count_zeros()
142+
),
143+
PeerMessages::Request(index, begin, length) => {
144+
write!(f, "Request({}, {}, {})", index, begin, length)
145+
}
146+
PeerMessages::Piece(index, begin, data) => {
147+
write!(f, "Piece({}, {}, {})", index, begin, data.len())
148+
}
149+
PeerMessages::Cancel(index, begin, length) => {
150+
write!(f, "Cancel({}, {}, {})", index, begin, length)
151+
}
152+
PeerMessages::Extended(extended_id, handshake_message, metadata) => write!(
153+
f,
154+
"Extended({}, {:?}, {:?})",
155+
extended_id,
156+
handshake_message,
157+
metadata.as_ref().map(|m| m.len())
158+
),
159+
PeerMessages::KeepAlive => write!(f, "KeepAlive"),
160+
}
161+
}
162+
}
163+
127164
impl PeerMessages {
128165
pub fn to_bytes(&self) -> Result<Bytes, PeerActorError> {
129166
Ok(match self {

crates/libtortillas/src/torrent/messages.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,14 @@ impl fmt::Debug for TorrentMessage {
6767
TorrentMessage::KillTracker(tracker) => write!(f, "KillTracker({tracker:?})"),
6868
TorrentMessage::AddPeer(peer) => write!(f, "AddPeer({peer:?})"),
6969
TorrentMessage::IncomingPiece(index, offset, data) => {
70-
write!(f, "IncomingPiece({index}, {offset}, {data:?})")
70+
write!(f, "IncomingPiece({index}, {offset}, {})", data.len())
7171
}
7272
TorrentMessage::Announce(peers) => write!(f, "Announce({peers:?})"),
7373
_ => write!(f, "TorrentMessage"), // Add more later,
7474
}
7575
}
7676
}
77+
7778
actor_request_response!(
7879
#[allow(dead_code)]
7980
pub(crate) TorrentRequest,

0 commit comments

Comments
 (0)