# Functions
AnnotateFullPaths annotates an existing set of FileInfos with their full paths.
CollectPackages returns a map of PackageInfos.
ComputeGoLocations uses the package and go_package information to figure out the effective Go location and package.
CopyAndChangePackage copies file `in` to file `out`, rewriting the `package` declaration to `pkg`.
Disjoint takes a slice of existing .proto files, and a slice of new .proto files.
FileDescriptorName computes the import-dir-relative Name that the FileDescriptor for a full filename will have.
Generate does the actual generation of protos.
GetFileInfos gets the FileInfo struct for every proto passed in.
ImportDirsUsed returns the set of import directories that contain entries in the set of proto files.
ParseArgs parses protoc-style commandline arguments, splitting them into custom flags, protoc flags and input files, and capturing a list of import directories.
ProtosBelow returns a slice containing the filenames of all .proto files found in or below the given directories.
# Structs
FileInfo is the set of information we need to know about a file from protoc.
PackageInfo collects all the information for a single package.
The wrapper object.
# Type aliases
Flag values is a simple map of parsed flag values.