use hedera_proto::services;
use crate::protobuf::{
FromProtobuf,
ToProtobuf,
};
use crate::NodeAddress;
#[derive(Clone, Debug)]
pub struct NodeAddressBook {
pub node_addresses: Vec<NodeAddress>,
}
impl NodeAddressBook {
pub fn from_bytes(bytes: &[u8]) -> crate::Result<Self> {
FromProtobuf::from_bytes(bytes)
}
#[must_use]
pub fn to_bytes(&self) -> Vec<u8> {
ToProtobuf::to_bytes(self)
}
}
impl FromProtobuf<services::NodeAddressBook> for NodeAddressBook {
fn from_protobuf(pb: services::NodeAddressBook) -> crate::Result<Self> {
Ok(Self { node_addresses: Vec::from_protobuf(pb.node_address)? })
}
}
impl ToProtobuf for NodeAddressBook {
type Protobuf = services::NodeAddressBook;
fn to_protobuf(&self) -> Self::Protobuf {
services::NodeAddressBook { node_address: self.node_addresses.to_protobuf() }
}
}