module Rattletrap.Decode.UniqueIdAttribute
  ( decodeUniqueIdAttributeBits
  )
where

import Rattletrap.Decode.Common
import Rattletrap.Decode.RemoteId
import Rattletrap.Decode.Word8le
import Rattletrap.Type.UniqueIdAttribute

decodeUniqueIdAttributeBits :: (Int, Int, Int) -> DecodeBits UniqueIdAttribute
decodeUniqueIdAttributeBits :: (Int, Int, Int) -> DecodeBits UniqueIdAttribute
decodeUniqueIdAttributeBits (Int, Int, Int)
version = do
  Word8le
systemId <- DecodeBits Word8le
decodeWord8leBits
  Word8le -> RemoteId -> Word8le -> UniqueIdAttribute
UniqueIdAttribute Word8le
systemId
    (RemoteId -> Word8le -> UniqueIdAttribute)
-> BitGet RemoteId -> BitGet (Word8le -> UniqueIdAttribute)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Int, Int, Int) -> Word8le -> BitGet RemoteId
decodeRemoteIdBits (Int, Int, Int)
version Word8le
systemId
    BitGet (Word8le -> UniqueIdAttribute)
-> DecodeBits Word8le -> DecodeBits UniqueIdAttribute
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> DecodeBits Word8le
decodeWord8leBits