From 4013be10ed9edd0c62c96ad9014653158609c0e8 Mon Sep 17 00:00:00 2001
From: Vibhav Pant <vibhav@edjx.io>
Date: Wed, 25 Mar 2020 17:34:36 +0530
Subject: [PATCH] peer: Add (*PeerRecord).ToProtoBuf to get protobuf equivalent
 struct

---
 peer/record.go | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/peer/record.go b/peer/record.go
index c45efbe..f21b0da 100644
--- a/peer/record.go
+++ b/peer/record.go
@@ -187,6 +187,19 @@ func (r *PeerRecord) Equal(other *PeerRecord) bool {
 	return true
 }
 
+// ToProtobuf returns the equivalent Protocol Buffer struct object of a PeerRecord.
+func (r *PeerRecord) ToProtobuf() (*pb.PeerRecord, error) {
+	idBytes, err := r.PeerID.MarshalBinary()
+	if err != nil {
+		return nil, err
+	}
+	return &pb.PeerRecord{
+		PeerId:    idBytes,
+		Addresses: addrsToProtobuf(r.Addrs),
+		Seq:       r.Seq,
+	}, nil
+}
+
 func addrsFromProtobuf(addrs []*pb.PeerRecord_AddressInfo) []ma.Multiaddr {
 	var out []ma.Multiaddr
 	for _, addr := range addrs {