package codegenerator import ( "fmt" "io" "io/ioutil" "github.com/golang/protobuf/proto" plugin "github.com/golang/protobuf/protoc-gen-go/plugin" ) // ParseRequest parses a code generator request from a proto Message. func ParseRequest(r io.Reader) (*plugin.CodeGeneratorRequest, error) { input, err := ioutil.ReadAll(r) if err != nil { return nil, fmt.Errorf("failed to read code generator request: %v", err) } req := new(plugin.CodeGeneratorRequest) if err = proto.Unmarshal(input, req); err != nil { return nil, fmt.Errorf("failed to unmarshal code generator request: %v", err) } return req, nil }