Categorygithub.com/yuin/gluamapper
modulepackage
0.0.0-20150323120927-d836955830e7
Repository: https://github.com/yuin/gluamapper.git
Documentation: pkg.go.dev

# README

=============================================================================== gluamapper: maps a GopherLua table to a Go struct

.. image:: https://godoc.org/github.com/yuin/gluamapper?status.svg :target: http://godoc.org/github.com/yuin/gluamapper

.. image:: https://travis-ci.org/yuin/gluamapper.svg :target: https://travis-ci.org/yuin/gluamapper

|

gluamapper provides an easy way to map GopherLua tables to Go structs.

gluamapper converts a GopherLua table to map[string]interface{} , and then converts it to a Go struct using mapstructure <https://github.com/mitchellh/mapstructure/>_ .


Installation

.. code-block:: bash

go get github.com/yuin/gluamapper


API

See Go doc <http://godoc.org/github.com/yuin/gluamapper>_ .


Usage

.. code-block:: go

type Role struct {
    Name string
}

type Person struct {
    Name      string
    Age       int
    WorkPlace string
    Role      []*Role
}

L := lua.NewState()
if err := L.DoString(`
person = {
  name = "Michel",
  age  = "31", -- weakly input
  work_place = "San Jose",
  role = {
    {
      name = "Administrator"
    },
    {
      name = "Operator"
    }
  }
}
`); err != nil {
    panic(err)
}
var person Person
if err := gluamapper.Map(L.GetGlobal("person").(*lua.LTable), &person); err != nil {
    panic(err)
}
fmt.Printf("%s %d", person.Name, person.Age)

License

MIT


Author

Yusuke Inuzuka

# Functions

Id is an Option.NameFunc that returns given string as-is.
Map maps the lua table to the given struct pointer with default options.
NewMapper returns a new mapper.
ToGoValue converts the given LValue to a Go object.
ToUpperCamelCase is an Option.NameFunc that converts strings from snake case to upper camel case.

# Structs

Mapper maps a lua table to a Go struct pointer.
Option is a configuration that is used to create a new mapper.