72 lines
1.9 KiB
Plaintext
72 lines
1.9 KiB
Plaintext
import io:*
|
|
import serialize:*
|
|
import string:*
|
|
import util:*
|
|
import vector:*
|
|
import vector_literals:*
|
|
import map:*
|
|
|
|
fun main():int {
|
|
var intA = 7
|
|
write_file_binary(string("bintest.bin"), serialize(intA))
|
|
var intAout = unserialize<int>(read_file_binary(string("bintest.bin")))
|
|
print(intA)
|
|
print(" = ")
|
|
println(intAout)
|
|
|
|
// ok, lets do more than one
|
|
|
|
var intB = 9
|
|
var intC = 11
|
|
write_file_binary(string("bintest.bin"), serialize(intB) + serialize(intC))
|
|
var bin = read_file_binary(string("bintest.bin"))
|
|
// remember, these are pairs
|
|
var intBout: int
|
|
var intCout: int
|
|
var pos = 0
|
|
unpack(intBout, pos) = unserialize<int>(bin, pos)
|
|
unpack(intCout, pos) = unserialize<int>(bin, pos)
|
|
print(intB)
|
|
print(" , ")
|
|
print(intC)
|
|
print(" = ")
|
|
print(intBout)
|
|
print(" , ")
|
|
println(intCout)
|
|
|
|
|
|
// ok, lets do a vector
|
|
write_file_binary(string("bintest.bin"), serialize(vector(1,2,3,4,5)))
|
|
bin = read_file_binary(string("bintest.bin"))
|
|
var back = vector<int>()
|
|
pos = 0
|
|
unpack(back, pos) = unserialize<vector<int>>(bin, 0)
|
|
back.for_each(fun(i: int) { print(i); print(" "); })
|
|
println()
|
|
|
|
// ok, lets do a string
|
|
write_file_binary(string("bintest.bin"), serialize(string("hello serialize")))
|
|
bin = read_file_binary(string("bintest.bin"))
|
|
var backStr = string()
|
|
pos = 0
|
|
unpack(backStr, pos) = unserialize<string>(bin, 0)
|
|
println(backStr)
|
|
|
|
// ok, lets do a map
|
|
var m = map(3, 2.7)
|
|
m.set(50, 3.14159)
|
|
write_file_binary(string("bintest.bin"), serialize(m))
|
|
bin = read_file_binary(string("bintest.bin"))
|
|
var backM = map<int,double>()
|
|
pos = 0
|
|
unpack(backM, pos) = unserialize<map<int,double>>(bin, 0)
|
|
backM.for_each(fun(key: int, value: double) {
|
|
print(key)
|
|
print(" = ")
|
|
println(value)
|
|
})
|
|
|
|
return 0
|
|
}
|
|
|