v.reflection #
fn get_aliases #
fn get_aliases() []Type
get_aliases returns the registered aliases
fn get_enums #
fn get_enums() []Type
get_enums returns the registered enums
fn get_funcs #
fn get_funcs() []Function
get_functions returns the functions built with V source
fn get_interfaces #
fn get_interfaces() []Interface
get_interfaces returns the registered aliases
fn get_modules #
fn get_modules() []Module
get_modules returns the module name built with V source
fn get_string_by_idx #
fn get_string_by_idx(idx int) string
API module
fn get_structs #
fn get_structs() []Type
fn get_sum_types #
fn get_sum_types() []Type
get_sum_types returns the registered sum types
fn get_type #
fn get_type(idx int) ?Type
fn get_type_symbol #
fn get_type_symbol(idx int) ?TypeSymbol
fn get_type_symbols #
fn get_type_symbols() []TypeSymbol
get_type_symbol returns the registered type symbols
fn get_types #
fn get_types() []Type
get_types returns the registered types
fn type_name #
fn type_name(idx int) string
Type API
fn type_of #
fn type_of[T](val T) Type
type_of returns the type info of the passed value
fn type_symbol_name #
fn type_symbol_name(idx int) string
Type Symbol API
type TypeInfo #
type TypeInfo = Alias
	| Array
	| ArrayFixed
	| Enum
	| Function
	| Interface
	| Map
	| MultiReturn
	| None
	| Struct
	| SumType
fn (VType) has_flag #
fn (t VType) has_flag(flag VTypeFlag) bool
return true if flag is set on t
fn (VType) idx #
fn (t VType) idx() int
fn (VType) str #
fn (t VType) str() string
fn (VType) is_ptr #
fn (t VType) is_ptr() bool
return true if t is a pointer (nr_muls>0)
enum VKind #
enum VKind {
	placeholder
	void
	voidptr
	byteptr
	charptr
	i8
	i16
	i32
	i64
	int
	isize
	u8
	u16
	u32
	u64
	usize
	f32
	f64
	char
	rune
	bool
	none
	string
	array
	array_fixed
	map
	chan
	any
	struct
	generic_inst
	multi_return
	sum_type
	alias
	enum
	function
	interface
	float_literal
	int_literal
	aggregate
	thread
}
enum VLanguage #
enum VLanguage {
	v
	c
	js
	amd64 // aka x86_64
	i386
	arm64 // 64-bit arm
	arm32 // 32-bit arm
	rv64  // 64-bit risc-v
	rv32  // 32-bit risc-v
	wasm32
}
enum VTypeFlag #
enum VTypeFlag {
	option
	result
	variadic
	generic
	shared_f
	atomic_f
}
max of 8
struct Alias #
struct Alias {
pub:
	parent_idx int       // parent type idx
	language   VLanguage // language
}
struct Array #
struct Array {
pub:
	nr_dims   int // nr of dimensions
	elem_type int // elem type idx
}
struct ArrayFixed #
struct ArrayFixed {
pub:
	size      int // array size
	elem_type int // elem type idx
}
struct Enum #
struct Enum {
pub:
	vals    []string // enum values
	is_flag bool     // is flag?
}
struct Function #
struct Function {
pub:
	mod_name     string        // module name
	name         string        // function/method name
	args         []FunctionArg // function/method args
	file_idx     int           // source file name
	line_start   int           // decl start line
	line_end     int           // decl end line
	is_variadic  bool          // is variadic?
	return_typ   VType         // return type idx
	receiver_typ VType         // receiver type idx (is a method)
	is_pub       bool          // is pub?
}
struct FunctionArg #
struct FunctionArg {
pub:
	name   string // argument name
	typ    VType  // argument type idx
	is_mut bool   // is mut?
}
struct Interface #
struct Interface {
pub:
	name       string        // interface name
	methods    []Function    // methods
	fields     []StructField // fields
	is_generic bool          // is generic?
}
struct Map #
struct Map {
pub:
	key_type   VType // key type
	value_type VType // value type
}
struct Module #
struct Module {
pub:
	name string // module name
}
struct MultiReturn #
struct MultiReturn {
pub:
	types []VType // types
}
struct None #
struct None {
pub:
	parent_idx int
}
struct Reflection #
@[heap]
@[minify]
struct Reflection {
pub mut:
	modules      []Module
	funcs        []Function
	types        []Type
	type_symbols []TypeSymbol
	enums        []Enum
	interfaces   []Interface
	strings      map[int]string
}
struct Struct #
struct Struct {
pub:
	parent_idx int           // parent type
	attrs      []string      // struct attrs
	fields     []StructField // fields
}
struct StructField #
struct StructField {
pub:
	name   string   // field name
	typ    VType    // type
	attrs  []string // field attrs
	is_pub bool     // is pub?
	is_mut bool     // is mut?
}
struct SumType #
struct SumType {
pub:
	parent_idx int     // parent type
	variants   []VType // variant type
}
struct Type #
struct Type {
pub:
	name string     // type name
	idx  int        // type idx
	sym  TypeSymbol // type symbol
}
struct TypeSymbol #
struct TypeSymbol {
pub:
	name       string     // symbol name
	mod        string     // mod name
	idx        int        // symbol idx
	parent_idx int        // symbol parent idx
	language   VLanguage  // language
	kind       VKind      // kind
	info       TypeInfo   // info
	methods    []Function // methods
}
- fn get_aliases        
 - fn get_enums        
 - fn get_funcs        
 - fn get_interfaces        
 - fn get_modules        
 - fn get_string_by_idx        
 - fn get_structs        
 - fn get_sum_types        
 - fn get_type        
 - fn get_type_symbol        
 - fn get_type_symbols        
 - fn get_types        
 - fn type_name        
 - fn type_of        
 - fn type_symbol_name        
 - type TypeInfo        
 - type VType
 - enum VKind        
 - enum VLanguage        
 - enum VTypeFlag        
 - struct Alias        
 - struct Array        
 - struct ArrayFixed        
 - struct Enum        
 - struct Function        
 - struct FunctionArg        
 - struct Interface        
 - struct Map        
 - struct Module        
 - struct MultiReturn        
 - struct None        
 - struct Reflection        
 - struct Struct        
 - struct StructField        
 - struct SumType        
 - struct Type        
 - struct TypeSymbol