hiero_sdk/
node_address_book.rs1use hiero_sdk_proto::services;
2
3use crate::protobuf::{
4 FromProtobuf,
5 ToProtobuf,
6};
7use crate::NodeAddress;
8
9#[derive(Clone, Debug)]
13pub struct NodeAddressBook {
14 pub node_addresses: Vec<NodeAddress>,
16}
17
18impl NodeAddressBook {
19 pub fn from_bytes(bytes: &[u8]) -> crate::Result<Self> {
25 FromProtobuf::from_bytes(bytes)
26 }
27
28 #[must_use]
30 pub fn to_bytes(&self) -> Vec<u8> {
31 ToProtobuf::to_bytes(self)
32 }
33}
34
35impl FromProtobuf<services::NodeAddressBook> for NodeAddressBook {
36 fn from_protobuf(pb: services::NodeAddressBook) -> crate::Result<Self> {
37 Ok(Self { node_addresses: Vec::from_protobuf(pb.node_address)? })
38 }
39}
40
41impl ToProtobuf for NodeAddressBook {
42 type Protobuf = services::NodeAddressBook;
43
44 fn to_protobuf(&self) -> Self::Protobuf {
45 services::NodeAddressBook { node_address: self.node_addresses.to_protobuf() }
46 }
47}