/usr/share/gocode/src/go.pedge.io/lion/proto/encode.go is in golang-go.pedge-lion-dev 0.0~git20171203.2a81062-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | package protolion
import (
"fmt"
"go.pedge.io/lion"
"github.com/golang/protobuf/proto"
)
type encoderDecoder struct{}
func newEncoderDecoder() *encoderDecoder {
return &encoderDecoder{}
}
func (e *encoderDecoder) Encode(entryMessage *lion.EntryMessage) (*lion.EncodedEntryMessage, error) {
message, ok := entryMessage.Value.(proto.Message)
if !ok {
return nil, fmt.Errorf("protolion: %T not a proto.Message", entryMessage.Value)
}
name, err := messageName(message)
if err != nil {
return nil, err
}
value, err := proto.Marshal(message)
if err != nil {
return nil, err
}
return &lion.EncodedEntryMessage{
Encoding: Encoding,
Name: name,
Value: value,
}, nil
}
func (e *encoderDecoder) Name(entryMessage *lion.EntryMessage) (string, error) {
message, ok := entryMessage.Value.(proto.Message)
if !ok {
return "", fmt.Errorf("protolion: %T not a proto.Message", entryMessage.Value)
}
return messageName(message)
}
func (e *encoderDecoder) Decode(encodedEntryMessage *lion.EncodedEntryMessage) (*lion.EntryMessage, error) {
message, err := newMessage(encodedEntryMessage.Name)
if err != nil {
return nil, err
}
if err := proto.Unmarshal(encodedEntryMessage.Value, message); err != nil {
return nil, err
}
return &lion.EntryMessage{
Encoding: encodedEntryMessage.Encoding,
Value: message,
}, nil
}
|