FieldMap function generator for https://github.com/mholt/binding
Switch branches/tags
Clone or download
Latest commit 9c1e54f Sep 2, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore - initial commit Feb 26, 2015
LICENSE - initial commit Feb 26, 2015
README.md Added Gitter badge Mar 13, 2015
generator.go generation logic added for embedded structs Dec 11, 2015
testfile.go - fixed #1, a panic for an element without typespec, that check was u… Feb 26, 2015

README.md

Autobindings

Join the chat at https://gitter.im/rainingclouds/autobindings

Autobindings is a simple extention to the amazing library Binding. So binding is a reflectionless data binding for Go's net/http. For that developer has to write a FieldMap function which is used by this library to map the incoming JSON from the request to the struct fields.

What autobinding does ?

So it automatically creates FieldMap function for your struct.

How to use ?

Just add this line to all of your files which has struct and for which you want to create a FieldMap function

//go:generate autobindings -file <file_name>

Or

From command line just run

autobindings -file <file_name>

Or

If you don't want to create the automatic files, then use -print flag to just print the function associated with your struct on the console

autobindings -file <file_name> -print

Example

$ ./generator -file testfile.go -print
package main

/*
This is an autogenerated file by autobindings
*/

import (
  "github.com/mholt/binding"
)

func (i Item) FieldMap() binding.FieldMap {
  return binding.FieldMap{
    &i.A: "A",
    &i.B: "B",
  }
}

How to install ?

go install github.com/rainingclouds/autobindings

How does it happens ?

Using the power of go generate :) It creates <struct_name>_bindings.go for every struct in the given file. This file contains FieldMap function for that struct. This function is used by Binding library to perform the mapping.

Okay so what is missing ?

  • It doesn't support Embedded fields yet.

Happy to help

akshay@rainingclouds.com @akshay_deo