1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
discard """
targets: "c cpp"
matrix: "--gc:refc; --gc:orc"
"""
import std/[isolation, json]
proc main() =
block: # string literals
var data = isolate("string")
doAssert data.extract == "string"
doAssert data.extract == ""
block: # string literals
var data = isolate("")
doAssert data.extract == ""
doAssert data.extract == ""
block:
var src = "string"
var data = isolate(move src)
doAssert data.extract == "string"
doAssert src.len == 0
block: # int literals
var data = isolate(1)
doAssert data.extract == 1
doAssert data.extract == 0
block: # float literals
var data = isolate(1.6)
doAssert data.extract == 1.6
doAssert data.extract == 0.0
block:
var data = isolate(@["1", "2"])
doAssert data.extract == @["1", "2"]
doAssert data.extract == @[]
block:
var data = isolate(@["1", "2", "3", "4", "5"])
doAssert data.extract == @["1", "2", "3", "4", "5"]
doAssert data.extract == @[]
block:
var data = isolate(@["", ""])
doAssert data.extract == @["", ""]
doAssert data.extract == @[]
block:
var src = @["1", "2"]
var data = isolate(move src)
doAssert data.extract == @["1", "2"]
doAssert src.len == 0
block:
var data = isolate(@[1, 2])
doAssert data.extract == @[1, 2]
doAssert data.extract == @[]
block:
var data = isolate(["1", "2"])
doAssert data.extract == ["1", "2"]
doAssert data.extract == ["", ""]
block:
var data = isolate([1, 2])
doAssert data.extract == [1, 2]
doAssert data.extract == [0, 0]
block:
type
Test = object
id: int
var data = isolate(Test(id: 12))
doAssert data.extract.id == 12
block:
type
Test = object
id: int
var src = Test(id: 12)
var data = isolate(src)
doAssert data.extract.id == 12
block:
type
Test = object
id: int
var src = Test(id: 12)
var data = isolate(move src)
doAssert data.extract.id == 12
block:
type
Test = ref object
id: int
var data = isolate(Test(id: 12))
doAssert data.extract.id == 12
block:
var x: seq[Isolated[JsonNode]]
x.add isolate(newJString("1234"))
doAssert $x == """@[(value: "1234")]"""
static: main()
main()
|