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