/gen

Type-driven code generation for Go

Primary LanguageGoOtherNOASSERTION

What’s this?

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.

####Introduction and docs…

Changelog

Hey, a video

###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, Queues, Pools or other containers. Anything “of T” is a candidate for a typewriter.