From 32789f3c8c05bf7de63a5b8f9ed543a1786584fe Mon Sep 17 00:00:00 2001 From: Igor Katson Date: Wed, 14 Jul 2021 01:16:47 +0100 Subject: [PATCH] Dumping routing table to JSON. Wow --- crates/dht/src/routing_table.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/crates/dht/src/routing_table.rs b/crates/dht/src/routing_table.rs index 12d871d..2e45dc0 100644 --- a/crates/dht/src/routing_table.rs +++ b/crates/dht/src/routing_table.rs @@ -5,7 +5,14 @@ use std::{ use librqbit_core::id20::Id20; use log::debug; -use serde::Serialize; +use serde::{Serialize, Serializer}; + +fn serialize_id20(id: &Id20, ser: S) -> Result +where + S: Serializer, +{ + ser.serialize_str(&id.as_string()) +} #[derive(Debug, Clone, Serialize)] enum BucketTreeNode { @@ -16,7 +23,9 @@ enum BucketTreeNode { #[derive(Debug, Clone, Serialize)] pub struct BucketTree { bits: u8, + #[serde(serialize_with = "serialize_id20")] start: Id20, + #[serde(serialize_with = "serialize_id20")] end_inclusive: Id20, data: BucketTreeNode, } @@ -305,6 +314,7 @@ impl Default for BucketTree { #[derive(Debug, Clone, Serialize)] pub struct RoutingTableNode { + #[serde(serialize_with = "serialize_id20")] id: Id20, addr: SocketAddr, #[serde(skip)] @@ -362,6 +372,7 @@ impl RoutingTableNode { #[derive(Debug, Clone, Serialize)] pub struct RoutingTable { + #[serde(serialize_with = "serialize_id20")] id: Id20, size: usize, buckets: BucketTree,