module Rattletrap.Decode.TitleAttribute
  ( decodeTitleAttributeBits
  )
where

import Rattletrap.Decode.Common
import Rattletrap.Decode.Word32le
import Rattletrap.Type.TitleAttribute

decodeTitleAttributeBits :: DecodeBits TitleAttribute
decodeTitleAttributeBits :: DecodeBits TitleAttribute
decodeTitleAttributeBits =
  Bool
-> Bool
-> Word32le
-> Word32le
-> Word32le
-> Word32le
-> Word32le
-> Bool
-> TitleAttribute
TitleAttribute
    (Bool
 -> Bool
 -> Word32le
 -> Word32le
 -> Word32le
 -> Word32le
 -> Word32le
 -> Bool
 -> TitleAttribute)
-> BitGet Bool
-> BitGet
     (Bool
      -> Word32le
      -> Word32le
      -> Word32le
      -> Word32le
      -> Word32le
      -> Bool
      -> TitleAttribute)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> BitGet Bool
getBool
    BitGet
  (Bool
   -> Word32le
   -> Word32le
   -> Word32le
   -> Word32le
   -> Word32le
   -> Bool
   -> TitleAttribute)
-> BitGet Bool
-> BitGet
     (Word32le
      -> Word32le
      -> Word32le
      -> Word32le
      -> Word32le
      -> Bool
      -> TitleAttribute)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> BitGet Bool
getBool
    BitGet
  (Word32le
   -> Word32le
   -> Word32le
   -> Word32le
   -> Word32le
   -> Bool
   -> TitleAttribute)
-> BitGet Word32le
-> BitGet
     (Word32le
      -> Word32le -> Word32le -> Word32le -> Bool -> TitleAttribute)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> BitGet Word32le
decodeWord32leBits
    BitGet
  (Word32le
   -> Word32le -> Word32le -> Word32le -> Bool -> TitleAttribute)
-> BitGet Word32le
-> BitGet
     (Word32le -> Word32le -> Word32le -> Bool -> TitleAttribute)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> BitGet Word32le
decodeWord32leBits
    BitGet (Word32le -> Word32le -> Word32le -> Bool -> TitleAttribute)
-> BitGet Word32le
-> BitGet (Word32le -> Word32le -> Bool -> TitleAttribute)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> BitGet Word32le
decodeWord32leBits
    BitGet (Word32le -> Word32le -> Bool -> TitleAttribute)
-> BitGet Word32le -> BitGet (Word32le -> Bool -> TitleAttribute)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> BitGet Word32le
decodeWord32leBits
    BitGet (Word32le -> Bool -> TitleAttribute)
-> BitGet Word32le -> BitGet (Bool -> TitleAttribute)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> BitGet Word32le
decodeWord32leBits
    BitGet (Bool -> TitleAttribute)
-> BitGet Bool -> DecodeBits TitleAttribute
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> BitGet Bool
getBool