starlit  Diff

Differences From Artifact [ec9d9f2682]:

To Artifact [670a4be42e]:


   201    201   	report('defining struct name=%q fields=%s', name, dump(def))
   202    202   	return {
   203    203   		name = name;
   204    204   		enc = function(obj)
   205    205   			local enc = m.streamEncoder()
   206    206   			local n = 0
   207    207   			for k,ty in pairs(def) do n=n+1
          208  +				if obj[k] == nil then error('missing key '..dump(k)..' for type '..ty.name) end
   208    209   				local encoded = ty.enc(obj[k])
   209    210   				enc.push(T.u8.enc(#k), size.enc(#encoded), k, encoded)
   210    211   			end
   211    212   			return size.enc(n) .. enc.peek()
   212    213   		end;
   213    214   		dec = debugger.wrap(function(blob)
   214    215   			if blob == '' then