module Rattletrap.Decode.Cache
  ( decodeCache
  )
where

import Rattletrap.Decode.AttributeMapping
import Rattletrap.Decode.Common
import Rattletrap.Decode.List
import Rattletrap.Decode.Word32le
import Rattletrap.Type.Cache

decodeCache :: Decode Cache
decodeCache :: Decode Cache
decodeCache =
  Word32le -> Word32le -> Word32le -> List AttributeMapping -> Cache
Cache
    (Word32le
 -> Word32le -> Word32le -> List AttributeMapping -> Cache)
-> Get Word32le
-> Get (Word32le -> Word32le -> List AttributeMapping -> Cache)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Get Word32le
decodeWord32le
    Get (Word32le -> Word32le -> List AttributeMapping -> Cache)
-> Get Word32le -> Get (Word32le -> List AttributeMapping -> Cache)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Get Word32le
decodeWord32le
    Get (Word32le -> List AttributeMapping -> Cache)
-> Get Word32le -> Get (List AttributeMapping -> Cache)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Get Word32le
decodeWord32le
    Get (List AttributeMapping -> Cache)
-> Get (List AttributeMapping) -> Decode Cache
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Decode AttributeMapping -> Get (List AttributeMapping)
forall a. Decode a -> Decode (List a)
decodeList Decode AttributeMapping
decodeAttributeMapping