@@ -203,13 +203,16 @@ headerValue (SimpleDataCon _ fields) =
203 in if lenFields <= 255
203 in if lenFields <= 255
204 then lenFields
204 then lenFields
205 else errorUnsupported
205 else errorUnsupported
206+ "Number of fields in the record should be <= 255."
206 lengthPrependedFieldEncoding field =
207 lengthPrependedFieldEncoding field =
207 let fEnc =
208 let fEnc =
208 let fEnc_ = map c2w (fieldToNameBase field)
209 let fEnc_ = map c2w (fieldToNameBase field)
209 lenFEnc = length fEnc_
210 lenFEnc = length fEnc_
210 in if lenFEnc <= 255
211 in if lenFEnc <= 255
211 then fEnc_
212 then fEnc_
212− else errorUnsupported
214+ errorUnsupported
215+ "Length of any key should be <= 255."
213 in (int_w8 (length fEnc)) : fEnc
216 in (int_w8 (length fEnc)) : fEnc
215--------------------------------------------------------------------------------
218--------------------------------------------------------------------------------
@@ -336,7 +339,8 @@ mkDeserializeKeysDec funcName updateFunc (SimpleDataCon cname fields) = do
336 Just off -> do
339 Just off -> do
337 val <- deserializeWithSize off $(varE arr) $(varE endOff)
340 val <- deserializeWithSize off $(varE arr) $(varE endOff)
338 pure $ snd val|]
341 pure $ snd val|]
339− deserializeFieldExpr _ = errorUnsupported
342+ deserializeFieldExpr _ =
343+ errorUnsupported "The datatype should use record syntax."
340 method <-
344 method <-
341 [|do (dataOff, hlist :: CompactList (CompactList Word8)) <-
345 [|do (dataOff, hlist :: CompactList (CompactList Word8)) <-
342 deserialize $(varE hOff) $(varE arr) $(varE endOff)
346 deserialize $(varE hOff) $(varE arr) $(varE endOff)