module Rattletrap.Encode.LoadoutOnlineAttribute ( putLoadoutOnlineAttribute ) where import Rattletrap.Encode.ProductAttribute import Rattletrap.Encode.Word8le import Rattletrap.Type.LoadoutOnlineAttribute import Rattletrap.Type.Word8le import qualified Data.Binary.Bits.Put as BinaryBits putLoadoutOnlineAttribute :: LoadoutOnlineAttribute -> BinaryBits.BitPut () putLoadoutOnlineAttribute :: LoadoutOnlineAttribute -> BitPut () putLoadoutOnlineAttribute LoadoutOnlineAttribute loadoutAttribute = do let attributes :: [[ProductAttribute]] attributes = LoadoutOnlineAttribute -> [[ProductAttribute]] loadoutAttributeValue LoadoutOnlineAttribute loadoutAttribute Word8le -> BitPut () putWord8Bits (Word8 -> Word8le Word8le (Int -> Word8 forall a b. (Integral a, Num b) => a -> b fromIntegral ([[ProductAttribute]] -> Int forall (t :: * -> *) a. Foldable t => t a -> Int length [[ProductAttribute]] attributes))) ([ProductAttribute] -> BitPut ()) -> [[ProductAttribute]] -> BitPut () forall (t :: * -> *) (m :: * -> *) a b. (Foldable t, Monad m) => (a -> m b) -> t a -> m () mapM_ [ProductAttribute] -> BitPut () putProductAttributes [[ProductAttribute]] attributes