github.com/RevenueMonster/sqlike@v1.0.6/protobuf/ptypes/key.go (about)

     1  package ptypes
     2  
     3  import (
     4  	pb "github.com/RevenueMonster/sqlike/protobuf"
     5  	"github.com/RevenueMonster/sqlike/types"
     6  )
     7  
     8  func Key(k *pb.Key) (*types.Key, error) {
     9  	return protoToKey(k), nil
    10  }
    11  
    12  func KeyProto(k *types.Key) (*pb.Key, error) {
    13  	return keyToProto(k), nil
    14  }
    15  
    16  func protoToKey(pk *pb.Key) *types.Key {
    17  	if pk == nil {
    18  		return nil
    19  	}
    20  
    21  	return &types.Key{
    22  		Namespace: pk.Namespace,
    23  		Kind:      pk.Kind,
    24  		NameID:    pk.NameID,
    25  		IntID:     pk.IntID,
    26  		Parent:    protoToKey(pk.Parent),
    27  	}
    28  }
    29  
    30  func keyToProto(k *types.Key) *pb.Key {
    31  	if k == nil {
    32  		return nil
    33  	}
    34  
    35  	return &pb.Key{
    36  		Namespace: k.Namespace,
    37  		Kind:      k.Kind,
    38  		NameID:    k.NameID,
    39  		IntID:     k.IntID,
    40  		Parent:    keyToProto(k.Parent),
    41  	}
    42  }