code: func NewMapperFunc(tagName string, f func(string) string) *Mapper {
  	return &Mapper{
  		cache:   make(map[reflect.Type]*StructMap),
  		tagName: tagName,
  		mapFunc: f,
  	}
  }
docs: // NewMapperFunc returns a new mapper which optionally obeys a field tag and
  // a struct field name mapper func given by f.  Tags will take precedence, but
  // for any other field, the mapped name will be f(field.Name)