Files
kraken/stdlib/serialize.krak

18 lines
409 B
Plaintext
Raw Normal View History

2015-08-21 11:03:10 -04:00
import vector
import conversions
import mem
fun serialize<T>(it: T): vector::vector<char> {
var char_data = conversions::cast_ptr<*T,*char>(&it)
var toRet = vector::vector<char>()
for (var i = 0; i < mem::sizeof<T>(); i++;)
toRet.add(char_data[i])
return toRet
}
fun unserialize<T>(it: vector::vector<char>):T {
return *conversions::cast_ptr<*char,*T>(it.getBackingMemory())
}