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 }