v
Зеркало из https://github.com/vlang/v
1import time
2import x.json2 as json
3
4struct StructTypeSkippedFields[T] {
5mut:
6val T @[json: '-']
7val1 T
8val2 T @[json: '-']
9val3 T
10}
11
12struct StructTypeSkippedFields1[T] {
13mut:
14val T
15val1 T @[json: '-']
16val2 T
17val3 T @[json: '-']
18}
19
20struct StructTypeSkippedFields2[T] {
21mut:
22val T @[json: '-']
23val1 T @[json: '-']
24val2 T @[json: '-']
25val3 T @[json: '-']
26}
27
28struct StructTypeSkippedFields3[T, U, V] {
29mut:
30val T @[json: '-']
31val1 U
32val2 V
33val3 T @[json: '-']
34}
35
36struct StructTypeSkippedFields4 {
37mut:
38val string @[json: '-']
39val1 i64
40val2 f64
41val3 time.Time
42}
43
44struct StructTypeSkippedFields5 {
45mut:
46val string @[json: '-']
47val1 i64 @[json: '-']
48val2 f64
49val3 time.Time
50}
51
52struct StructTypeSkippedFields6 {
53mut:
54val string @[json: '-']
55val1 i64
56val2 f64 @[json: '-']
57val3 time.Time
58}
59
60struct StructTypeSkippedFields7 {
61mut:
62val string
63val1 i64 @[json: '-']
64val2 f64 @[json: '-']
65val3 time.Time
66}
67
68struct StructTypeSkippedFields8 {
69mut:
70val string
71val1 i64 @[json: '-']
72val2 f64
73val3 time.Time @[json: '-']
74}
75
76struct StructTypeSkippedFields9 {
77mut:
78val string
79val1 i64 @[skip]
80val2 f64
81val3 time.Time @[skip]
82}
83
84fn test_encode_struct_skipped_fields() {
85assert json.encode(StructTypeSkippedFields[string]{
86val: 'string_val'
87val1: 'string_val1'
88val2: 'string_val2'
89val3: 'string_val3'
90}) == '{"val1":"string_val1","val3":"string_val3"}'
91
92assert json.encode(StructTypeSkippedFields1[string]{
93val: 'string_val'
94val1: 'string_val1'
95val2: 'string_val2'
96val3: 'string_val3'
97}) == '{"val":"string_val","val2":"string_val2"}'
98
99assert json.encode(StructTypeSkippedFields2[string]{
100val: 'string_val'
101val1: 'string_val1'
102val2: 'string_val2'
103val3: 'string_val3'
104}) == '{}'
105
106assert json.encode(StructTypeSkippedFields3[string, i64, f64]{
107val: 'string_val'
108val1: 1
109val2: 1.0
110val3: 'string_val'
111}) == '{"val1":1,"val2":1.0}'
112
113assert json.encode(StructTypeSkippedFields4{
114val: 'string_val'
115val1: 1
116val2: 1.0
117}) == '{"val1":1,"val2":1.0,"val3":"0000-00-00T00:00:00.000Z"}'
118
119assert json.encode(StructTypeSkippedFields5{
120val: 'string_val'
121val1: 1
122val2: 1.0
123}) == '{"val2":1.0,"val3":"0000-00-00T00:00:00.000Z"}'
124
125assert json.encode(StructTypeSkippedFields6{
126val: 'string_val'
127val1: 1
128val2: 1.0
129}) == '{"val1":1,"val3":"0000-00-00T00:00:00.000Z"}'
130
131assert json.encode(StructTypeSkippedFields7{
132val: 'string_val'
133val1: 1
134val2: 1.0
135}) == '{"val":"string_val","val3":"0000-00-00T00:00:00.000Z"}'
136
137assert json.encode(StructTypeSkippedFields8{
138val: 'string_val'
139val1: 1
140val2: 1.0
141}) == '{"val":"string_val","val2":1.0}'
142
143assert json.encode(StructTypeSkippedFields9{
144val: 'string_val'
145val1: 1
146val2: 1.0
147}) == '{"val":"string_val","val2":1.0}'
148}
149