Dumping routing table to JSON. Wow
This commit is contained in:
parent
ca25bac486
commit
32789f3c8c
1 changed files with 12 additions and 1 deletions
|
|
@ -5,7 +5,14 @@ use std::{
|
||||||
|
|
||||||
use librqbit_core::id20::Id20;
|
use librqbit_core::id20::Id20;
|
||||||
use log::debug;
|
use log::debug;
|
||||||
use serde::Serialize;
|
use serde::{Serialize, Serializer};
|
||||||
|
|
||||||
|
fn serialize_id20<S>(id: &Id20, ser: S) -> Result<S::Ok, S::Error>
|
||||||
|
where
|
||||||
|
S: Serializer,
|
||||||
|
{
|
||||||
|
ser.serialize_str(&id.as_string())
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize)]
|
#[derive(Debug, Clone, Serialize)]
|
||||||
enum BucketTreeNode {
|
enum BucketTreeNode {
|
||||||
|
|
@ -16,7 +23,9 @@ enum BucketTreeNode {
|
||||||
#[derive(Debug, Clone, Serialize)]
|
#[derive(Debug, Clone, Serialize)]
|
||||||
pub struct BucketTree {
|
pub struct BucketTree {
|
||||||
bits: u8,
|
bits: u8,
|
||||||
|
#[serde(serialize_with = "serialize_id20")]
|
||||||
start: Id20,
|
start: Id20,
|
||||||
|
#[serde(serialize_with = "serialize_id20")]
|
||||||
end_inclusive: Id20,
|
end_inclusive: Id20,
|
||||||
data: BucketTreeNode,
|
data: BucketTreeNode,
|
||||||
}
|
}
|
||||||
|
|
@ -305,6 +314,7 @@ impl Default for BucketTree {
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize)]
|
#[derive(Debug, Clone, Serialize)]
|
||||||
pub struct RoutingTableNode {
|
pub struct RoutingTableNode {
|
||||||
|
#[serde(serialize_with = "serialize_id20")]
|
||||||
id: Id20,
|
id: Id20,
|
||||||
addr: SocketAddr,
|
addr: SocketAddr,
|
||||||
#[serde(skip)]
|
#[serde(skip)]
|
||||||
|
|
@ -362,6 +372,7 @@ impl RoutingTableNode {
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize)]
|
#[derive(Debug, Clone, Serialize)]
|
||||||
pub struct RoutingTable {
|
pub struct RoutingTable {
|
||||||
|
#[serde(serialize_with = "serialize_id20")]
|
||||||
id: Id20,
|
id: Id20,
|
||||||
size: usize,
|
size: usize,
|
||||||
buckets: BucketTree,
|
buckets: BucketTree,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue