gen
is a code-generation tool for Go. It’s intended to offer generics-like functionality on your types. Out of the box, it offers offers LINQ/underscore-inspired methods.
It also offers third-party, runtime extensibility via typewriters.
###Typewriters There is a list of open-source typewriters in TYPEWRITERS.md. Please add your own.
###Contributing
There are three big parts of gen
.
####gen
This repository. The gen package is primarily the command-line interface. Most of the work is done by the typewriter package, and individual typewriters.
####typewriter
The typewriter package is where most of the parsing, type evaluation and code generation architecture lives.
####typewriters
Typewriters are where templates and logic live for generating code. Here’s set, which will make a lovely Set container for your type. Here’s slice, which provides the built-in LINQ-like functionality. Here’s stringer, a fork of Rob Pike’s tool.
Third-party typewriters are added easily by the end user. You publish them as Go packages for import. Learn more...
We’d love to see typewriter packages for things like strongly-typed JSON serialization, Queue
s, Pool
s or other containers. Anything “of T” is a candidate for a typewriter.