github.com/TrueCloudLab/frostfs-api-go/v2@v2.0.0-20230228134343-196241c4e79a/tombstone/convert.go (about)

     1  package tombstone
     2  
     3  import (
     4  	"github.com/TrueCloudLab/frostfs-api-go/v2/refs"
     5  	"github.com/TrueCloudLab/frostfs-api-go/v2/rpc/grpc"
     6  	"github.com/TrueCloudLab/frostfs-api-go/v2/rpc/message"
     7  	tombstone "github.com/TrueCloudLab/frostfs-api-go/v2/tombstone/grpc"
     8  )
     9  
    10  func (s *Tombstone) ToGRPCMessage() grpc.Message {
    11  	var m *tombstone.Tombstone
    12  
    13  	if s != nil {
    14  		m = new(tombstone.Tombstone)
    15  
    16  		m.SetMembers(refs.ObjectIDListToGRPCMessage(s.members))
    17  		m.SetExpirationEpoch(s.exp)
    18  		m.SetSplitId(s.splitID)
    19  	}
    20  
    21  	return m
    22  }
    23  
    24  func (s *Tombstone) FromGRPCMessage(m grpc.Message) error {
    25  	v, ok := m.(*tombstone.Tombstone)
    26  	if !ok {
    27  		return message.NewUnexpectedMessageType(m, v)
    28  	}
    29  
    30  	var err error
    31  
    32  	s.members, err = refs.ObjectIDListFromGRPCMessage(v.GetMembers())
    33  	if err != nil {
    34  		return err
    35  	}
    36  
    37  	s.exp = v.GetExpirationEpoch()
    38  	s.splitID = v.GetSplitId()
    39  
    40  	return nil
    41  }