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:
@@ -31,7 +31,7 @@ mut:
|
||||
val T
|
||||
}
|
||||
|
||||
struct StructTypeOptional[T] {
|
||||
struct StructTypeOption[T] {
|
||||
mut:
|
||||
val ?T
|
||||
}
|
||||
|
@@ -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
|
||||
}
|
||||
}
|
||||
|
@@ -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() {
|
||||
|
@@ -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'
|
||||
|
@@ -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)!
|
||||
|
@@ -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 {
|
Reference in New Issue
Block a user