private long ConvertToInt(int index) { if (CApi.lua_isinteger(lua_State, index) == 0) { throw new LuaInvalidCastException($"Index {index} doesn't contain a integer value"); } var convertedValue = CApi.lua_tointegerx(lua_State, index, out int isNum); if (isNum == 0) { throw new LuaInvalidCastException($"Failed to convert index {index} to double. Index contains {ConvertToString(index)}"); } return(convertedValue); }