module Rattletrap.Encode.Int8Vector ( putInt8Vector ) where import Rattletrap.Encode.Int8le import Rattletrap.Type.Int8Vector import Rattletrap.Type.Int8le import qualified Data.Binary.Bits.Put as BinaryBits putInt8Vector :: Int8Vector -> BinaryBits.BitPut () putInt8Vector :: Int8Vector -> BitPut () putInt8Vector Int8Vector int8Vector = do Maybe Int8le -> BitPut () putInt8VectorField (Int8Vector -> Maybe Int8le int8VectorX Int8Vector int8Vector) Maybe Int8le -> BitPut () putInt8VectorField (Int8Vector -> Maybe Int8le int8VectorY Int8Vector int8Vector) Maybe Int8le -> BitPut () putInt8VectorField (Int8Vector -> Maybe Int8le int8VectorZ Int8Vector int8Vector) putInt8VectorField :: Maybe Int8le -> BinaryBits.BitPut () putInt8VectorField :: Maybe Int8le -> BitPut () putInt8VectorField Maybe Int8le maybeField = case Maybe Int8le maybeField of Maybe Int8le Nothing -> Bool -> BitPut () BinaryBits.putBool Bool False Just Int8le field -> do Bool -> BitPut () BinaryBits.putBool Bool True Int8le -> BitPut () putInt8Bits Int8le field