parse_req.go 611 B

1234567891011121314151617181920212223
  1. package codegenerator
  2. import (
  3. "fmt"
  4. "io"
  5. "io/ioutil"
  6. "google.golang.org/protobuf/proto"
  7. "google.golang.org/protobuf/types/pluginpb"
  8. )
  9. // ParseRequest parses a code generator request from a proto Message.
  10. func ParseRequest(r io.Reader) (*pluginpb.CodeGeneratorRequest, error) {
  11. input, err := ioutil.ReadAll(r)
  12. if err != nil {
  13. return nil, fmt.Errorf("failed to read code generator request: %v", err)
  14. }
  15. req := new(pluginpb.CodeGeneratorRequest)
  16. if err = proto.Unmarshal(input, req); err != nil {
  17. return nil, fmt.Errorf("failed to unmarshal code generator request: %v", err)
  18. }
  19. return req, nil
  20. }