pointers

package
v0.0.19 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 26, 2024 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

Code generated by gobindlua; DO NOT EDIT.

Code generated by gobindlua; DO NOT EDIT.

Example
package main

import (
	"fmt"
	"log"

	"github.com/ChrisTrenkamp/gobindlua"
	lua "github.com/yuin/gopher-lua"
)

const script = `
local Sub = require "Sub"

--[[ gobindlua will even work with pointers. ]]
s.A = {
	["a"]={
		["b"]={
			"c"
		}
	}
}
s.B = Sub.NewSub("d")
s.C = Sub.NewSub("e")
s.D = {
	{
		1,2
	},
	{
		3,4
	}
}
s.E = {
	{
		Sub.NewSub("f"),Sub.NewSub("g")
	},
	{
		Sub.NewSub("h"),Sub.NewSub("i")
	}
}
s.F = {
	{
		[Sub.NewSub("j")]=5
	},
	{
		[Sub.NewSub("k")]=6
	}
}
`

func main() {
	L := lua.NewState()
	defer L.Close()

	gobindlua.Register(L, &Sub{}, &SomeStruct{})

	someStruct := SomeStruct{}
	L.SetGlobal("s", gobindlua.NewUserData(&someStruct, L))

	if err := L.DoString(script); err != nil {
		log.Fatal(err)
	}

	fmt.Println("A={")
	for k1, v1 := range *someStruct.A {
		fmt.Printf("\t%s={\n", *k1)
		for k2, v2 := range *v1 {
			fmt.Printf("\t\t%s={\n", k2)
			for _, v3 := range *v2 {
				fmt.Printf("\t\t\t%s\n", v3)
			}
			fmt.Println("\t\t}")
		}
		fmt.Println("\t}")
	}
	fmt.Println("}")
	fmt.Printf("B=%s\n", *someStruct.B.Str)
	fmt.Printf("C=%s\n", *someStruct.C.Str)

	fmt.Println("D={")
	for _, v1 := range *someStruct.D {
		fmt.Println("\t{")
		for _, v2 := range *v1 {
			fmt.Printf("\t\t%d\n", *v2)
		}
		fmt.Println("\t}")
	}
	fmt.Println("}")

	fmt.Println("E={")
	for _, v1 := range *someStruct.E {
		fmt.Println("\t{")
		for _, v2 := range v1 {
			fmt.Printf("\t\t%s\n", *v2.Str)
		}
		fmt.Println("\t}")
	}
	fmt.Println("}")

	fmt.Println("F={")
	for _, v1 := range someStruct.F {
		fmt.Println("\t{")
		for k2, v2 := range v1 {
			fmt.Printf("\t\t%s:%d\n", *k2.Str, *v2)
		}
		fmt.Println("\t}")
	}
	fmt.Println("}")

}
Output:

A={
	a={
		b={
			c
		}
	}
}
B=d
C=e
D={
	{
		1
		2
	}
	{
		3
		4
	}
}
E={
	{
		f
		g
	}
	{
		h
		i
	}
}
F={
	{
		j:5
	}
	{
		k:6
	}
}

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type SomeStruct

type SomeStruct struct {
	A *map[*string]*map[string]*[]string
	B *Sub
	C Sub
	D *[]*[]*int
	E *[][]*Sub
	F []map[*Sub]*int
}

func (*SomeStruct) LuaMetatableType

func (r *SomeStruct) LuaMetatableType() string

func (*SomeStruct) LuaModuleLoader added in v0.0.9

func (goType *SomeStruct) LuaModuleLoader(L *lua.LState) int

func (*SomeStruct) LuaModuleName added in v0.0.9

func (goType *SomeStruct) LuaModuleName() string

func (*SomeStruct) LuaRegisterGlobalMetatable added in v0.0.9

func (goType *SomeStruct) LuaRegisterGlobalMetatable(L *lua.LState)

type Sub

type Sub struct {
	Str *string
}

func NewSub

func NewSub(str *string) *Sub

func (*Sub) LuaMetatableType

func (r *Sub) LuaMetatableType() string

func (*Sub) LuaModuleLoader added in v0.0.9

func (goType *Sub) LuaModuleLoader(L *lua.LState) int

func (*Sub) LuaModuleName added in v0.0.9

func (goType *Sub) LuaModuleName() string

func (*Sub) LuaRegisterGlobalMetatable added in v0.0.9

func (goType *Sub) LuaRegisterGlobalMetatable(L *lua.LState)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL