module Rattletrap.Decode.Message
  ( decodeMessage
  )
where

import Rattletrap.Decode.Common
import Rattletrap.Decode.Str
import Rattletrap.Decode.Word32le
import Rattletrap.Type.Message

decodeMessage :: Decode Message
decodeMessage :: Decode Message
decodeMessage = Word32le -> Str -> Str -> Message
Message (Word32le -> Str -> Str -> Message)
-> Get Word32le -> Get (Str -> Str -> Message)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Get Word32le
decodeWord32le Get (Str -> Str -> Message) -> Get Str -> Get (Str -> Message)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Get Str
decodeStr Get (Str -> Message) -> Get Str -> Decode Message
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Get Str
decodeStr