use crate::{
domain_knowledge::{CompactPeerContact, NodeId},
message::TransactionId,
};
use serde::{Deserialize, Serialize};
use serde_with::{serde_as, Bytes};
#[serde_as]
#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct GetPeersSuccessResponse {
#[serde_as(as = "Bytes")]
#[serde(rename = "t")]
pub(crate) transaction_id: TransactionId,
#[serde(rename = "y")]
#[serde_as(as = "Bytes")]
pub(crate) message_type: Box<[u8]>,
#[serde(rename = "r")]
pub(crate) body: GetPeersSuccessResponseBody,
}
#[serde_as]
#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct GetPeersSuccessResponseBody {
#[serde_as(as = "Bytes")]
pub id: NodeId,
#[serde_as(as = "Bytes")]
pub token: Box<[u8]>,
pub values: Vec<CompactPeerContact>,
}