v2 / vlib / json / tests / json_encode_ptr_test.v
31 lines · 27 sloc · 509 bytes · 8ebbacecd60366ac4ba68aa35f9b0e7a0e56ff61
Raw
1import json
2
3struct Number {
4 min int
5 max int
6}
7
8pub struct Resp {
9pub:
10 options []string @[omitempty]
11 number &Number = unsafe { nil } @[omitempty]
12}
13
14fn (r Resp) str() string {
15 return json.encode(r)
16}
17
18fn test_main() {
19 r1 := Resp{
20 options: ['first', 'second']
21 }
22 r2 := Resp{
23 number: &Number{0, 0}
24 }
25 r3 := Resp{
26 number: &Number{1, 2}
27 }
28 assert r1.str() == '{"options":["first","second"]}'
29 assert r2.str() == '{"number":{"min":0,"max":0}}'
30 assert r3.str() == '{"number":{"min":1,"max":2}}'
31}
32