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

120 lines
1.7 KiB
V

import json
struct OmitEmptyStruct {
bug Struct [omitempty]
}
type MyAlias = string
struct OmitEmptyAlias {
bug MyAlias [omitempty]
}
struct Struct {
name string
}
struct OmitEmptyMap {
bug map[string]string [omitempty]
}
struct OmitEmptyArray {
bug []string [omitempty]
}
type MySum = int | string
struct OmitEmptySumType {
bug MySum [omitempty]
}
struct FNumStruct {
f_num f64
}
struct OmitEmptyFNumStruct {
bug FNumStruct [omitempty]
}
fn test_struct() {
test := OmitEmptyStruct{
bug: Struct{}
}
encoded := json.encode(test)
dump(encoded)
test2 := OmitEmptyStruct{
bug: Struct{
name: 'mybug'
}
}
encoded2 := json.encode(test2)
dump(encoded2)
}
fn test_fnum_struct() {
test := OmitEmptyFNumStruct{
bug: FNumStruct{}
}
encoded := json.encode(test)
dump(encoded)
test2 := OmitEmptyFNumStruct{
bug: FNumStruct{
f_num: 1.5
}
}
encoded2 := json.encode(test2)
dump(encoded2)
}
fn test_alias() {
test := OmitEmptyAlias{
bug: ''
}
encoded := json.encode(test)
dump(encoded)
test2 := OmitEmptyAlias{
bug: 'foo'
}
encoded2 := json.encode(test2)
dump(encoded2)
}
fn test_map() {
test := OmitEmptyMap{
bug: {}
}
encoded := json.encode(test)
dump(encoded)
test2 := OmitEmptyMap{
bug: {
'foo': 'bar'
}
}
encoded2 := json.encode(test2)
dump(encoded2)
}
fn test_sumtype() {
test := OmitEmptySumType{}
encoded := json.encode(test)
dump(encoded)
test2 := OmitEmptySumType{
bug: 1
}
encoded2 := json.encode(test2)
dump(encoded2)
}
fn test_array() {
test := OmitEmptyArray{
bug: []
}
encoded := json.encode(test)
dump(encoded)
test2 := OmitEmptyArray{
bug: ['1']
}
encoded2 := json.encode(test2)
dump(encoded2)
}