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

all: change optional to option (#16914)

This commit is contained in:
JalonSolov
2023-01-09 01:36:45 -05:00
committed by GitHub
parent 241109516f
commit 90941b3b1f
255 changed files with 1428 additions and 1428 deletions

View File

@@ -31,7 +31,7 @@ mut:
val T
}
struct StructTypeOptional[T] {
struct StructTypeOption[T] {
mut:
val ?T
}

View File

@@ -1,50 +1,51 @@
import json
fn test_optional_types() {
assert json.decode[StructTypeOptional[string]]('{}')!.val == none
assert json.decode[StructTypeOptional[string]]('{"val": ""}')!.val == ''
assert json.decode[StructTypeOptional[string]]('{"val": "0"}')!.val == '0'
assert json.decode[StructTypeOptional[string]]('{"val": "1"}')!.val == '1'
assert json.decode[StructTypeOptional[string]]('{"val": "2"}')!.val == '2'
assert json.decode[StructTypeOptional[string]]('{"val": 0}')!.val == '0'
assert json.decode[StructTypeOptional[string]]('{"val": 1}')!.val == '1'
assert json.decode[StructTypeOptional[string]]('{"val": 2}')!.val == '2'
assert json.decode[StructTypeOptional[string]]('{"val": "true"}')!.val == 'true'
assert json.decode[StructTypeOptional[string]]('{"val": "false"}')!.val == 'false'
assert json.decode[StructTypeOptional[string]]('{"val": true}')!.val == 'true'
assert json.decode[StructTypeOptional[string]]('{"val": false}')!.val == 'false'
fn test_option_types() {
assert json.decode[StructTypeOption[string]]('{}')!.val == none
assert json.decode[StructTypeOption[string]]('{"val": ""}')!.val == ''
assert json.decode[StructTypeOption[string]]('{"val": "0"}')!.val == '0'
assert json.decode[StructTypeOption[string]]('{"val": "1"}')!.val == '1'
assert json.decode[StructTypeOption[string]]('{"val": "2"}')!.val == '2'
assert json.decode[StructTypeOption[string]]('{"val": 0}')!.val == '0'
assert json.decode[StructTypeOption[string]]('{"val": 1}')!.val == '1'
assert json.decode[StructTypeOption[string]]('{"val": 2}')!.val == '2'
assert json.decode[StructTypeOption[string]]('{"val": "true"}')!.val == 'true'
assert json.decode[StructTypeOption[string]]('{"val": "false"}')!.val == 'false'
assert json.decode[StructTypeOption[string]]('{"val": true}')!.val == 'true'
assert json.decode[StructTypeOption[string]]('{"val": false}')!.val == 'false'
assert json.decode[StructTypeOptional[bool]]('{}')!.val == none
assert json.decode[StructTypeOptional[bool]]('{"val": ""}')!.val == false
assert json.decode[StructTypeOptional[bool]]('{"val": "0"}')!.val == false
assert json.decode[StructTypeOptional[bool]]('{"val": "1"}')!.val == true
assert json.decode[StructTypeOptional[bool]]('{"val": "2"}')!.val == true
assert json.decode[StructTypeOptional[bool]]('{"val": 0}')!.val == false
assert json.decode[StructTypeOptional[bool]]('{"val": 1}')!.val == true
assert json.decode[StructTypeOptional[bool]]('{"val": 2}')!.val == true
assert json.decode[StructTypeOptional[bool]]('{"val": "true"}')!.val == true
assert json.decode[StructTypeOptional[bool]]('{"val": "false"}')!.val == false
assert json.decode[StructTypeOptional[bool]]('{"val": true}')!.val == true
assert json.decode[StructTypeOptional[bool]]('{"val": false}')!.val == false
assert json.decode[StructTypeOption[bool]]('{}')!.val == none
assert json.decode[StructTypeOption[bool]]('{"val": ""}')!.val == false
assert json.decode[StructTypeOption[bool]]('{"val": "0"}')!.val == false
assert json.decode[StructTypeOption[bool]]('{"val": "1"}')!.val == true
assert json.decode[StructTypeOption[bool]]('{"val": "2"}')!.val == true
assert json.decode[StructTypeOption[bool]]('{"val": 0}')!.val == false
assert json.decode[StructTypeOption[bool]]('{"val": 1}')!.val == true
assert json.decode[StructTypeOption[bool]]('{"val": 2}')!.val == true
assert json.decode[StructTypeOption[bool]]('{"val": "true"}')!.val == true
assert json.decode[StructTypeOption[bool]]('{"val": "false"}')!.val == false
assert json.decode[StructTypeOption[bool]]('{"val": true}')!.val == true
assert json.decode[StructTypeOption[bool]]('{"val": false}')!.val == false
assert json.decode[StructTypeOptional[int]]('{}')!.val == none
assert json.decode[StructTypeOptional[int]]('{"val": ""}')!.val == 0
assert json.decode[StructTypeOptional[int]]('{"val": "0"}')!.val == 0
assert json.decode[StructTypeOptional[int]]('{"val": "1"}')!.val == 1
assert json.decode[StructTypeOptional[int]]('{"val": "2"}')!.val == 2
assert json.decode[StructTypeOptional[int]]('{"val": 0}')!.val == 0
assert json.decode[StructTypeOptional[int]]('{"val": 1}')!.val == 1
assert json.decode[StructTypeOptional[int]]('{"val": 2}')!.val == 2
assert json.decode[StructTypeOptional[int]]('{"val": "true"}')!.val == 1
assert json.decode[StructTypeOptional[int]]('{"val": "false"}')!.val == 0
assert json.decode[StructTypeOptional[int]]('{"val": true}')!.val == 1
assert json.decode[StructTypeOptional[int]]('{"val": false}')!.val == 0
assert json.decode[StructTypeOption[int]]('{}')!.val == none
assert json.decode[StructTypeOption[int]]('{"val": ""}')!.val == 0
assert json.decode[StructTypeOption[int]]('{"val": "0"}')!.val == 0
assert json.decode[StructTypeOption[int]]('{"val": "1"}')!.val == 1
assert json.decode[StructTypeOption[int]]('{"val": "2"}')!.val == 2
assert json.decode[StructTypeOption[int]]('{"val": 0}')!.val == 0
assert json.decode[StructTypeOption[int]]('{"val": 1}')!.val == 1
assert json.decode[StructTypeOption[int]]('{"val": 2}')!.val == 2
assert json.decode[StructTypeOption[int]]('{"val": "true"}')!.val == 1
assert json.decode[StructTypeOption[int]]('{"val": "false"}')!.val == 0
assert json.decode[StructTypeOption[int]]('{"val": true}')!.val == 1
assert json.decode[StructTypeOption[int]]('{"val": false}')!.val == 0
}
fn test_array() {
// TODO
}
fn test_optional_array() {
fn test_option_array() {
// TODO
}
@@ -52,7 +53,7 @@ fn test_alias() {
// TODO
}
fn test_optional_alias() {
fn test_option_alias() {
// TODO
}
@@ -60,7 +61,7 @@ fn test_sumtypes() {
// TODO
}
fn test_optional_sumtypes() {
fn test_option_sumtypes() {
// TODO
}
@@ -74,4 +75,4 @@ fn test_caos() {
fn test_caos_array() {
// TODO
}
}

View File

@@ -31,7 +31,7 @@ mut:
val T
}
struct StructTypeOptional[T] {
struct StructTypeOption[T] {
mut:
val ?T
}
@@ -64,25 +64,25 @@ fn test_types() {
}) == '{"val":{"val":1}}'
}
fn test_optional_types() {
assert json.encode(StructTypeOptional[string]{ val: none }) == '{}'
assert json.encode(StructTypeOptional[string]{}) == '{}'
assert json.encode(StructTypeOptional[string]{ val: '' }) == '{"val":""}'
assert json.encode(StructTypeOptional[string]{ val: 'a' }) == '{"val":"a"}'
fn test_option_types() {
assert json.encode(StructTypeOption[string]{ val: none }) == '{}'
assert json.encode(StructTypeOption[string]{}) == '{}'
assert json.encode(StructTypeOption[string]{ val: '' }) == '{"val":""}'
assert json.encode(StructTypeOption[string]{ val: 'a' }) == '{"val":"a"}'
assert json.encode(StructTypeOptional[bool]{ val: none }) == '{}'
assert json.encode(StructTypeOptional[bool]{}) == '{}'
assert json.encode(StructTypeOptional[bool]{ val: false }) == '{"val":false}'
assert json.encode(StructTypeOptional[bool]{ val: true }) == '{"val":true}'
assert json.encode(StructTypeOption[bool]{ val: none }) == '{}'
assert json.encode(StructTypeOption[bool]{}) == '{}'
assert json.encode(StructTypeOption[bool]{ val: false }) == '{"val":false}'
assert json.encode(StructTypeOption[bool]{ val: true }) == '{"val":true}'
assert json.encode(StructTypeOptional[int]{ val: none }) == '{}'
assert json.encode(StructTypeOptional[int]{}) == '{}'
assert json.encode(StructTypeOptional[int]{ val: 0 }) == '{"val":0}'
assert json.encode(StructTypeOptional[int]{ val: 1 }) == '{"val":1}'
assert json.encode(StructTypeOption[int]{ val: none }) == '{}'
assert json.encode(StructTypeOption[int]{}) == '{}'
assert json.encode(StructTypeOption[int]{ val: 0 }) == '{"val":0}'
assert json.encode(StructTypeOption[int]{ val: 1 }) == '{"val":1}'
assert json.encode(StructTypeOptional[time.Time]{}) == '{}'
assert json.encode(StructTypeOptional[time.Time]{ val: time.Time{} }) == '{"val":"0000-00-00T00:00:00.000Z"}'
assert json.encode(StructTypeOptional[time.Time]{ val: fixed_time }) == '{"val":"2022-03-11T13:54:25.000Z"}'
assert json.encode(StructTypeOption[time.Time]{}) == '{}'
assert json.encode(StructTypeOption[time.Time]{ val: time.Time{} }) == '{"val":"0000-00-00T00:00:00.000Z"}'
assert json.encode(StructTypeOption[time.Time]{ val: fixed_time }) == '{"val":"2022-03-11T13:54:25.000Z"}'
}
fn test_array() {
@@ -135,54 +135,54 @@ fn test_array() {
assert json.encode(StructType[[]StructType[bool]]{ val: array_of_struct }) == '{"val":[{"val":true},{"val":false}]}'
}
fn test_optional_array() {
assert json.encode(StructTypeOptional[[]string]{}) == '{}'
assert json.encode(StructTypeOptional[[]string]{ val: [] }) == '{"val":[]}'
assert json.encode(StructTypeOptional[[]string]{ val: ['0'] }) == '{"val":["0"]}'
assert json.encode(StructTypeOptional[[]string]{ val: ['1'] }) == '{"val":["1"]}'
fn test_option_array() {
assert json.encode(StructTypeOption[[]string]{}) == '{}'
assert json.encode(StructTypeOption[[]string]{ val: [] }) == '{"val":[]}'
assert json.encode(StructTypeOption[[]string]{ val: ['0'] }) == '{"val":["0"]}'
assert json.encode(StructTypeOption[[]string]{ val: ['1'] }) == '{"val":["1"]}'
assert json.encode(StructTypeOptional[[]int]{}) == '{}'
assert json.encode(StructTypeOptional[[]int]{ val: [] }) == '{"val":[]}'
assert json.encode(StructTypeOptional[[]int]{ val: [0] }) == '{"val":[0]}'
assert json.encode(StructTypeOptional[[]int]{ val: [1] }) == '{"val":[1]}'
assert json.encode(StructTypeOptional[[]int]{ val: [0, 1, 0, 2, 3, 2, 5, 1] }) == '{"val":[0,1,0,2,3,2,5,1]}'
assert json.encode(StructTypeOption[[]int]{}) == '{}'
assert json.encode(StructTypeOption[[]int]{ val: [] }) == '{"val":[]}'
assert json.encode(StructTypeOption[[]int]{ val: [0] }) == '{"val":[0]}'
assert json.encode(StructTypeOption[[]int]{ val: [1] }) == '{"val":[1]}'
assert json.encode(StructTypeOption[[]int]{ val: [0, 1, 0, 2, 3, 2, 5, 1] }) == '{"val":[0,1,0,2,3,2,5,1]}'
assert json.encode(StructTypeOptional[[]byte]{}) == '{}'
assert json.encode(StructTypeOptional[[]byte]{ val: [] }) == '{"val":[]}'
assert json.encode(StructTypeOptional[[]byte]{ val: [byte(0)] }) == '{"val":[0]}'
assert json.encode(StructTypeOptional[[]byte]{ val: [byte(1)] }) == '{"val":[1]}'
assert json.encode(StructTypeOptional[[]byte]{ val: [byte(0), 1, 0, 2, 3, 2, 5, 1] }) == '{"val":[0,1,0,2,3,2,5,1]}'
assert json.encode(StructTypeOption[[]byte]{}) == '{}'
assert json.encode(StructTypeOption[[]byte]{ val: [] }) == '{"val":[]}'
assert json.encode(StructTypeOption[[]byte]{ val: [byte(0)] }) == '{"val":[0]}'
assert json.encode(StructTypeOption[[]byte]{ val: [byte(1)] }) == '{"val":[1]}'
assert json.encode(StructTypeOption[[]byte]{ val: [byte(0), 1, 0, 2, 3, 2, 5, 1] }) == '{"val":[0,1,0,2,3,2,5,1]}'
assert json.encode(StructTypeOptional[[]i64]{}) == '{}'
assert json.encode(StructTypeOptional[[]i64]{ val: [] }) == '{"val":[]}'
assert json.encode(StructTypeOptional[[]i64]{ val: [i64(0)] }) == '{"val":[0]}'
assert json.encode(StructTypeOptional[[]i64]{ val: [i64(1)] }) == '{"val":[1]}'
assert json.encode(StructTypeOptional[[]i64]{ val: [i64(0), 1, 0, 2, 3, 2, 5, 1] }) == '{"val":[0,1,0,2,3,2,5,1]}'
assert json.encode(StructTypeOption[[]i64]{}) == '{}'
assert json.encode(StructTypeOption[[]i64]{ val: [] }) == '{"val":[]}'
assert json.encode(StructTypeOption[[]i64]{ val: [i64(0)] }) == '{"val":[0]}'
assert json.encode(StructTypeOption[[]i64]{ val: [i64(1)] }) == '{"val":[1]}'
assert json.encode(StructTypeOption[[]i64]{ val: [i64(0), 1, 0, 2, 3, 2, 5, 1] }) == '{"val":[0,1,0,2,3,2,5,1]}'
assert json.encode(StructTypeOptional[[]u64]{}) == '{}'
assert json.encode(StructTypeOptional[[]u64]{ val: [] }) == '{"val":[]}'
assert json.encode(StructTypeOptional[[]u64]{ val: [u64(0)] }) == '{"val":[0]}'
assert json.encode(StructTypeOptional[[]u64]{ val: [u64(1)] }) == '{"val":[1]}'
assert json.encode(StructTypeOptional[[]u64]{ val: [u64(0), 1, 0, 2, 3, 2, 5, 1] }) == '{"val":[0,1,0,2,3,2,5,1]}'
assert json.encode(StructTypeOption[[]u64]{}) == '{}'
assert json.encode(StructTypeOption[[]u64]{ val: [] }) == '{"val":[]}'
assert json.encode(StructTypeOption[[]u64]{ val: [u64(0)] }) == '{"val":[0]}'
assert json.encode(StructTypeOption[[]u64]{ val: [u64(1)] }) == '{"val":[1]}'
assert json.encode(StructTypeOption[[]u64]{ val: [u64(0), 1, 0, 2, 3, 2, 5, 1] }) == '{"val":[0,1,0,2,3,2,5,1]}'
assert json.encode(StructTypeOptional[[]f64]{}) == '{}'
assert json.encode(StructTypeOptional[[]f64]{ val: [] }) == '{"val":[]}'
assert json.encode(StructTypeOptional[[]f64]{ val: [f64(0)] }) == '{"val":[0.0]}'
assert json.encode(StructTypeOptional[[]f64]{ val: [f64(1)] }) == '{"val":[1.0]}'
assert json.encode(StructTypeOptional[[]f64]{ val: [f64(0), 1, 0, 2, 3, 2, 5, 1] }) == '{"val":[0.0,1.0,0.0,2.0,3.0,2.0,5.0,1.0]}'
assert json.encode(StructTypeOption[[]f64]{}) == '{}'
assert json.encode(StructTypeOption[[]f64]{ val: [] }) == '{"val":[]}'
assert json.encode(StructTypeOption[[]f64]{ val: [f64(0)] }) == '{"val":[0.0]}'
assert json.encode(StructTypeOption[[]f64]{ val: [f64(1)] }) == '{"val":[1.0]}'
assert json.encode(StructTypeOption[[]f64]{ val: [f64(0), 1, 0, 2, 3, 2, 5, 1] }) == '{"val":[0.0,1.0,0.0,2.0,3.0,2.0,5.0,1.0]}'
assert json.encode(StructTypeOptional[[]bool]{}) == '{}'
assert json.encode(StructTypeOptional[[]bool]{ val: [] }) == '{"val":[]}'
assert json.encode(StructTypeOptional[[]bool]{ val: [true] }) == '{"val":[true]}'
assert json.encode(StructTypeOptional[[]bool]{ val: [false] }) == '{"val":[false]}'
assert json.encode(StructTypeOptional[[]bool]{ val: [false, true, false] }) == '{"val":[false,true,false]}'
assert json.encode(StructTypeOption[[]bool]{}) == '{}'
assert json.encode(StructTypeOption[[]bool]{ val: [] }) == '{"val":[]}'
assert json.encode(StructTypeOption[[]bool]{ val: [true] }) == '{"val":[true]}'
assert json.encode(StructTypeOption[[]bool]{ val: [false] }) == '{"val":[false]}'
assert json.encode(StructTypeOption[[]bool]{ val: [false, true, false] }) == '{"val":[false,true,false]}'
array_of_struct := [StructType[bool]{
val: true
}, StructType[bool]{
val: false
}]
assert json.encode(StructTypeOptional[[]StructType[bool]]{ val: array_of_struct }) == '{"val":[{"val":true},{"val":false}]}'
assert json.encode(StructTypeOption[[]StructType[bool]]{ val: array_of_struct }) == '{"val":[{"val":true},{"val":false}]}'
}
fn test_alias() {

View File

@@ -11,7 +11,7 @@ mut:
val T
}
struct StructTypeOptional[T] {
struct StructTypeOption[T] {
mut:
val ?T
}
@@ -21,16 +21,16 @@ mut:
val &T
}
fn test_optional_alias() {
assert json.encode(StructTypeOptional[BoolAlias]{ val: none }) == '{}'
assert json.encode(StructTypeOptional[BoolAlias]{}) == '{"val":false}'
assert json.encode(StructTypeOptional[BoolAlias]{ val: false }) == '{"val":false}'
assert json.encode(StructTypeOptional[BoolAlias]{ val: true }) == '{"val":true}'
fn test_option_alias() {
assert json.encode(StructTypeOption[BoolAlias]{ val: none }) == '{}'
assert json.encode(StructTypeOption[BoolAlias]{}) == '{"val":false}'
assert json.encode(StructTypeOption[BoolAlias]{ val: false }) == '{"val":false}'
assert json.encode(StructTypeOption[BoolAlias]{ val: true }) == '{"val":true}'
assert json.encode(StructTypeOptional[IntAlias]{ val: none }) == '{}'
assert json.encode(StructTypeOptional[IntAlias]{}) == '{"val":0}'
assert json.encode(StructTypeOptional[IntAlias]{ val: 0 }) == '{"val":0}'
assert json.encode(StructTypeOptional[IntAlias]{ val: 1 }) == '{"val":1}'
assert json.encode(StructTypeOption[IntAlias]{ val: none }) == '{}'
assert json.encode(StructTypeOption[IntAlias]{}) == '{"val":0}'
assert json.encode(StructTypeOption[IntAlias]{ val: 0 }) == '{"val":0}'
assert json.encode(StructTypeOption[IntAlias]{ val: 1 }) == '{"val":1}'
}
fn test_sumtypes() {
@@ -46,17 +46,17 @@ fn test_sumtypes() {
assert json.encode(StructType[SumTypes]{ val: 1 }) == '{"val":1}'
}
fn test_optional_sumtypes() {
assert json.encode(StructTypeOptional[SumTypes]{}) == '{}' // REVIEW
fn test_option_sumtypes() {
assert json.encode(StructTypeOption[SumTypes]{}) == '{}' // REVIEW
assert json.encode(StructTypeOptional[SumTypes]{ val: '' }) == '{"val":""}'
assert json.encode(StructTypeOptional[SumTypes]{ val: 'a' }) == '{"val":"a"}'
assert json.encode(StructTypeOption[SumTypes]{ val: '' }) == '{"val":""}'
assert json.encode(StructTypeOption[SumTypes]{ val: 'a' }) == '{"val":"a"}'
assert json.encode(StructTypeOptional[SumTypes]{ val: false }) == '{"val":false}'
assert json.encode(StructTypeOptional[SumTypes]{ val: true }) == '{"val":true}'
assert json.encode(StructTypeOption[SumTypes]{ val: false }) == '{"val":false}'
assert json.encode(StructTypeOption[SumTypes]{ val: true }) == '{"val":true}'
assert json.encode(StructTypeOptional[SumTypes]{ val: 0 }) == '{"val":0}'
assert json.encode(StructTypeOptional[SumTypes]{ val: 1 }) == '{"val":1}'
assert json.encode(StructTypeOption[SumTypes]{ val: 0 }) == '{"val":0}'
assert json.encode(StructTypeOption[SumTypes]{ val: 1 }) == '{"val":1}'
}
fn test_pointer() {
@@ -90,10 +90,10 @@ fn test_caos() {
assert json.encode(StructType[StructType[StringAlias]]{ val: typed_string_struct }) == 'TODO'
assert json.encode(StructType[StructType[SumTypes]]{ val: typed_string_struct }) == 'TODO'
assert json.encode(StructType[StructTypeOptional]{typed_string_struct}) == 'TODO'
assert json.encode(StructType[StructTypeOptional[string]]{ val: StructType{'a'} }) == 'TODO'
assert json.encode(StructType[StructTypeOptional[StringAlias]]{typed_string_struct}) == 'TODO'
assert json.encode(StructType[StructTypeOptional[SumTypes]]{typed_string_struct}) == 'TODO'
assert json.encode(StructType[StructTypeOption]{typed_string_struct}) == 'TODO'
assert json.encode(StructType[StructTypeOption[string]]{ val: StructType{'a'} }) == 'TODO'
assert json.encode(StructType[StructTypeOption[StringAlias]]{typed_string_struct}) == 'TODO'
assert json.encode(StructType[StructTypeOption[SumTypes]]{typed_string_struct}) == 'TODO'
assert json.encode(StructType[StructTypePointer]{typed_string_struct}) == 'TODO'
assert json.encode(StructType[StructTypePointer[string]]{typed_string_struct}) == 'TODO'
@@ -101,20 +101,20 @@ fn test_caos() {
assert json.encode(StructType[StructTypePointer[SumTypes]]{typed_string_struct}) == 'TODO'
// StructTypeOptional
assert json.encode(StructTypeOptional[StructType]{}) == 'TODO'
assert json.encode(StructTypeOptional[StructType[string]]{ val: '' }) == 'TODO'
assert json.encode(StructTypeOptional[StructType[StringAlias]]{ val: '' }) == 'TODO'
assert json.encode(StructTypeOptional[StructType[SumTypes]]{ val: '' }) == 'TODO'
assert json.encode(StructTypeOption[StructType]{}) == 'TODO'
assert json.encode(StructTypeOption[StructType[string]]{ val: '' }) == 'TODO'
assert json.encode(StructTypeOption[StructType[StringAlias]]{ val: '' }) == 'TODO'
assert json.encode(StructTypeOption[StructType[SumTypes]]{ val: '' }) == 'TODO'
assert json.encode(StructTypeOptional[StructTypeOptional]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOptional[StructTypeOptional[string]]{ val: StructType{'a'} }) == 'TODO'
assert json.encode(StructTypeOptional[StructTypeOptional[StringAlias]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOptional[StructTypeOptional[SumTypes]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOption[StructTypeOption]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOption[StructTypeOption[string]]{ val: StructType{'a'} }) == 'TODO'
assert json.encode(StructTypeOption[StructTypeOption[StringAlias]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOption[StructTypeOption[SumTypes]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOptional[StructTypePointer]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOptional[StructTypePointer[string]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOptional[StructTypePointer[StringAlias]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOptional[StructTypePointer[SumTypes]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOption[StructTypePointer]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOption[StructTypePointer[string]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOption[StructTypePointer[StringAlias]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOption[StructTypePointer[SumTypes]]{typed_string_struct}) == 'TODO'
// StructTypePointer
assert json.encode(StructTypePointer[StructType]{}) == 'TODO'
@@ -122,10 +122,10 @@ fn test_caos() {
assert json.encode(StructTypePointer[StructType[StringAlias]]{ val: '' }) == 'TODO'
assert json.encode(StructTypePointer[StructType[SumTypes]]{ val: '' }) == 'TODO'
assert json.encode(StructTypePointer[StructTypeOptional]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypePointer[StructTypeOptional[string]]{ val: StructType{'a'} }) == 'TODO'
assert json.encode(StructTypePointer[StructTypeOptional[StringAlias]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypePointer[StructTypeOptional[SumTypes]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypePointer[StructTypeOption]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypePointer[StructTypeOption[string]]{ val: StructType{'a'} }) == 'TODO'
assert json.encode(StructTypePointer[StructTypeOption[StringAlias]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypePointer[StructTypeOption[SumTypes]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypePointer[StructTypePointer]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypePointer[StructTypePointer[string]]{typed_string_struct}) == 'TODO'
@@ -144,10 +144,10 @@ fn test_caos_array() {
assert json.encode(StructType[[]StructType[StringAlias]]{ val: typed_string_struct }) == 'TODO'
assert json.encode(StructType[[]StructType[SumTypes]]{ val: typed_string_struct }) == 'TODO'
assert json.encode(StructType[[]StructTypeOptional]{typed_string_struct}) == 'TODO'
assert json.encode(StructType[[]StructTypeOptional[string]]{ val: StructType{'a'} }) == 'TODO'
assert json.encode(StructType[[]StructTypeOptional[StringAlias]]{typed_string_struct}) == 'TODO'
assert json.encode(StructType[[]StructTypeOptional[SumTypes]]{typed_string_struct}) == 'TODO'
assert json.encode(StructType[[]StructTypeOption]{typed_string_struct}) == 'TODO'
assert json.encode(StructType[[]StructTypeOption[string]]{ val: StructType{'a'} }) == 'TODO'
assert json.encode(StructType[[]StructTypeOption[StringAlias]]{typed_string_struct}) == 'TODO'
assert json.encode(StructType[[]StructTypeOption[SumTypes]]{typed_string_struct}) == 'TODO'
assert json.encode(StructType[[]StructTypePointer]{typed_string_struct}) == 'TODO'
assert json.encode(StructType[[]StructTypePointer[string]]{typed_string_struct}) == 'TODO'
@@ -155,20 +155,20 @@ fn test_caos_array() {
assert json.encode(StructType[[]StructTypePointer[SumTypes]]{typed_string_struct}) == 'TODO'
// StructTypeOptional
assert json.encode(StructTypeOptional[[]StructType]{}) == 'TODO'
assert json.encode(StructTypeOptional[[]StructType[string]]{ val: '' }) == 'TODO'
assert json.encode(StructTypeOptional[[]StructType[StringAlias]]{ val: '' }) == 'TODO'
assert json.encode(StructTypeOptional[[]StructType[SumTypes]]{ val: '' }) == 'TODO'
assert json.encode(StructTypeOption[[]StructType]{}) == 'TODO'
assert json.encode(StructTypeOption[[]StructType[string]]{ val: '' }) == 'TODO'
assert json.encode(StructTypeOption[[]StructType[StringAlias]]{ val: '' }) == 'TODO'
assert json.encode(StructTypeOption[[]StructType[SumTypes]]{ val: '' }) == 'TODO'
assert json.encode(StructTypeOptional[[]StructTypeOptional]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOptional[[]StructTypeOptional[string]]{ val: StructType{'a'} }) == 'TODO'
assert json.encode(StructTypeOptional[[]StructTypeOptional[StringAlias]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOptional[[]StructTypeOptional[SumTypes]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOption[[]StructTypeOption]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOption[[]StructTypeOption[string]]{ val: StructType{'a'} }) == 'TODO'
assert json.encode(StructTypeOption[[]StructTypeOption[StringAlias]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOption[[]StructTypeOption[SumTypes]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOptional[[]StructTypePointer]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOptional[[]StructTypePointer[string]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOptional[[]StructTypePointer[StringAlias]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOptional[[]StructTypePointer[SumTypes]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOption[[]StructTypePointer]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOption[[]StructTypePointer[string]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOption[[]StructTypePointer[StringAlias]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypeOption[[]StructTypePointer[SumTypes]]{typed_string_struct}) == 'TODO'
// StructTypePointer
assert json.encode(StructTypePointer[[]StructType]{}) == 'TODO'
@@ -176,10 +176,10 @@ fn test_caos_array() {
assert json.encode(StructTypePointer[[]StructType[StringAlias]]{ val: '' }) == 'TODO'
assert json.encode(StructTypePointer[[]StructType[SumTypes]]{ val: '' }) == 'TODO'
assert json.encode(StructTypePointer[[]StructTypeOptional]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypePointer[[]StructTypeOptional[string]]{ val: StructType{'a'} }) == 'TODO'
assert json.encode(StructTypePointer[[]StructTypeOptional[StringAlias]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypePointer[[]StructTypeOptional[SumTypes]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypePointer[[]StructTypeOption]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypePointer[[]StructTypeOption[string]]{ val: StructType{'a'} }) == 'TODO'
assert json.encode(StructTypePointer[[]StructTypeOption[StringAlias]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypePointer[[]StructTypeOption[SumTypes]]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypePointer[[]StructTypePointer]{typed_string_struct}) == 'TODO'
assert json.encode(StructTypePointer[[]StructTypePointer[string]]{typed_string_struct}) == 'TODO'

View File

@@ -165,7 +165,7 @@ fn (e &Encoder) encode_struct[U](val U, level int, mut wr io.Writer) ! {
}
}
$if field.is_optional {
$if field.is_option {
is_none := value.str() == 'Option(error: none)'
if !is_none {
@@ -182,29 +182,29 @@ fn (e &Encoder) encode_struct[U](val U, level int, mut wr io.Writer) ! {
}
$if field.typ is ?string {
optional_value := val.$(field.name) as ?string
e.encode_string(optional_value, mut wr)!
option_value := val.$(field.name) as ?string
e.encode_string(option_value, mut wr)!
} $else $if field.typ is ?bool {
optional_value := val.$(field.name) as ?bool
wr.write(Any(optional_value).str().bytes())!
option_value := val.$(field.name) as ?bool
wr.write(Any(option_value).str().bytes())!
} $else $if field.typ is ?f32 {
optional_value := val.$(field.name) as ?f32
wr.write(Any(optional_value).str().bytes())!
option_value := val.$(field.name) as ?f32
wr.write(Any(option_value).str().bytes())!
} $else $if field.typ is ?f64 {
optional_value := val.$(field.name) as ?f64
wr.write(Any(optional_value).str().bytes())!
option_value := val.$(field.name) as ?f64
wr.write(Any(option_value).str().bytes())!
} $else $if field.typ is ?i8 {
optional_value := val.$(field.name) as ?i8
wr.write(Any(optional_value).str().bytes())!
option_value := val.$(field.name) as ?i8
wr.write(Any(option_value).str().bytes())!
} $else $if field.typ is ?i16 {
optional_value := val.$(field.name) as ?i16
wr.write(Any(optional_value).str().bytes())!
option_value := val.$(field.name) as ?i16
wr.write(Any(option_value).str().bytes())!
} $else $if field.typ is ?int {
optional_value := val.$(field.name) as ?int
wr.write(Any(optional_value).int().str().bytes())!
option_value := val.$(field.name) as ?int
wr.write(Any(option_value).int().str().bytes())!
} $else $if field.typ is ?time.Time {
optional_value := val.$(field.name) as ?time.Time
parsed_time := optional_value as time.Time
option_value := val.$(field.name) as ?time.Time
parsed_time := option_value as time.Time
e.encode_string(parsed_time.format_rfc3339(), mut wr)!
} $else $if field.is_array {
e.encode_array(value, level + 1, mut wr)!

View File

@@ -3,7 +3,7 @@ import os
struct DbConfig {}
fn test_json_decode_with_optional_arg() {
fn test_json_decode_with_option_arg() {
if ret := print_info() {
println(ret)
} else {