MCPcopy Create free account
hub / github.com/RyouZhang/go-lua / pushToLua

Function pushToLua

wapper.go:79–144  ·  view source on GitHub ↗
(L *C.struct_lua_State, args ...interface{})

Source from the content-addressed store, hash-verified

77}
78
79func pushToLua(L *C.struct_lua_State, args ...interface{}) {
80 for _, arg := range args {
81 switch arg.(type) {
82 case string:
83 {
84 C.glua_pushlstring(L, C.CString(arg.(string)), C.size_t(len([]byte(arg.(string)))))
85 }
86 case float64:
87 C.glua_pushnumber(L, C.lua_Number(arg.(float64)))
88 case float32:
89 C.glua_pushnumber(L, C.lua_Number(arg.(float32)))
90 case uint64:
91 C.glua_pushnumber(L, C.lua_Number(arg.(uint64)))
92 case int64:
93 C.glua_pushnumber(L, C.lua_Number(arg.(int64)))
94 case uint32:
95 C.glua_pushnumber(L, C.lua_Number(arg.(uint32)))
96 case int32:
97 C.glua_pushnumber(L, C.lua_Number(arg.(int32)))
98 case uint16:
99 C.glua_pushnumber(L, C.lua_Number(arg.(uint16)))
100 case int16:
101 C.glua_pushnumber(L, C.lua_Number(arg.(int16)))
102 case uint8:
103 C.glua_pushnumber(L, C.lua_Number(arg.(uint8)))
104 case int8:
105 C.glua_pushnumber(L, C.lua_Number(arg.(int8)))
106 case uint:
107 C.glua_pushnumber(L, C.lua_Number(arg.(uint)))
108 case int:
109 C.glua_pushnumber(L, C.lua_Number(arg.(int)))
110 case bool:
111 if arg.(bool) {
112 C.glua_pushboolean(L, C.int(1))
113 } else {
114 C.glua_pushboolean(L, C.int(0))
115 }
116 case error:
117 {
118 str := arg.(error).Error()
119 C.glua_pushlstring(L, C.CString(str), C.size_t(len([]byte(str))))
120 }
121 case []byte:
122 {
123 C.glua_pushlstring(L, C.CString(string(arg.([]byte))), C.size_t(len(arg.([]byte))))
124 }
125 case map[string]interface{}:
126 {
127 pushMapToLua(L, arg.(map[string]interface{}))
128 }
129 case []interface{}:
130 {
131 pushArrayToLua(L, arg.([]interface{}))
132 }
133 case nil:
134 {
135 C.glua_pushnil(L)
136 }

Callers 5

pushArrayToLuaFunction · 0.85
pushMapToLuaFunction · 0.85
sync_extern_methodFunction · 0.85
runMethod · 0.85
resumeMethod · 0.85

Calls 3

pushMapToLuaFunction · 0.85
pushArrayToLuaFunction · 0.85
pushDummyFunction · 0.85

Tested by

no test coverage detected