DHT stats in HTTP API

This commit is contained in:
Igor Katson 2021-07-14 13:40:56 +01:00
parent f00f522767
commit 98dff76c40
10 changed files with 111 additions and 62 deletions

View file

@ -5,14 +5,7 @@ use std::{
use librqbit_core::id20::Id20;
use log::debug;
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())
}
use serde::Serialize;
#[derive(Debug, Clone, Serialize)]
enum BucketTreeNode {
@ -23,9 +16,9 @@ enum BucketTreeNode {
#[derive(Debug, Clone, Serialize)]
pub struct BucketTree {
bits: u8,
#[serde(serialize_with = "serialize_id20")]
#[serde(serialize_with = "crate::utils::serialize_id20")]
start: Id20,
#[serde(serialize_with = "serialize_id20")]
#[serde(serialize_with = "crate::utils::serialize_id20")]
end_inclusive: Id20,
data: BucketTreeNode,
}
@ -314,7 +307,7 @@ impl Default for BucketTree {
#[derive(Debug, Clone, Serialize)]
pub struct RoutingTableNode {
#[serde(serialize_with = "serialize_id20")]
#[serde(serialize_with = "crate::utils::serialize_id20")]
id: Id20,
addr: SocketAddr,
#[serde(skip)]
@ -372,7 +365,7 @@ impl RoutingTableNode {
#[derive(Debug, Clone, Serialize)]
pub struct RoutingTable {
#[serde(serialize_with = "serialize_id20")]
#[serde(serialize_with = "crate::utils::serialize_id20")]
id: Id20,
size: usize,
buckets: BucketTree,