From a3f0c5537c8e95e363b263d41b4d0ef161b13ab3 Mon Sep 17 00:00:00 2001
From: Leonard Lyubich <leonard@nspcc.ru>
Date: Mon, 17 Aug 2020 12:06:18 +0300
Subject: [PATCH] v2/refs: Implement gRPC converters

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
---
 v2/refs/convert.go | 84 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)

diff --git a/v2/refs/convert.go b/v2/refs/convert.go
index 869a0e6..936a920 100644
--- a/v2/refs/convert.go
+++ b/v2/refs/convert.go
@@ -27,3 +27,87 @@ func OwnerIDFromGRPCMessage(m *refs.OwnerID) *OwnerID {
 
 	return o
 }
+
+func ContainerIDToGRPCMessage(c *ContainerID) *refs.ContainerID {
+	if c == nil {
+		return nil
+	}
+
+	m := new(refs.ContainerID)
+
+	m.SetValue(c.GetValue())
+
+	return m
+}
+
+func ContainerIDFromGRPCMessage(m *refs.ContainerID) *ContainerID {
+	if m == nil {
+		return nil
+	}
+
+	c := new(ContainerID)
+
+	c.SetValue(m.GetValue())
+
+	return c
+}
+
+func ObjectIDToGRPCMessage(o *ObjectID) *refs.ObjectID {
+	if o == nil {
+		return nil
+	}
+
+	m := new(refs.ObjectID)
+
+	m.SetValue(o.GetValue())
+
+	return m
+}
+
+func ObjectIDFromGRPCMessage(m *refs.ObjectID) *ObjectID {
+	if m == nil {
+		return nil
+	}
+
+	o := new(ObjectID)
+
+	o.SetValue(m.GetValue())
+
+	return o
+}
+
+func AddressToGRPCMessage(a *Address) *refs.Address {
+	if a == nil {
+		return nil
+	}
+
+	m := new(refs.Address)
+
+	m.SetContainerId(
+		ContainerIDToGRPCMessage(a.GetContainerID()),
+	)
+
+	m.SetObjectId(
+		ObjectIDToGRPCMessage(a.GetObjectID()),
+	)
+
+	return m
+}
+
+func AddressFromGRPCMessage(m *refs.Address) *Address {
+	if m == nil {
+		return nil
+	}
+
+	a := new(Address)
+
+	a.SetContainerID(
+		ContainerIDFromGRPCMessage(m.GetContainerId()),
+	)
+
+	a.SetObjectID(
+		ObjectIDFromGRPCMessage(m.GetObjectId()),
+	)
+
+	return a
+}