1package gluamapper
2
3import (
4	"fmt"
5	"github.com/yuin/gopher-lua"
6)
7
8func ExampleMap() {
9	type Role struct {
10		Name string
11	}
12
13	type Person struct {
14		Name      string
15		Age       int
16		WorkPlace string
17		Role      []*Role
18	}
19
20	L := lua.NewState()
21	if err := L.DoString(`
22    person = {
23      name = "Michel",
24      age  = "31", -- weakly input
25      work_place = "San Jose",
26      role = {
27        {
28          name = "Administrator"
29        },
30        {
31          name = "Operator"
32        }
33      }
34    }
35	`); err != nil {
36		panic(err)
37	}
38	var person Person
39	if err := Map(L.GetGlobal("person").(*lua.LTable), &person); err != nil {
40		panic(err)
41	}
42	fmt.Printf("%s %d", person.Name, person.Age)
43	// Output:
44	// Michel 31
45}
46