Files
avorion-docgen/types.go
2024-09-12 09:20:05 +02:00

60 lines
1.1 KiB
Go

package main
import (
"fmt"
"os"
"path/filepath"
"strings"
)
type (
Class struct {
ClassName string
Fields []Field
Methods []Method
Constructors []Constructor
}
Field struct {
Name string
Type string
Comment string
}
Method struct {
Name string
Params []Param
Returns []Return
Comment string
}
Param struct {
Name string
Type string
Comment string
}
Return struct {
Type string
Comment string
}
Constructor struct {
Params []Param
Comment string
}
)
func (c *Class) GetOutFile(root string) (*os.File, error) {
if c.ClassName == "" {
return nil, fmt.Errorf("ClassName is empty")
}
filename := fmt.Sprintf("%s.lua", c.ClassName)
filename = strings.ReplaceAll(filename, " ", "")
filename = strings.ReplaceAll(filename, "-", "")
filename = strings.ReplaceAll(filename, ",", "")
filename = strings.ReplaceAll(filename, ":", "")
filePath := filepath.Join(root, filename)
filePath = filepath.Clean(filePath)
f, err := os.Create(filePath)
if err != nil {
return nil, err
}
return f, nil
}