extensionapiparser

package
v0.3.18 Latest Latest
Warning

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

Go to latest
Published: Apr 20, 2024 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Argument

type Argument struct {
	Name         string `json:"name"`
	Type         string `json:"type"`
	DefaultValue string `json:"default_value"`
	Meta         string `json:"meta"`
}

func (Argument) HasDestroy

func (a Argument) HasDestroy() bool

type BuiltInClassConstant

type BuiltInClassConstant struct {
	Name  string `json:"name"`
	Type  string `json:"type"`
	Value string `json:"value"`
}

type BuiltInClassMethod

type BuiltInClassMethod struct {
	Name              string     `json:"name"`
	ReturnType        string     `json:"return_type"`
	IsConst           bool       `json:"is_const"`
	IsVararg          bool       `json:"is_vararg"`
	IsStatic          bool       `json:"is_static"`
	Hash              int        `json:"hash"`
	HashCompatibility []int      `json:"hash_compatibility"`
	Arguments         []Argument `json:"arguments"`
}

type BuiltinClass

type BuiltinClass struct {
	Name               string                 `json:"name"`
	IndexingReturnType string                 `json:"indexing_return_type"`
	IsKeyed            bool                   `json:"is_keyed"`
	Members            []ClassMember          `json:"members"`
	Constants          []BuiltInClassConstant `json:"constants"`
	Enums              []Enum                 `json:"enums"`
	Operators          []ClassOperator        `json:"operators"`
	Methods            []BuiltInClassMethod   `json:"methods"`
	Constructors       []ClassConstructor     `json:"constructors"`
	HasDestructor      bool                   `json:"has_destructor"`
}

func (BuiltinClass) FilteredConstructors

func (a BuiltinClass) FilteredConstructors() []ClassConstructor

func (BuiltinClass) FilteredMethods

func (a BuiltinClass) FilteredMethods() []BuiltInClassMethod

type BuiltinClassMemberOffset

type BuiltinClassMemberOffset struct {
	BuildConfiguration string                          `json:"build_configuration"`
	Classes            []BuiltinClassMemberOffsetClass `json:"classes"`
}

type BuiltinClassMemberOffsetClass

type BuiltinClassMemberOffsetClass struct {
	Name    string                                `json:"name"`
	Members []BuiltinClassMemberOffsetClassMember `json:"members"`
}

type BuiltinClassMemberOffsetClassMember

type BuiltinClassMemberOffsetClassMember struct {
	Member string `json:"member"`
	Offset int    `json:"offset"`
	Meta   string `json:"meta"`
}

type BuiltinClassSize

type BuiltinClassSize struct {
	BuildConfiguration string                   `json:"build_configuration"`
	Sizes              []BuiltinClassSizeDetail `json:"sizes"`
}

func (BuiltinClassSize) FindSize

func (sz BuiltinClassSize) FindSize(name string) int

type BuiltinClassSizeDetail

type BuiltinClassSizeDetail struct {
	Name string `json:"name"`
	Size int    `json:"size"`
}

type Class

type Class struct {
	Name           string          `json:"name"`
	IsRefcounted   bool            `json:"is_refcounted"`
	IsInstantiable bool            `json:"is_instantiable"`
	Inherits       string          `json:"inherits"`
	ApiType        string          `json:"api_type"`
	Constants      []ClassConstant `json:"constants"`
	Enums          []Enum          `json:"enums"`
	Methods        []ClassMethod   `json:"methods"`
	Signals        []ClassSignal   `json:"signals"`
	Properties     []ClassProperty `json:"properties"`
}

func (Class) FilteredEnums

func (a Class) FilteredEnums() []Enum

type ClassConstant

type ClassConstant struct {
	Name  string `json:"name"`
	Type  string `json:"type"`
	Value int    `json:"value"`
}

type ClassConstructor

type ClassConstructor struct {
	Index     int        `json:"index"`
	Arguments []Argument `json:"arguments"`
	Name      string     `json:"name"`
}

type ClassMember

type ClassMember struct {
	Name string `json:"name"`
	Type string `json:"type"`
}

type ClassMethod

type ClassMethod struct {
	Name              string                 `json:"name"`
	ReturnValue       ClassMethodReturnValue `json:"return_value"`
	IsConst           bool                   `json:"is_const"`
	IsVararg          bool                   `json:"is_vararg"`
	IsVirtual         bool                   `json:"is_virtual"`
	IsStatic          bool                   `json:"is_static"`
	Hash              int                    `json:"hash"`
	HashCompatibility []int                  `json:"hash_compatibility"`
	Arguments         []Argument             `json:"arguments"`
}

type ClassMethodReturnValue

type ClassMethodReturnValue struct {
	Type string `json:"type"`
	Meta string `json:"meta"`
}

type ClassOperator

type ClassOperator struct {
	Name       string `json:"name"`
	RightType  string `json:"right_type"`
	ReturnType string `json:"return_type"`
}

type ClassProperty

type ClassProperty struct {
	Type   string `json:"type"`
	Name   string `json:"name"`
	Setter string `json:"setter"`
	Getter string `json:"getter"`
	Index  int    `json:"index"`
}

type ClassSignal

type ClassSignal struct {
	Name      string     `json:"name"`
	Arguments []Argument `json:"arguments"`
}

type Enum

type Enum struct {
	Name       string      `json:"name"`
	IsBitfield *bool       `json:"is_bitfield"`
	Values     []EnumValue `json:"values"`
}

func (Enum) GoName

func (e Enum) GoName() string

type EnumValue

type EnumValue struct {
	Name  string `json:"name"`
	Value int    `json:"value"`
}

type ExtensionApi

type ExtensionApi struct {
	Header                    Header                     `json:"header"`
	BuiltinClassSizes         []BuiltinClassSize         `json:"builtin_class_sizes"`
	BuiltinClassMemberOffsets []BuiltinClassMemberOffset `json:"builtin_class_member_offsets"`
	GlobalConstants           []GlobalConstant           `json:"global_constants"`
	GlobalEnums               []Enum                     `json:"global_enums"`
	UtilityFunctions          []UtilityFunction          `json:"utility_functions"`
	BuiltinClasses            []BuiltinClass             `json:"builtin_classes"`
	Classes                   []Class                    `json:"classes"`
	Singletons                []Singleton                `json:"singletons"`
	NativeStructures          []NativeStructure          `json:"native_structures"`
	BuildConfig               string                     `json:"-"`
}

func GenerateExtensionAPI added in v0.3.12

func GenerateExtensionAPI(projectPath, buildConfig string) (ExtensionApi, error)

func ParseExtensionApiJson

func ParseExtensionApiJson(projectPath string) (ExtensionApi, error)

ParseGdextensionApiJson parses gdextension_api.json into a APIJson struct.

func (ExtensionApi) ContainsClassName

func (a ExtensionApi) ContainsClassName(name string) bool

func (ExtensionApi) FilteredBuiltinClasses

func (a ExtensionApi) FilteredBuiltinClasses() []BuiltinClass

func (ExtensionApi) FilteredClasses

func (a ExtensionApi) FilteredClasses() []Class

func (ExtensionApi) FilteredRefcountedClasses

func (a ExtensionApi) FilteredRefcountedClasses() []Class

func (ExtensionApi) Float64BuiltinClassSize

func (a ExtensionApi) Float64BuiltinClassSize() *BuiltinClassSize

func (ExtensionApi) HasBuildConfiguration

func (a ExtensionApi) HasBuildConfiguration(buildConfig string) bool

func (ExtensionApi) IsRefcountedClassName

func (a ExtensionApi) IsRefcountedClassName(name string) bool

type GlobalConstant

type GlobalConstant struct {
	Name  string `json:"name"`
	Value int    `json:"value"`
}
type Header struct {
	VersionMajor    int    `json:"version_major"`
	VersionMinor    int    `json:"version_minor"`
	VersionPatch    int    `json:"version_patch"`
	VersionStatus   string `json:"version_status"`
	VersionBuild    string `json:"version_build"`
	VersionFullName string `json:"version_full_name"`
}

type NativeStructure

type NativeStructure struct {
	Name   string `json:"name"`
	Format string `json:"format"`
}

type Singleton

type Singleton struct {
	Name string `json:"name"`
	Type string `json:"type"`
}

type UtilityFunction

type UtilityFunction struct {
	Name              string     `json:"name"`
	ReturnType        string     `json:"return_type"`
	Category          string     `json:"category"`
	IsVararg          bool       `json:"is_vararg"`
	Hash              int        `json:"hash"`
	HashCompatibility []int      `json:"hash_compatibility"`
	Arguments         []Argument `json:"arguments"`
}

Jump to

Keyboard shortcuts

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