Reader small image

You're reading from  Protocol Buffers Handbook

Product typeBook
Published inApr 2024
PublisherPackt
ISBN-139781805124672
Edition1st Edition
Right arrow
Author (1)
Clément Jean
Clément Jean
author image
Clément Jean

Clément Jean is the CTO of Education for Ethiopia, a start-up focusing on educating K-12 students in Ethiopia. On top of that, he is also an online instructor (on Udemy, Linux Foundation, and others) teaching people about diff erent kinds of technologies. In both his occupations, he deals with technologies such as Protobuf and gRPC and how to apply them to real-life use cases. His overall goal is to empower people through education and technology.
Read more about Clément Jean

Right arrow

Adding a protoc plugin option

You might already have an idea of how to add options to the plugin. If you remember, we created an instance of protogen.Options in our main plugin. This Options object can work with the flags package in the standard library. We simply need to define our flags and pass the Set function to the Options instance. This looks like this (cmd/protoc-gen-check/main.go):

import (
  "flags"
  //...
)
func main() {
  var flags flag.FlagSet
  phoneRegexp := flags.String("phone_regexp", "", "custom regex for 
  phone checking.")
  opts := protogen.Options{
    ParamFunc: flags.Set,
  }
  //...
}

If you are not familiar with the flags package from the standard library, we define a flag of type string, the name phone_regexp, and the default value of the empty string.

We can now pass the phoneRegexp variable to our generateFile...

lock icon
The rest of the page is locked
Previous PageNext Page
You have been reading a chapter from
Protocol Buffers Handbook
Published in: Apr 2024Publisher: PacktISBN-13: 9781805124672

Author (1)

author image
Clément Jean

Clément Jean is the CTO of Education for Ethiopia, a start-up focusing on educating K-12 students in Ethiopia. On top of that, he is also an online instructor (on Udemy, Linux Foundation, and others) teaching people about diff erent kinds of technologies. In both his occupations, he deals with technologies such as Protobuf and gRPC and how to apply them to real-life use cases. His overall goal is to empower people through education and technology.
Read more about Clément Jean