shortening of str and vec

This commit is contained in:
Nathan Braswell
2018-05-22 19:43:54 -04:00
parent bc2c7b3b3e
commit eefa752d55
39 changed files with 1122 additions and 1122 deletions

View File

@@ -1,27 +1,27 @@
import vector
import vec
import mem
import util
fun serialize<T(Serializable)>(it: T): vector::vector<char> {
fun serialize<T(Serializable)>(it: T): vec::vec<char> {
return it.serialize()
}
fun serialize<T>(it: T): vector::vector<char> {
fun serialize<T>(it: T): vec::vec<char> {
var char_data = (&it) cast *char
var toRet = vector::vector<char>()
var toRet = vec::vec<char>()
for (var i = 0; i < #sizeof<T>; i++;)
toRet.add(char_data[i])
return toRet
}
// dead simple wrapper for ease of use
fun unserialize<T>(it: ref vector::vector<char>): T {
fun unserialize<T>(it: ref vec::vec<char>): T {
return unserialize<T>(it, 0).first
}
fun unserialize<T>(it: ref vector::vector<char>, pos: int): util::pair<T,int> {
fun unserialize<T>(it: ref vec::vec<char>, pos: int): util::pair<T,int> {
return util::make_pair(*(it.getBackingMemory()+pos) cast *T, pos + (#sizeof<T>) cast int)
}
fun unserialize<T(Serializable)>(it: ref vector::vector<char>, pos: int): util::pair<T,int> {
fun unserialize<T(Serializable)>(it: ref vec::vec<char>, pos: int): util::pair<T,int> {
var toRet: T
pos = toRet.unserialize(it, pos)
return util::make_pair(toRet, pos)