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