62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Smarty
		
	
	
	
		
		
			
		
	
	
			62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Smarty
		
	
	
	
|  | local function InitTypes(methods)
 | ||
|  |     local readBool = methods.readBool
 | ||
|  |     local readByte = methods.readByte
 | ||
|  |     local readShort = methods.readShort
 | ||
|  |     local readFshort = methods.readFshort
 | ||
|  |     local readInt = methods.readInt
 | ||
|  |     local readFint = methods.readFint
 | ||
|  |     local readLong = methods.readLong
 | ||
|  |     local readFlong = methods.readFlong
 | ||
|  |     local readFloat = methods.readFloat
 | ||
|  |     local readDouble = methods.readDouble
 | ||
|  |     local readSize = methods.readSize
 | ||
|  | 
 | ||
|  |     local readString = methods.readString
 | ||
|  | 
 | ||
|  |     local function readVector2(bs)
 | ||
|  |         return { x = readFloat(bs), y = readFloat(bs) }
 | ||
|  |     end
 | ||
|  | 
 | ||
|  |     local function readVector3(bs)
 | ||
|  |         return { x = readFloat(bs), y = readFloat(bs), z = readFloat(bs) }
 | ||
|  |     end
 | ||
|  | 
 | ||
|  |     local function readVector4(bs)
 | ||
|  |         return { x = readFloat(bs), y = readFloat(bs), z = readFloat(bs), w = readFloat(bs) }
 | ||
|  |     end
 | ||
|  | 
 | ||
|  |     local function readList(bs, keyFun)
 | ||
|  |         local list = {}
 | ||
|  |         local v
 | ||
|  |         for i = 1, readSize(bs) do
 | ||
|  |             tinsert(list, keyFun(bs))
 | ||
|  |         end
 | ||
|  |         return list
 | ||
|  |     end
 | ||
|  | 
 | ||
|  |     local readArray = readList
 | ||
|  | 
 | ||
|  |     local function readSet(bs, keyFun)
 | ||
|  |         local set = {}
 | ||
|  |         local v
 | ||
|  |         for i = 1, readSize(bs) do
 | ||
|  |             tinsert(set, keyFun(bs))
 | ||
|  |         end
 | ||
|  |         return set
 | ||
|  |     end
 | ||
|  | 
 | ||
|  |     local function readMap(bs, keyFun, valueFun)
 | ||
|  |         local map = {}
 | ||
|  |         for i = 1, readSize(bs) do
 | ||
|  |             local k = keyFun(bs)
 | ||
|  |             local v = valueFun(bs)
 | ||
|  |             map[k] = v
 | ||
|  |         end
 | ||
|  |         return map
 | ||
|  |     end
 | ||
|  | 
 | ||
|  |     local function readNullableBool(bs)
 | ||
|  |         if readBool(bs) then
 | ||
|  |             return readBool(bs)
 | ||
|  |         end
 | ||
|  |     end
 |