code: func (mapper *Mapper) Map(tbl *lua.LTable, st interface{}) error {
  	opt := mapper.Option
  	mp, ok := ToGoValue(tbl, opt).(map[interface{}]interface{})
  	if !ok {
  		return errors.New("arguments #1 must be a table, but got an array")
  	}
  	config := &mapstructure.DecoderConfig{
  		WeaklyTypedInput: true,
  		Result:           st,
  		TagName:          opt.TagName,
  		ErrorUnused:      opt.ErrorUnused,
  	}
  	decoder, err := mapstructure.NewDecoder(config)
  	if err != nil {
  		return err
  	}
  	return decoder.Decode(mp)
  }
docs: // Map maps the lua table to the given struct pointer.