ron-0.7: lib/RON/Binary/Types.hs
{-# LANGUAGE LambdaCase #-}
-- | Common types for binary format (parser and serializer)
module RON.Binary.Types where
import RON.Prelude
type Size = Word32
-- | Data block descriptor
data Desc
= DOpClosed
| DOpReduced
| DOpHeader
| DOpQueryHeader
| DUuidReducer
| DUuidObject
| DUuidOp
| DUuidRef
| DAtomUuidZip
| DUuidZipObject
| DUuidZipOp
| DUuidZipRef
| DAtomUuid
| DAtomInteger
| DAtomString
| DAtomFloat
deriving (Enum, Eq, Show)
-- | Does the descriptor refer to an op
descIsOp :: Desc -> Bool
descIsOp = \case
DOpClosed -> True
DOpReduced -> True
DOpHeader -> True
DOpQueryHeader -> True
_ -> False