module Rattletrap.Encode.Initialization ( putInitialization ) where import Rattletrap.Encode.Int8Vector import Rattletrap.Encode.Vector import Rattletrap.Type.Initialization import qualified Data.Binary.Bits.Put as BinaryBits putInitialization :: Initialization -> BinaryBits.BitPut () putInitialization :: Initialization -> BitPut () putInitialization Initialization initialization = do case Initialization -> Maybe Vector initializationLocation Initialization initialization of Maybe Vector Nothing -> () -> BitPut () forall (f :: * -> *) a. Applicative f => a -> f a pure () Just Vector location -> Vector -> BitPut () putVector Vector location case Initialization -> Maybe Int8Vector initializationRotation Initialization initialization of Maybe Int8Vector Nothing -> () -> BitPut () forall (f :: * -> *) a. Applicative f => a -> f a pure () Just Int8Vector rotation -> Int8Vector -> BitPut () putInt8Vector Int8Vector rotation