txt: ## dist_cpan-BDUGGAN-Protobuf.md
  # raku-protobuf
  
  Parse and manage Protobufs with Raku
  
  ## Description
  
  This package contains utilities for managing protobufs with Raku.
  
  Current contents:
  
  * Protobuf::Grammar -- parse a protobuf file
  * Protobuf::Actions -- generate a representation from a grammar
  * Protobuf -- provides `parse-proto` for combining the above
  * protoc.raku -- cli to parse a proto from the command line
  
  There are a few other little classes like Protobuf::Definition,
  Protobuf::Service, etc which comprise the structure that is
  built by Protobuf::Actions.
  
  ## SYNOPSIS
  
  ```
  use Protobuf;
  
  my $p = parse-proto("my.proto".IO.slurp);
  # returns a Protobuf::Definition
  
  for $p.services -> $svc {
  
    # each one is a Protobuf::Service
    say "service name: " ~ $svc.name;
  
    for $svc.endpoints -> $e {
      # each one is a Protobuf::Endpoint
      say " endpoint:  " ~ $e.name;
  
      say '  request params: ' ~ $e.request.name;
      # Requests and responses are Protobuf::Message's
  
      for $e.request.fields -> $f {
        # These are Protobuf::Field's
        say '   name : ' ~ $f.name;
        # Note that type can be a string or a Protobuf::Message
        say '   type : ' ~ $f.type;
      }
      say '  response params: ' ~ $e.response.name;
      for $e.response.fields -> $f {
        say '   name : ' ~ $f.name;
        say '   type : ' ~ $f.type;
      }
    }
  }
  
  ```
  
  ## AUTHOR
  
  Brian Duggan
  
  ## TODO
  
  * Generate code from a proto
  * A bunch of details in the grammar
  
  ## SEE ALSO
  
  <https://developers.google.com/protocol-buffers/docs/reference/proto3-spec>
  