v

Зеркало из https://github.com/vlang/v
Форк
0
/x
/
encode_struct_skippable_fields_test.v 
148 строк · 2.7 Кб
1
import time
2
import x.json2 as json
3

4
struct StructTypeSkippedFields[T] {
5
mut:
6
	val  T @[json: '-']
7
	val1 T
8
	val2 T @[json: '-']
9
	val3 T
10
}
11

12
struct StructTypeSkippedFields1[T] {
13
mut:
14
	val  T
15
	val1 T @[json: '-']
16
	val2 T
17
	val3 T @[json: '-']
18
}
19

20
struct StructTypeSkippedFields2[T] {
21
mut:
22
	val  T @[json: '-']
23
	val1 T @[json: '-']
24
	val2 T @[json: '-']
25
	val3 T @[json: '-']
26
}
27

28
struct StructTypeSkippedFields3[T, U, V] {
29
mut:
30
	val  T @[json: '-']
31
	val1 U
32
	val2 V
33
	val3 T @[json: '-']
34
}
35

36
struct StructTypeSkippedFields4 {
37
mut:
38
	val  string @[json: '-']
39
	val1 i64
40
	val2 f64
41
	val3 time.Time
42
}
43

44
struct StructTypeSkippedFields5 {
45
mut:
46
	val  string @[json: '-']
47
	val1 i64    @[json: '-']
48
	val2 f64
49
	val3 time.Time
50
}
51

52
struct StructTypeSkippedFields6 {
53
mut:
54
	val  string @[json: '-']
55
	val1 i64
56
	val2 f64 @[json: '-']
57
	val3 time.Time
58
}
59

60
struct StructTypeSkippedFields7 {
61
mut:
62
	val  string
63
	val1 i64 @[json: '-']
64
	val2 f64 @[json: '-']
65
	val3 time.Time
66
}
67

68
struct StructTypeSkippedFields8 {
69
mut:
70
	val  string
71
	val1 i64 @[json: '-']
72
	val2 f64
73
	val3 time.Time @[json: '-']
74
}
75

76
struct StructTypeSkippedFields9 {
77
mut:
78
	val  string
79
	val1 i64 @[skip]
80
	val2 f64
81
	val3 time.Time @[skip]
82
}
83

84
fn test_encode_struct_skipped_fields() {
85
	assert json.encode(StructTypeSkippedFields[string]{
86
		val:  'string_val'
87
		val1: 'string_val1'
88
		val2: 'string_val2'
89
		val3: 'string_val3'
90
	}) == '{"val1":"string_val1","val3":"string_val3"}'
91

92
	assert json.encode(StructTypeSkippedFields1[string]{
93
		val:  'string_val'
94
		val1: 'string_val1'
95
		val2: 'string_val2'
96
		val3: 'string_val3'
97
	}) == '{"val":"string_val","val2":"string_val2"}'
98

99
	assert json.encode(StructTypeSkippedFields2[string]{
100
		val:  'string_val'
101
		val1: 'string_val1'
102
		val2: 'string_val2'
103
		val3: 'string_val3'
104
	}) == '{}'
105

106
	assert json.encode(StructTypeSkippedFields3[string, i64, f64]{
107
		val:  'string_val'
108
		val1: 1
109
		val2: 1.0
110
		val3: 'string_val'
111
	}) == '{"val1":1,"val2":1.0}'
112

113
	assert json.encode(StructTypeSkippedFields4{
114
		val:  'string_val'
115
		val1: 1
116
		val2: 1.0
117
	}) == '{"val1":1,"val2":1.0,"val3":"0000-00-00T00:00:00.000Z"}'
118

119
	assert json.encode(StructTypeSkippedFields5{
120
		val:  'string_val'
121
		val1: 1
122
		val2: 1.0
123
	}) == '{"val2":1.0,"val3":"0000-00-00T00:00:00.000Z"}'
124

125
	assert json.encode(StructTypeSkippedFields6{
126
		val:  'string_val'
127
		val1: 1
128
		val2: 1.0
129
	}) == '{"val1":1,"val3":"0000-00-00T00:00:00.000Z"}'
130

131
	assert json.encode(StructTypeSkippedFields7{
132
		val:  'string_val'
133
		val1: 1
134
		val2: 1.0
135
	}) == '{"val":"string_val","val3":"0000-00-00T00:00:00.000Z"}'
136

137
	assert json.encode(StructTypeSkippedFields8{
138
		val:  'string_val'
139
		val1: 1
140
		val2: 1.0
141
	}) == '{"val":"string_val","val2":1.0}'
142

143
	assert json.encode(StructTypeSkippedFields9{
144
		val:  'string_val'
145
		val1: 1
146
		val2: 1.0
147
	}) == '{"val":"string_val","val2":1.0}'
148
}
149

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.