1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

cgen, check, parser: implement first-class option type (#17017)

This commit is contained in:
Felipe Pena
2023-02-18 06:45:01 -03:00
committed by GitHub
parent e066d1d3df
commit 2879c5110c
76 changed files with 1156 additions and 538 deletions

View File

@@ -31,7 +31,13 @@ pub fn decode[T](src string) !T {
}
}
$if field.typ is u8 {
$if field.is_enum {
typ.$(field.name) = if key := res[field.name] {
key.int()
} else {
res[json_name]!.int()
}
} $else $if field.typ is u8 {
typ.$(field.name) = res[json_name]!.u64()
} $else $if field.typ is u16 {
typ.$(field.name) = res[json_name]!.u64()
@@ -62,12 +68,6 @@ pub fn decode[T](src string) !T {
} $else $if field.is_array {
// typ.$(field.name) = res[field.name]!.arr()
} $else $if field.is_struct {
} $else $if field.is_enum {
typ.$(field.name) = if key := res[field.name] {
key.int()
} else {
res[json_name]!.int()
}
} $else $if field.is_alias {
} $else $if field.is_map {
} $else {