-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Parse and generate Rocket League replays.
--   
--   Rattletrap parses and generates Rocket League replays.
@package rattletrap
@version 3.1.2

module Rattletrap.Attribute.Boolean
newtype BooleanAttribute
BooleanAttribute :: Bool -> BooleanAttribute
[booleanAttributeValue] :: BooleanAttribute -> Bool
getBooleanAttribute :: BitGet BooleanAttribute
putBooleanAttribute :: BooleanAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.Boolean.BooleanAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.Boolean.BooleanAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.Boolean.BooleanAttribute

module Rattletrap.Attribute.Enum
newtype EnumAttribute
EnumAttribute :: Word16 -> EnumAttribute
[enumAttributeValue] :: EnumAttribute -> Word16
getEnumAttribute :: BitGet EnumAttribute
putEnumAttribute :: EnumAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.Enum.EnumAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.Enum.EnumAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.Enum.EnumAttribute

module Rattletrap.Attribute.GameMode
data GameModeAttribute
GameModeAttribute :: Int -> Word8 -> GameModeAttribute
[gameModeAttributeNumBits] :: GameModeAttribute -> Int
[gameModeAttributeWord] :: GameModeAttribute -> Word8
getGameModeAttribute :: (Int, Int, Int) -> BitGet GameModeAttribute
putGameModeAttribute :: GameModeAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.GameMode.GameModeAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.GameMode.GameModeAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.GameMode.GameModeAttribute

module Rattletrap.AttributeType
data AttributeType
AppliedDamageAttributeType :: AttributeType
BooleanAttributeType :: AttributeType
ByteAttributeType :: AttributeType
CamSettingsAttributeType :: AttributeType
ClubColorsAttributeType :: AttributeType
DamageStateAttributeType :: AttributeType
DemolishAttributeType :: AttributeType
EnumAttributeType :: AttributeType
ExplosionAttributeType :: AttributeType
ExtendedExplosionAttributeType :: AttributeType
FlaggedIntAttributeType :: AttributeType
FloatAttributeType :: AttributeType
GameModeAttributeType :: AttributeType
IntAttributeType :: AttributeType
LoadoutAttributeType :: AttributeType
LoadoutOnlineAttributeType :: AttributeType
LoadoutsAttributeType :: AttributeType
LoadoutsOnlineAttributeType :: AttributeType
LocationAttributeType :: AttributeType
MusicStingerAttributeType :: AttributeType
PartyLeaderAttributeType :: AttributeType
PickupAttributeType :: AttributeType
PrivateMatchSettingsAttributeType :: AttributeType
QWordAttributeType :: AttributeType
ReservationAttributeType :: AttributeType
RigidBodyStateAttributeType :: AttributeType
StringAttributeType :: AttributeType
TeamPaintAttributeType :: AttributeType
UniqueIdAttributeType :: AttributeType
WeldedInfoAttributeType :: AttributeType
instance GHC.Show.Show Rattletrap.AttributeType.AttributeType
instance GHC.Classes.Ord Rattletrap.AttributeType.AttributeType
instance GHC.Classes.Eq Rattletrap.AttributeType.AttributeType

module Rattletrap.Data
rawParentClasses :: [(String, String)]
rawClassesWithLocation :: [String]
rawClassesWithRotation :: [String]
rawObjectClasses :: [(String, String)]
rawAttributeTypes :: [(String, AttributeType)]
rawCrc32Table :: Integral a => [a]

module Rattletrap.Crc

-- | Computes the CRC32 of some bytes. This is done to ensure that the
--   bytes are valid before trying to parse them.
--   
--   <pre>
--   getCrc32 (<a>pack</a> [0x00])
--   </pre>
--   
--   This CRC uses an initial value of <tt>0xefcbf201</tt> and a polynomial
--   of <tt>0x04c11db7</tt>.
getCrc32 :: ByteString -> Word32
crc32Update :: Vector Word32 -> Word32 -> Word8 -> Word32
crc32Initial :: Word32
crc32Table :: Vector Word32

module Rattletrap.Primitive.CompressedWord
data CompressedWord
CompressedWord :: Word -> Word -> CompressedWord
[compressedWordLimit] :: CompressedWord -> Word
[compressedWordValue] :: CompressedWord -> Word
getCompressedWord :: Word -> BitGet CompressedWord
putCompressedWord :: CompressedWord -> BitPut ()
getMaxBits :: (Integral a, Integral b) => a -> b
getCompressedWordStep :: Word -> Word -> Word -> Word -> BitGet Word
instance GHC.Show.Show Rattletrap.Primitive.CompressedWord.CompressedWord
instance GHC.Classes.Ord Rattletrap.Primitive.CompressedWord.CompressedWord
instance GHC.Classes.Eq Rattletrap.Primitive.CompressedWord.CompressedWord

module Rattletrap.Primitive.CompressedWordVector
data CompressedWordVector
CompressedWordVector :: CompressedWord -> CompressedWord -> CompressedWord -> CompressedWordVector
[compressedWordVectorX] :: CompressedWordVector -> CompressedWord
[compressedWordVectorY] :: CompressedWordVector -> CompressedWord
[compressedWordVectorZ] :: CompressedWordVector -> CompressedWord
getCompressedWordVector :: BitGet CompressedWordVector
putCompressedWordVector :: CompressedWordVector -> BitPut ()
instance GHC.Show.Show Rattletrap.Primitive.CompressedWordVector.CompressedWordVector
instance GHC.Classes.Ord Rattletrap.Primitive.CompressedWordVector.CompressedWordVector
instance GHC.Classes.Eq Rattletrap.Primitive.CompressedWordVector.CompressedWordVector

module Rattletrap.Primitive.Vector
data Vector
Vector :: Word -> Int -> Int -> Int -> Vector
[vectorBias] :: Vector -> Word
[vectorX] :: Vector -> Int
[vectorY] :: Vector -> Int
[vectorZ] :: Vector -> Int
getVector :: BitGet Vector
putVector :: Vector -> BitPut ()
instance GHC.Show.Show Rattletrap.Primitive.Vector.Vector
instance GHC.Classes.Ord Rattletrap.Primitive.Vector.Vector
instance GHC.Classes.Eq Rattletrap.Primitive.Vector.Vector

module Rattletrap.Replication.Destroyed

-- | Destroyed replications don't actually contain any extra information.
--   All you need to know is the actor's ID, which is given by the
--   <a>Replication</a>.
data DestroyedReplication
DestroyedReplication :: DestroyedReplication
getDestroyedReplication :: BitGet DestroyedReplication
putDestroyedReplication :: DestroyedReplication -> BitPut ()
instance GHC.Show.Show Rattletrap.Replication.Destroyed.DestroyedReplication
instance GHC.Classes.Ord Rattletrap.Replication.Destroyed.DestroyedReplication
instance GHC.Classes.Eq Rattletrap.Replication.Destroyed.DestroyedReplication

module Rattletrap.Utility
encodeLatin1 :: Text -> ByteString
padBytes :: Integral a => a -> ByteString -> ByteString
reverseByte :: Word8 -> Word8
reverseBytes :: ByteString -> ByteString

module Rattletrap.Primitive.Word8
newtype Word8
Word8 :: Word8 -> Word8
[word8Value] :: Word8 -> Word8
getWord8 :: Get Word8
putWord8 :: Word8 -> Put
getWord8Bits :: BitGet Word8
putWord8Bits :: Word8 -> BitPut ()
instance GHC.Show.Show Rattletrap.Primitive.Word8.Word8
instance GHC.Classes.Ord Rattletrap.Primitive.Word8.Word8
instance GHC.Classes.Eq Rattletrap.Primitive.Word8.Word8

module Rattletrap.Primitive.Word64
newtype Word64
Word64 :: Word64 -> Word64
[word64Value] :: Word64 -> Word64
getWord64 :: Get Word64
putWord64 :: Word64 -> Put
getWord64Bits :: BitGet Word64
putWord64Bits :: Word64 -> BitPut ()
instance GHC.Show.Show Rattletrap.Primitive.Word64.Word64
instance GHC.Classes.Ord Rattletrap.Primitive.Word64.Word64
instance GHC.Classes.Eq Rattletrap.Primitive.Word64.Word64

module Rattletrap.Primitive.Word32
newtype Word32
Word32 :: Word32 -> Word32
[word32Value] :: Word32 -> Word32
getWord32 :: Get Word32
putWord32 :: Word32 -> Put
getWord32Bits :: BitGet Word32
putWord32Bits :: Word32 -> BitPut ()
instance GHC.Show.Show Rattletrap.Primitive.Word32.Word32
instance GHC.Classes.Ord Rattletrap.Primitive.Word32.Word32
instance GHC.Classes.Eq Rattletrap.Primitive.Word32.Word32

module Rattletrap.Primitive.Section

-- | A section is a large piece of a <a>Replay</a>. It has a 32-bit size
--   (in bytes), a 32-bit CRC (see <a>Rattletrap.Crc</a>), and then a bunch
--   of data (the body). This interface is provided so that you don't have
--   to think about the size and CRC.
newtype Section a
Section :: a -> Section a

-- | The actual content in the section.
[sectionBody] :: Section a -> a

-- | Given a way to get the <a>sectionBody</a>, gets a section. This will
--   fail if the section's CRC does not match.
--   
--   <pre>
--   let header = <a>runGet</a> (<a>getSection</a> <a>getHeader</a>) bytes
--   </pre>
getSection :: Get a -> Get (Section a)

-- | Given a way to put the <a>sectionBody</a>, puts a section. This will
--   also put the size and CRC.
--   
--   <pre>
--   let bytes = <a>runPut</a> (<a>putSection</a> <a>putContent</a> content)
--   </pre>
putSection :: (a -> Put) -> Section a -> Put
crcMessage :: Word32 -> Word32 -> String
instance GHC.Show.Show a => GHC.Show.Show (Rattletrap.Primitive.Section.Section a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Rattletrap.Primitive.Section.Section a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Rattletrap.Primitive.Section.Section a)

module Rattletrap.Primitive.List
newtype List a
List :: [a] -> List a
[listValue] :: List a -> [a]
getList :: Get a -> Get (List a)
putList :: (a -> Put) -> List a -> Put
instance GHC.Show.Show a => GHC.Show.Show (Rattletrap.Primitive.List.List a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Rattletrap.Primitive.List.List a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Rattletrap.Primitive.List.List a)

module Rattletrap.Primitive.Int8
newtype Int8
Int8 :: Int8 -> Int8
[int8Value] :: Int8 -> Int8
getInt8 :: Get Int8
putInt8 :: Int8 -> Put
getInt8Bits :: BitGet Int8
putInt8Bits :: Int8 -> BitPut ()
instance GHC.Show.Show Rattletrap.Primitive.Int8.Int8
instance GHC.Classes.Ord Rattletrap.Primitive.Int8.Int8
instance GHC.Classes.Eq Rattletrap.Primitive.Int8.Int8

module Rattletrap.Primitive.Int8Vector
data Int8Vector
Int8Vector :: Maybe Int8 -> Maybe Int8 -> Maybe Int8 -> Int8Vector
[int8VectorX] :: Int8Vector -> Maybe Int8
[int8VectorY] :: Int8Vector -> Maybe Int8
[int8VectorZ] :: Int8Vector -> Maybe Int8
getInt8Vector :: BitGet Int8Vector
putInt8Vector :: Int8Vector -> BitPut ()
getInt8VectorField :: BitGet (Maybe Int8)
putInt8VectorField :: Maybe Int8 -> BitPut ()
instance GHC.Show.Show Rattletrap.Primitive.Int8Vector.Int8Vector
instance GHC.Classes.Ord Rattletrap.Primitive.Int8Vector.Int8Vector
instance GHC.Classes.Eq Rattletrap.Primitive.Int8Vector.Int8Vector

module Rattletrap.Primitive.Int32
newtype Int32
Int32 :: Int32 -> Int32
[int32Value] :: Int32 -> Int32
getInt32 :: Get Int32
putInt32 :: Int32 -> Put
getInt32Bits :: BitGet Int32
putInt32Bits :: Int32 -> BitPut ()
instance GHC.Show.Show Rattletrap.Primitive.Int32.Int32
instance GHC.Classes.Ord Rattletrap.Primitive.Int32.Int32
instance GHC.Classes.Eq Rattletrap.Primitive.Int32.Int32

module Rattletrap.Primitive.Text
newtype Text
Text :: Text -> Text
[textValue] :: Text -> Text
getText :: Get Text
putText :: Text -> Put
getTextBits :: BitGet Text
putTextBits :: Text -> BitPut ()
stringToText :: String -> Text
textToString :: Text -> String
getTextSize :: Text -> Int32
normalizeTextSize :: Integral a => Int32 -> a
getTextDecoder :: Int32 -> ByteString -> Text
getTextEncoder :: Int32 -> Text -> ByteString
dropNull :: Text -> Text
addNull :: Text -> Text
instance GHC.Show.Show Rattletrap.Primitive.Text.Text
instance GHC.Classes.Ord Rattletrap.Primitive.Text.Text
instance GHC.Classes.Eq Rattletrap.Primitive.Text.Text

module Rattletrap.Primitive.Dictionary
data Dictionary a
Dictionary :: [Text] -> Text -> Map Text a -> Dictionary a

-- | Objects in JSON aren't ordered, so the order of the keys must be
--   stored separately.
[dictionaryKeys] :: Dictionary a -> [Text]

-- | The last key is usually <tt>None</tt> but sometimes contains extra
--   null bytes.
[dictionaryLastKey] :: Dictionary a -> Text

-- | Be sure to update <a>dictionaryKeys</a> if you add, change, or remove
--   a key in this map.
[dictionaryValue] :: Dictionary a -> Map Text a
getDictionary :: Get a -> Get (Dictionary a)
getElements :: Get a -> Get ([(Text, a)], Text)
getElement :: Get a -> Get (Text, Maybe a)
isNoneKey :: Text -> Bool
putDictionary :: (a -> Put) -> Dictionary a -> Put
instance GHC.Show.Show a => GHC.Show.Show (Rattletrap.Primitive.Dictionary.Dictionary a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Rattletrap.Primitive.Dictionary.Dictionary a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Rattletrap.Primitive.Dictionary.Dictionary a)

module Rattletrap.Primitive.Float32
newtype Float32
Float32 :: Float -> Float32
[float32Value] :: Float32 -> Float
getFloat32 :: Get Float32
putFloat32 :: Float32 -> Put
getFloat32Bits :: BitGet Float32
putFloat32Bits :: Float32 -> BitPut ()
instance GHC.Show.Show Rattletrap.Primitive.Float32.Float32
instance GHC.Classes.Ord Rattletrap.Primitive.Float32.Float32
instance GHC.Classes.Eq Rattletrap.Primitive.Float32.Float32

module Rattletrap.Primitive

module Rattletrap.RemoteId
data RemoteId
PlayStationId :: Text -> [Word8] -> RemoteId
SplitscreenId :: Word32 -> RemoteId
SteamId :: Word64 -> RemoteId
XboxId :: Word64 -> RemoteId
getRemoteId :: (Int, Int, Int) -> Word8 -> BitGet RemoteId
putRemoteId :: RemoteId -> BitPut ()
instance GHC.Show.Show Rattletrap.RemoteId.RemoteId
instance GHC.Classes.Ord Rattletrap.RemoteId.RemoteId
instance GHC.Classes.Eq Rattletrap.RemoteId.RemoteId

module Rattletrap.PropertyValue
data PropertyValue a

-- | Yes, a list of dictionaries. No, it doesn't make sense. These usually
--   only have one element.
ArrayProperty :: (List (Dictionary a)) -> PropertyValue a
BoolProperty :: Word8 -> PropertyValue a

-- | This is a strange name for essentially a key-value pair.
ByteProperty :: Text -> (Maybe Text) -> PropertyValue a
FloatProperty :: Float32 -> PropertyValue a
IntProperty :: Int32 -> PropertyValue a

-- | It's unclear how exactly this is different than a <a>StrProperty</a>.
NameProperty :: Text -> PropertyValue a
QWordProperty :: Word64 -> PropertyValue a
StrProperty :: Text -> PropertyValue a
getPropertyValue :: Get a -> Text -> Get (PropertyValue a)
putPropertyValue :: (a -> Put) -> PropertyValue a -> Put
instance GHC.Show.Show a => GHC.Show.Show (Rattletrap.PropertyValue.PropertyValue a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Rattletrap.PropertyValue.PropertyValue a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Rattletrap.PropertyValue.PropertyValue a)

module Rattletrap.Property
data Property
Property :: Text -> Word64 -> PropertyValue Property -> Property
[propertyKind] :: Property -> Text

-- | Not used.
[propertySize] :: Property -> Word64
[propertyValue] :: Property -> PropertyValue Property
getProperty :: Get Property
putProperty :: Property -> Put
instance GHC.Show.Show Rattletrap.Property.Property
instance GHC.Classes.Ord Rattletrap.Property.Property
instance GHC.Classes.Eq Rattletrap.Property.Property

module Rattletrap.Message
data Message
Message :: Word32 -> Text -> Text -> Message

-- | Which frame this message belongs to, starting from 0.
[messageFrame] :: Message -> Word32

-- | The primary player's name.
[messageName] :: Message -> Text

-- | The content of the message.
[messageValue] :: Message -> Text
getMessage :: Get Message
putMessage :: Message -> Put
instance GHC.Show.Show Rattletrap.Message.Message
instance GHC.Classes.Ord Rattletrap.Message.Message
instance GHC.Classes.Eq Rattletrap.Message.Message

module Rattletrap.Mark
data Mark
Mark :: Text -> Word32 -> Mark

-- | Which type of mark this is, like <tt>Team0Goal</tt>.
[markValue] :: Mark -> Text

-- | Which frame this mark belongs to, starting from 0.
[markFrame] :: Mark -> Word32
getMark :: Get Mark
putMark :: Mark -> Put
instance GHC.Show.Show Rattletrap.Mark.Mark
instance GHC.Classes.Ord Rattletrap.Mark.Mark
instance GHC.Classes.Eq Rattletrap.Mark.Mark

module Rattletrap.KeyFrame
data KeyFrame
KeyFrame :: Float32 -> Word32 -> Word32 -> KeyFrame

-- | When this key frame occurs, in seconds.
[keyFrameTime] :: KeyFrame -> Float32

-- | The frame number of this key frame, starting from 0.
[keyFrameFrame] :: KeyFrame -> Word32

-- | The bit position of this key frame in the stream.
[keyFramePosition] :: KeyFrame -> Word32
getKeyFrame :: Get KeyFrame
putKeyFrame :: KeyFrame -> Put
instance GHC.Show.Show Rattletrap.KeyFrame.KeyFrame
instance GHC.Classes.Ord Rattletrap.KeyFrame.KeyFrame
instance GHC.Classes.Eq Rattletrap.KeyFrame.KeyFrame

module Rattletrap.Initialization
data Initialization
Initialization :: Maybe Vector -> Maybe Int8Vector -> Initialization

-- | Not every class has an initial location. See
--   <a>rawClassesWithLocation</a>.
[initializationLocation] :: Initialization -> Maybe Vector

-- | Only classes with location can have rotation, but not every one does.
--   See <a>rawClassesWithRotation</a>.
[initializationRotation] :: Initialization -> Maybe Int8Vector
getInitialization :: Bool -> Bool -> BitGet Initialization
putInitialization :: Initialization -> BitPut ()
instance GHC.Show.Show Rattletrap.Initialization.Initialization
instance GHC.Classes.Ord Rattletrap.Initialization.Initialization
instance GHC.Classes.Eq Rattletrap.Initialization.Initialization

module Rattletrap.Header

-- | Contains high-level metadata about a <a>Replay</a>.
data Header
Header :: Word32 -> Word32 -> Maybe Word32 -> Text -> Dictionary Property -> Header

-- | The "major" ("engine") version number.
[headerEngineVersion] :: Header -> Word32

-- | The "minor" ("licensee") version number.
[headerLicenseeVersion] :: Header -> Word32

-- | The "patch" ("net") version number.
[headerPatchVersion] :: Header -> Maybe Word32

-- | Always <tt>TAGame.Replay_Soccar_TA</tt>.
[headerLabel] :: Header -> Text

-- | These properties determine how a replay will look in the list of
--   replays in-game. One element is required for the replay to show up:
--   
--   <ul>
--   <li>MapName: This is a <a>NameProperty</a> with a case-insensitive map
--   identifier, like <tt>Stadium_P</tt>.</li>
--   </ul>
--   
--   There are many other properties that affect how the replay looks in
--   the list of replays.
--   
--   <ul>
--   <li>Date: A <a>StrProperty</a> with the format
--   <tt>YYYY-mm-dd:HH-MM</tt>. Dates are not validated, but the month must
--   be between 1 and 12 to show up. The hour is shown modulo 12 with AM or
--   PM.</li>
--   <li>MatchType: A <a>NameProperty</a>. If this is not one of the
--   expected values, nothing will be shown next to the replay's map. The
--   expected values are: <tt>Online</tt>, <tt>Offline</tt>,
--   <tt>Private</tt>, and <tt>Season</tt>.</li>
--   <li>NumFrames: This <a>IntProperty</a> is used to calculate the length
--   of the match. There are 30 frames per second, a typical 5-minute match
--   has about 9,000 frames.</li>
--   <li>PrimaryPlayerTeam: This is an <a>IntProperty</a>. It is either 0
--   (blue) or 1 (orange). Any other value is ignored. If this would be 0,
--   you don't have to set it at all.</li>
--   <li>ReplayName: An optional <a>StrProperty</a> with a user-supplied
--   name for the replay.</li>
--   <li>Team0Score: The blue team's score as an <a>IntProperty</a>. Can be
--   omitted if the score is 0.</li>
--   <li>Team1Score: The orange team's score as an <a>IntProperty</a>. Can
--   also be omitted if the score is 0.</li>
--   <li>TeamSize: An <a>IntProperty</a> with the number of players per
--   team. This value is not validated, so you can put absurd values like
--   99. To get an "unfair" team size like 1v4, you must set the
--   bUnfairBots <a>BoolProperty</a> to <tt>True</tt>.</li>
--   </ul>
[headerProperties] :: Header -> Dictionary Property
getHeader :: Get Header
getPatchVersion :: Word32 -> Word32 -> Get (Maybe Word32)
hasPatchVersion :: Word32 -> Word32 -> Bool
putHeader :: Header -> Put
getVersion :: Header -> (Int, Int, Int)
getNumFrames :: Header -> Int
getMaxChannels :: Header -> Word
instance GHC.Show.Show Rattletrap.Header.Header
instance GHC.Classes.Ord Rattletrap.Header.Header
instance GHC.Classes.Eq Rattletrap.Header.Header

module Rattletrap.ClassMapping
data ClassMapping
ClassMapping :: Text -> Word32 -> ClassMapping
[classMappingName] :: ClassMapping -> Text
[classMappingStreamId] :: ClassMapping -> Word32
getClassMapping :: Get ClassMapping
putClassMapping :: ClassMapping -> Put
instance GHC.Show.Show Rattletrap.ClassMapping.ClassMapping
instance GHC.Classes.Ord Rattletrap.ClassMapping.ClassMapping
instance GHC.Classes.Eq Rattletrap.ClassMapping.ClassMapping

module Rattletrap.AttributeMapping
data AttributeMapping
AttributeMapping :: Word32 -> Word32 -> AttributeMapping
[attributeMappingObjectId] :: AttributeMapping -> Word32
[attributeMappingStreamId] :: AttributeMapping -> Word32
getAttributeMapping :: Get AttributeMapping
putAttributeMapping :: AttributeMapping -> Put
instance GHC.Show.Show Rattletrap.AttributeMapping.AttributeMapping
instance GHC.Classes.Ord Rattletrap.AttributeMapping.AttributeMapping
instance GHC.Classes.Eq Rattletrap.AttributeMapping.AttributeMapping

module Rattletrap.Cache
data Cache
Cache :: Word32 -> Word32 -> Word32 -> List AttributeMapping -> Cache
[cacheClassId] :: Cache -> Word32
[cacheParentCacheId] :: Cache -> Word32
[cacheCacheId] :: Cache -> Word32
[cacheAttributeMappings] :: Cache -> List AttributeMapping
getCache :: Get Cache
putCache :: Cache -> Put
instance GHC.Show.Show Rattletrap.Cache.Cache
instance GHC.Classes.Ord Rattletrap.Cache.Cache
instance GHC.Classes.Eq Rattletrap.Cache.Cache

module Rattletrap.Attribute.WeldedInfo
data WeldedInfoAttribute
WeldedInfoAttribute :: Bool -> Int32 -> Vector -> Float32 -> Int8Vector -> WeldedInfoAttribute
[weldedInfoAttributeActive] :: WeldedInfoAttribute -> Bool
[weldedInfoAttributeActorId] :: WeldedInfoAttribute -> Int32
[weldedInfoAttributeOffset] :: WeldedInfoAttribute -> Vector
[weldedInfoAttributeMass] :: WeldedInfoAttribute -> Float32
[weldedInfoAttributeRotation] :: WeldedInfoAttribute -> Int8Vector
getWeldedInfoAttribute :: BitGet WeldedInfoAttribute
putWeldedInfoAttribute :: WeldedInfoAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.WeldedInfo.WeldedInfoAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.WeldedInfo.WeldedInfoAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.WeldedInfo.WeldedInfoAttribute

module Rattletrap.Attribute.UniqueId
data UniqueIdAttribute
UniqueIdAttribute :: Word8 -> RemoteId -> Word8 -> UniqueIdAttribute
[uniqueIdAttributeSystemId] :: UniqueIdAttribute -> Word8
[uniqueIdAttributeRemoteId] :: UniqueIdAttribute -> RemoteId
[uniqueIdAttributeLocalId] :: UniqueIdAttribute -> Word8
getUniqueIdAttribute :: (Int, Int, Int) -> BitGet UniqueIdAttribute
putUniqueIdAttribute :: UniqueIdAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.UniqueId.UniqueIdAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.UniqueId.UniqueIdAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.UniqueId.UniqueIdAttribute

module Rattletrap.Attribute.TeamPaint
data TeamPaintAttribute
TeamPaintAttribute :: Word8 -> Word8 -> Word8 -> Word32 -> Word32 -> TeamPaintAttribute
[teamPaintAttributeTeam] :: TeamPaintAttribute -> Word8
[teamPaintAttributePrimaryColor] :: TeamPaintAttribute -> Word8
[teamPaintAttributeAccentColor] :: TeamPaintAttribute -> Word8
[teamPaintAttributePrimaryFinish] :: TeamPaintAttribute -> Word32
[teamPaintAttributeAccentFinish] :: TeamPaintAttribute -> Word32
getTeamPaintAttribute :: BitGet TeamPaintAttribute
putTeamPaintAttribute :: TeamPaintAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.TeamPaint.TeamPaintAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.TeamPaint.TeamPaintAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.TeamPaint.TeamPaintAttribute

module Rattletrap.Attribute.String
newtype StringAttribute
StringAttribute :: Text -> StringAttribute
[stringAttributeValue] :: StringAttribute -> Text
getStringAttribute :: BitGet StringAttribute
putStringAttribute :: StringAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.String.StringAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.String.StringAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.String.StringAttribute

module Rattletrap.Attribute.RigidBodyState
data RigidBodyStateAttribute
RigidBodyStateAttribute :: Bool -> Vector -> CompressedWordVector -> Maybe Vector -> Maybe Vector -> RigidBodyStateAttribute
[rigidBodyStateAttributeSleeping] :: RigidBodyStateAttribute -> Bool
[rigidBodyStateAttributeLocation] :: RigidBodyStateAttribute -> Vector
[rigidBodyStateAttributeRotation] :: RigidBodyStateAttribute -> CompressedWordVector
[rigidBodyStateAttributeLinearVelocity] :: RigidBodyStateAttribute -> Maybe Vector
[rigidBodyStateAttributeAngularVelocity] :: RigidBodyStateAttribute -> Maybe Vector
getRigidBodyStateAttribute :: BitGet RigidBodyStateAttribute
putRigidBodyStateAttribute :: RigidBodyStateAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.RigidBodyState.RigidBodyStateAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.RigidBodyState.RigidBodyStateAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.RigidBodyState.RigidBodyStateAttribute

module Rattletrap.Attribute.Reservation
data ReservationAttribute
ReservationAttribute :: CompressedWord -> UniqueIdAttribute -> Maybe Text -> Bool -> Bool -> Maybe Word8 -> ReservationAttribute
[reservationAttributeNumber] :: ReservationAttribute -> CompressedWord
[reservationAttributeUniqueId] :: ReservationAttribute -> UniqueIdAttribute
[reservationAttributeName] :: ReservationAttribute -> Maybe Text
[reservationAttributeUnknown1] :: ReservationAttribute -> Bool
[reservationAttributeUnknown2] :: ReservationAttribute -> Bool
[reservationAttributeUnknown3] :: ReservationAttribute -> Maybe Word8
getReservationAttribute :: (Int, Int, Int) -> BitGet ReservationAttribute
putReservationAttribute :: ReservationAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.Reservation.ReservationAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.Reservation.ReservationAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.Reservation.ReservationAttribute

module Rattletrap.Attribute.QWord
newtype QWordAttribute
QWordAttribute :: Word64 -> QWordAttribute
[qWordAttributeValue] :: QWordAttribute -> Word64
getQWordAttribute :: BitGet QWordAttribute
putQWordAttribute :: QWordAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.QWord.QWordAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.QWord.QWordAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.QWord.QWordAttribute

module Rattletrap.Attribute.Product
data ProductAttribute
ProductAttribute :: Bool -> Word32 -> Maybe Text -> Maybe (Either CompressedWord Word32) -> ProductAttribute
[productAttributeUnknown] :: ProductAttribute -> Bool
[productAttributeObjectId] :: ProductAttribute -> Word32

-- | read-only
[productAttributeObjectName] :: ProductAttribute -> Maybe Text
[productAttributeValue] :: ProductAttribute -> Maybe (Either CompressedWord Word32)
getProductAttributes :: (Int, Int, Int) -> Map Word32 Text -> BitGet [ProductAttribute]
getProductAttribute :: (Int, Int, Int) -> Map Word32 Text -> BitGet ProductAttribute
putProductAttributes :: [ProductAttribute] -> BitPut ()
putProductAttribute :: ProductAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.Product.ProductAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.Product.ProductAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.Product.ProductAttribute

module Rattletrap.Attribute.PrivateMatchSettings
data PrivateMatchSettingsAttribute
PrivateMatchSettingsAttribute :: Text -> Word32 -> Word32 -> Text -> Text -> Bool -> PrivateMatchSettingsAttribute
[privateMatchSettingsAttributeMutators] :: PrivateMatchSettingsAttribute -> Text
[privateMatchSettingsAttributeJoinableBy] :: PrivateMatchSettingsAttribute -> Word32
[privateMatchSettingsAttributeMaxPlayers] :: PrivateMatchSettingsAttribute -> Word32
[privateMatchSettingsAttributeGameName] :: PrivateMatchSettingsAttribute -> Text
[privateMatchSettingsAttributePassword] :: PrivateMatchSettingsAttribute -> Text
[privateMatchSettingsAttributeFlag] :: PrivateMatchSettingsAttribute -> Bool
getPrivateMatchSettingsAttribute :: BitGet PrivateMatchSettingsAttribute
putPrivateMatchSettingsAttribute :: PrivateMatchSettingsAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.PrivateMatchSettings.PrivateMatchSettingsAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.PrivateMatchSettings.PrivateMatchSettingsAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.PrivateMatchSettings.PrivateMatchSettingsAttribute

module Rattletrap.Attribute.Pickup
data PickupAttribute
PickupAttribute :: Maybe Word32 -> Bool -> PickupAttribute
[pickupAttributeInstigatorId] :: PickupAttribute -> Maybe Word32
[pickupAttributePickedUp] :: PickupAttribute -> Bool
getPickupAttribute :: BitGet PickupAttribute
putPickupAttribute :: PickupAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.Pickup.PickupAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.Pickup.PickupAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.Pickup.PickupAttribute

module Rattletrap.Attribute.PartyLeader
data PartyLeaderAttribute
PartyLeaderAttribute :: Word8 -> Maybe (RemoteId, Word8) -> PartyLeaderAttribute
[partyLeaderAttributeSystemId] :: PartyLeaderAttribute -> Word8
[partyLeaderAttributeId] :: PartyLeaderAttribute -> Maybe (RemoteId, Word8)
getPartyLeaderAttribute :: (Int, Int, Int) -> BitGet PartyLeaderAttribute
putPartyLeaderAttribute :: PartyLeaderAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.PartyLeader.PartyLeaderAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.PartyLeader.PartyLeaderAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.PartyLeader.PartyLeaderAttribute

module Rattletrap.Attribute.MusicStinger
data MusicStingerAttribute
MusicStingerAttribute :: Bool -> Word32 -> Word8 -> MusicStingerAttribute
[musicStingerAttributeFlag] :: MusicStingerAttribute -> Bool
[musicStingerAttributeCue] :: MusicStingerAttribute -> Word32
[musicStingerAttributeTrigger] :: MusicStingerAttribute -> Word8
getMusicStingerAttribute :: BitGet MusicStingerAttribute
putMusicStingerAttribute :: MusicStingerAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.MusicStinger.MusicStingerAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.MusicStinger.MusicStingerAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.MusicStinger.MusicStingerAttribute

module Rattletrap.Attribute.Location
newtype LocationAttribute
LocationAttribute :: Vector -> LocationAttribute
[locationAttributeValue] :: LocationAttribute -> Vector
getLocationAttribute :: BitGet LocationAttribute
putLocationAttribute :: LocationAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.Location.LocationAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.Location.LocationAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.Location.LocationAttribute

module Rattletrap.Attribute.LoadoutOnline
newtype LoadoutOnlineAttribute
LoadoutOnlineAttribute :: [[ProductAttribute]] -> LoadoutOnlineAttribute
[loadoutAttributeValue] :: LoadoutOnlineAttribute -> [[ProductAttribute]]
getLoadoutOnlineAttribute :: (Int, Int, Int) -> Map Word32 Text -> BitGet LoadoutOnlineAttribute
putLoadoutOnlineAttribute :: LoadoutOnlineAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.LoadoutOnline.LoadoutOnlineAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.LoadoutOnline.LoadoutOnlineAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.LoadoutOnline.LoadoutOnlineAttribute

module Rattletrap.Attribute.LoadoutsOnline
data LoadoutsOnlineAttribute
LoadoutsOnlineAttribute :: LoadoutOnlineAttribute -> LoadoutOnlineAttribute -> Bool -> Bool -> LoadoutsOnlineAttribute
[loadoutsOnlineAttributeBlue] :: LoadoutsOnlineAttribute -> LoadoutOnlineAttribute
[loadoutsOnlineAttributeOrange] :: LoadoutsOnlineAttribute -> LoadoutOnlineAttribute
[loadoutsOnlineAttributeUnknown1] :: LoadoutsOnlineAttribute -> Bool
[loadoutsOnlineAttributeUnknown2] :: LoadoutsOnlineAttribute -> Bool
getLoadoutsOnlineAttribute :: (Int, Int, Int) -> Map Word32 Text -> BitGet LoadoutsOnlineAttribute
putLoadoutsOnlineAttribute :: LoadoutsOnlineAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.LoadoutsOnline.LoadoutsOnlineAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.LoadoutsOnline.LoadoutsOnlineAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.LoadoutsOnline.LoadoutsOnlineAttribute

module Rattletrap.Attribute.Loadout
data LoadoutAttribute
LoadoutAttribute :: Word8 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Maybe Word32 -> Maybe Word32 -> Maybe Word32 -> Maybe Word32 -> Maybe Word32 -> LoadoutAttribute
[loadoutAttributeVersion] :: LoadoutAttribute -> Word8
[loadoutAttributeBody] :: LoadoutAttribute -> Word32
[loadoutAttributeDecal] :: LoadoutAttribute -> Word32
[loadoutAttributeWheels] :: LoadoutAttribute -> Word32

-- | Now known as "rocket boost".
[loadoutAttributeRocketTrail] :: LoadoutAttribute -> Word32
[loadoutAttributeAntenna] :: LoadoutAttribute -> Word32
[loadoutAttributeTopper] :: LoadoutAttribute -> Word32
[loadoutAttributeUnknown1] :: LoadoutAttribute -> Word32
[loadoutAttributeUnknown2] :: LoadoutAttribute -> Maybe Word32
[loadoutAttributeEngineAudio] :: LoadoutAttribute -> Maybe Word32
[loadoutAttributeTrail] :: LoadoutAttribute -> Maybe Word32
[loadoutAttributeGoalExplosion] :: LoadoutAttribute -> Maybe Word32
[loadoutAttributeBanner] :: LoadoutAttribute -> Maybe Word32
getLoadoutAttribute :: BitGet LoadoutAttribute
getOptional :: Bool -> BitGet a -> BitGet (Maybe a)
putLoadoutAttribute :: LoadoutAttribute -> BitPut ()
putOptional :: Maybe a -> (a -> BitPut ()) -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.Loadout.LoadoutAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.Loadout.LoadoutAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.Loadout.LoadoutAttribute

module Rattletrap.Attribute.Loadouts
data LoadoutsAttribute
LoadoutsAttribute :: LoadoutAttribute -> LoadoutAttribute -> LoadoutsAttribute
[loadoutsAttributeBlue] :: LoadoutsAttribute -> LoadoutAttribute
[loadoutsAttributeOrange] :: LoadoutsAttribute -> LoadoutAttribute
getLoadoutsAttribute :: BitGet LoadoutsAttribute
putLoadoutsAttribute :: LoadoutsAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.Loadouts.LoadoutsAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.Loadouts.LoadoutsAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.Loadouts.LoadoutsAttribute

module Rattletrap.Attribute.Int
newtype IntAttribute
IntAttribute :: Int32 -> IntAttribute
[intAttributeValue] :: IntAttribute -> Int32
getIntAttribute :: BitGet IntAttribute
putIntAttribute :: IntAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.Int.IntAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.Int.IntAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.Int.IntAttribute

module Rattletrap.Attribute.Float
newtype FloatAttribute
FloatAttribute :: Float32 -> FloatAttribute
[floatAttributeValue] :: FloatAttribute -> Float32
getFloatAttribute :: BitGet FloatAttribute
putFloatAttribute :: FloatAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.Float.FloatAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.Float.FloatAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.Float.FloatAttribute

module Rattletrap.Attribute.FlaggedInt
data FlaggedIntAttribute
FlaggedIntAttribute :: Bool -> Int32 -> FlaggedIntAttribute
[flaggedIntAttributeFlag] :: FlaggedIntAttribute -> Bool
[flaggedIntAttributeInt] :: FlaggedIntAttribute -> Int32
getFlaggedIntAttribute :: BitGet FlaggedIntAttribute
putFlaggedIntAttribute :: FlaggedIntAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.FlaggedInt.FlaggedIntAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.FlaggedInt.FlaggedIntAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.FlaggedInt.FlaggedIntAttribute

module Rattletrap.Attribute.ExtendedExplosion
data ExtendedExplosionAttribute
ExtendedExplosionAttribute :: Int32 -> Vector -> Bool -> Int32 -> ExtendedExplosionAttribute
[extendedExplosionAttributeActorId] :: ExtendedExplosionAttribute -> Int32
[extendedExplosionAttributeLocation] :: ExtendedExplosionAttribute -> Vector
[extendedExplosionAttributeUnknown1] :: ExtendedExplosionAttribute -> Bool
[extendedExplosionAttributeUnknown2] :: ExtendedExplosionAttribute -> Int32
getExtendedExplosionAttribute :: BitGet ExtendedExplosionAttribute
putExtendedExplosionAttribute :: ExtendedExplosionAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.ExtendedExplosion.ExtendedExplosionAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.ExtendedExplosion.ExtendedExplosionAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.ExtendedExplosion.ExtendedExplosionAttribute

module Rattletrap.Attribute.Explosion
data ExplosionAttribute
ExplosionAttribute :: Int32 -> Vector -> ExplosionAttribute
[explosionAttributeActorId] :: ExplosionAttribute -> Int32
[explosionAttributeLocation] :: ExplosionAttribute -> Vector
getExplosionAttribute :: BitGet ExplosionAttribute
putExplosionAttribute :: ExplosionAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.Explosion.ExplosionAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.Explosion.ExplosionAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.Explosion.ExplosionAttribute

module Rattletrap.Attribute.Demolish
data DemolishAttribute
DemolishAttribute :: Bool -> Word32 -> Bool -> Word32 -> Vector -> Vector -> DemolishAttribute
[demolishAttributeAttackerFlag] :: DemolishAttribute -> Bool
[demolishAttributeAttackerActorId] :: DemolishAttribute -> Word32
[demolishAttributeVictimFlag] :: DemolishAttribute -> Bool
[demolishAttributeVictimActorId] :: DemolishAttribute -> Word32
[demolishAttributeAttackerVelocity] :: DemolishAttribute -> Vector
[demolishAttributeVictimVelocity] :: DemolishAttribute -> Vector
getDemolishAttribute :: BitGet DemolishAttribute
putDemolishAttribute :: DemolishAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.Demolish.DemolishAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.Demolish.DemolishAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.Demolish.DemolishAttribute

module Rattletrap.Attribute.DamageState
data DamageStateAttribute
DamageStateAttribute :: Word8 -> Bool -> Int32 -> Vector -> Bool -> Bool -> DamageStateAttribute
[damageStateAttributeUnknown1] :: DamageStateAttribute -> Word8
[damageStateAttributeUnknown2] :: DamageStateAttribute -> Bool
[damageStateAttributeUnknown3] :: DamageStateAttribute -> Int32
[damageStateAttributeUnknown4] :: DamageStateAttribute -> Vector
[damageStateAttributeUnknown5] :: DamageStateAttribute -> Bool
[damageStateAttributeUnknown6] :: DamageStateAttribute -> Bool
getDamageStateAttribute :: BitGet DamageStateAttribute
putDamageStateAttribute :: DamageStateAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.DamageState.DamageStateAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.DamageState.DamageStateAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.DamageState.DamageStateAttribute

module Rattletrap.Attribute.ClubColors
data ClubColorsAttribute
ClubColorsAttribute :: Bool -> Word8 -> Bool -> Word8 -> ClubColorsAttribute
[clubColorsAttributeBlueFlag] :: ClubColorsAttribute -> Bool
[clubColorsAttributeBlueColor] :: ClubColorsAttribute -> Word8
[clubColorsAttributeOrangeFlag] :: ClubColorsAttribute -> Bool
[clubColorsAttributeOrangeColor] :: ClubColorsAttribute -> Word8
getClubColorsAttribute :: BitGet ClubColorsAttribute
putClubColorsAttribute :: ClubColorsAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.ClubColors.ClubColorsAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.ClubColors.ClubColorsAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.ClubColors.ClubColorsAttribute

module Rattletrap.Attribute.CamSettings
data CamSettingsAttribute
CamSettingsAttribute :: Float32 -> Float32 -> Float32 -> Float32 -> Float32 -> Float32 -> Maybe Float32 -> CamSettingsAttribute
[camSettingsAttributeFov] :: CamSettingsAttribute -> Float32
[camSettingsAttributeHeight] :: CamSettingsAttribute -> Float32
[camSettingsAttributeAngle] :: CamSettingsAttribute -> Float32
[camSettingsAttributeDistance] :: CamSettingsAttribute -> Float32
[camSettingsAttributeStiffness] :: CamSettingsAttribute -> Float32
[camSettingsAttributeSwivelSpeed] :: CamSettingsAttribute -> Float32
[camSettingsAttributeTransitionSpeed] :: CamSettingsAttribute -> Maybe Float32
getCamSettingsAttribute :: (Int, Int, Int) -> BitGet CamSettingsAttribute
putCamSettingsAttribute :: CamSettingsAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.CamSettings.CamSettingsAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.CamSettings.CamSettingsAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.CamSettings.CamSettingsAttribute

module Rattletrap.Attribute.Byte
newtype ByteAttribute
ByteAttribute :: Word8 -> ByteAttribute
[byteAttributeValue] :: ByteAttribute -> Word8
getByteAttribute :: BitGet ByteAttribute
putByteAttribute :: ByteAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.Byte.ByteAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.Byte.ByteAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.Byte.ByteAttribute

module Rattletrap.Attribute.AppliedDamage
data AppliedDamageAttribute
AppliedDamageAttribute :: Word8 -> Vector -> Int32 -> Int32 -> AppliedDamageAttribute
[appliedDamageAttributeUnknown1] :: AppliedDamageAttribute -> Word8
[appliedDamageAttributeLocation] :: AppliedDamageAttribute -> Vector
[appliedDamageAttributeUnknown3] :: AppliedDamageAttribute -> Int32
[appliedDamageAttributeUnknown4] :: AppliedDamageAttribute -> Int32
getAppliedDamageAttribute :: BitGet AppliedDamageAttribute
putAppliedDamageAttribute :: AppliedDamageAttribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.AppliedDamage.AppliedDamageAttribute
instance GHC.Classes.Ord Rattletrap.Attribute.AppliedDamage.AppliedDamageAttribute
instance GHC.Classes.Eq Rattletrap.Attribute.AppliedDamage.AppliedDamageAttribute

module Rattletrap.AttributeValue
data AttributeValue
AppliedDamageAttributeValue :: AppliedDamageAttribute -> AttributeValue
BooleanAttributeValue :: BooleanAttribute -> AttributeValue
ByteAttributeValue :: ByteAttribute -> AttributeValue
CamSettingsAttributeValue :: CamSettingsAttribute -> AttributeValue
ClubColorsAttributeValue :: ClubColorsAttribute -> AttributeValue
DamageStateAttributeValue :: DamageStateAttribute -> AttributeValue
DemolishAttributeValue :: DemolishAttribute -> AttributeValue
EnumAttributeValue :: EnumAttribute -> AttributeValue
ExplosionAttributeValue :: ExplosionAttribute -> AttributeValue
ExtendedExplosionAttributeValue :: ExtendedExplosionAttribute -> AttributeValue
FlaggedIntAttributeValue :: FlaggedIntAttribute -> AttributeValue
FloatAttributeValue :: FloatAttribute -> AttributeValue
GameModeAttributeValue :: GameModeAttribute -> AttributeValue
IntAttributeValue :: IntAttribute -> AttributeValue
LoadoutAttributeValue :: LoadoutAttribute -> AttributeValue
LoadoutOnlineAttributeValue :: LoadoutOnlineAttribute -> AttributeValue
LoadoutsAttributeValue :: LoadoutsAttribute -> AttributeValue
LoadoutsOnlineAttributeValue :: LoadoutsOnlineAttribute -> AttributeValue
LocationAttributeValue :: LocationAttribute -> AttributeValue
MusicStingerAttributeValue :: MusicStingerAttribute -> AttributeValue
PartyLeaderAttributeValue :: PartyLeaderAttribute -> AttributeValue
PickupAttributeValue :: PickupAttribute -> AttributeValue
PrivateMatchSettingsAttributeValue :: PrivateMatchSettingsAttribute -> AttributeValue
QWordAttributeValue :: QWordAttribute -> AttributeValue
ReservationAttributeValue :: ReservationAttribute -> AttributeValue
RigidBodyStateAttributeValue :: RigidBodyStateAttribute -> AttributeValue
StringAttributeValue :: StringAttribute -> AttributeValue
TeamPaintAttributeValue :: TeamPaintAttribute -> AttributeValue
UniqueIdAttributeValue :: UniqueIdAttribute -> AttributeValue
WeldedInfoAttributeValue :: WeldedInfoAttribute -> AttributeValue
getAttributeValue :: (Int, Int, Int) -> Map Word32 Text -> Text -> BitGet AttributeValue
attributeTypes :: Map Text AttributeType
putAttributeValue :: AttributeValue -> BitPut ()
instance GHC.Show.Show Rattletrap.AttributeValue.AttributeValue
instance GHC.Classes.Ord Rattletrap.AttributeValue.AttributeValue
instance GHC.Classes.Eq Rattletrap.AttributeValue.AttributeValue

module Rattletrap.ActorMap
type ActorMap = Map CompressedWord Word32

-- | <i>Deprecated: use Data.Map.Strict.empty</i>
makeActorMap :: ActorMap

-- | <i>Deprecated: use Data.Map.Strict.insert</i>
updateActorMap :: CompressedWord -> Word32 -> ActorMap -> ActorMap

module Rattletrap.ClassAttributeMap

-- | This data structure holds all the information about classes, objects,
--   and attributes in the replay. The class hierarchy is not fixed; it is
--   encoded in the <a>Content</a>. Similarly, the attributes that belong
--   to each class are not fixed either. Converting the raw data into a
--   usable structure is tedious; see <a>makeClassAttributeMap</a>.
data ClassAttributeMap
ClassAttributeMap :: Map Word32 Text -> Map Word32 Word32 -> Map Word32 (Map Word32 Word32) -> IntMap Text -> ClassAttributeMap

-- | A map from object IDs to their names.
[classAttributeMapObjectMap] :: ClassAttributeMap -> Map Word32 Text

-- | A map from object IDs to their class IDs.
[classAttributeMapObjectClassMap] :: ClassAttributeMap -> Map Word32 Word32

-- | A map from class IDs to a map from attribute stream IDs to attribute
--   IDs.
[classAttributeMapValue] :: ClassAttributeMap -> Map Word32 (Map Word32 Word32)
[classAttributeMapNameMap] :: ClassAttributeMap -> IntMap Text

-- | Makes a <a>ClassAttributeMap</a> given the necessary fields from the
--   <a>Content</a>.
makeClassAttributeMap :: List Text -> List ClassMapping -> List Cache -> List Text -> ClassAttributeMap
makeNameMap :: List Text -> IntMap Text
getName :: IntMap Text -> Word32 -> Maybe Text
makeObjectClassMap :: Map Word32 Text -> Bimap Word32 Text -> Map Word32 Word32
getClassId :: Map Word32 Text -> Bimap Word32 Text -> Word32 -> Maybe Word32
makeClassCache :: Bimap Word32 Text -> List Cache -> [(Maybe Text, Word32, Word32, Word32)]
makeClassMap :: List ClassMapping -> Bimap Word32 Text
makeAttributeMap :: List Cache -> Map Word32 (Map Word32 Word32)
makeShallowParentMap :: [(Maybe Text, Word32, Word32, Word32)] -> Map Word32 Word32
makeParentMap :: [(Maybe Text, Word32, Word32, Word32)] -> Map Word32 [Word32]
getParentClasses :: Map Word32 Word32 -> Word32 -> [Word32]
getParentClass :: Maybe Text -> Word32 -> [(Maybe Text, Word32, Word32, Word32)] -> Maybe Word32
getParentClassById :: Word32 -> [(Maybe Text, Word32, Word32, Word32)] -> Maybe Word32
getParentClassByName :: Text -> Word32 -> [(Maybe Text, Word32, Word32, Word32)] -> Maybe Word32
parentClasses :: Map Text Text
makeObjectMap :: List Text -> Map Word32 Text
getObjectName :: Map Word32 Text -> Word32 -> Maybe Text
getClassName :: Text -> Maybe Text
normalizeObjectName :: Text -> Text
objectClasses :: Map Text Text
classHasLocation :: Text -> Bool
classesWithLocation :: Set Text
classHasRotation :: Text -> Bool
classesWithRotation :: Set Text
getAttributeIdLimit :: Map Word32 Word32 -> Maybe Word
getAttributeName :: ClassAttributeMap -> Map Word32 Word32 -> CompressedWord -> Maybe Text
getAttributeMap :: ClassAttributeMap -> ActorMap -> CompressedWord -> Maybe (Map Word32 Word32)
instance GHC.Show.Show Rattletrap.ClassAttributeMap.ClassAttributeMap
instance GHC.Classes.Ord Rattletrap.ClassAttributeMap.ClassAttributeMap
instance GHC.Classes.Eq Rattletrap.ClassAttributeMap.ClassAttributeMap

module Rattletrap.Replication.Spawned
data SpawnedReplication
SpawnedReplication :: Bool -> Maybe Word32 -> Maybe Text -> Word32 -> Text -> Text -> Initialization -> SpawnedReplication

-- | Unclear what this is.
[spawnedReplicationFlag] :: SpawnedReplication -> Bool
[spawnedReplicationNameIndex] :: SpawnedReplication -> Maybe Word32

-- | Read-only! Changing a replication's name requires editing the
--   <a>spawnedReplicationNameIndex</a> and maybe the class attribute map.
[spawnedReplicationName] :: SpawnedReplication -> Maybe Text
[spawnedReplicationObjectId] :: SpawnedReplication -> Word32

-- | Read-only! Changing a replication's object requires editing the class
--   attribute map.
[spawnedReplicationObjectName] :: SpawnedReplication -> Text

-- | Read-only! Changing a replication's class requires editing the class
--   attribute map.
[spawnedReplicationClassName] :: SpawnedReplication -> Text
[spawnedReplicationInitialization] :: SpawnedReplication -> Initialization
getSpawnedReplication :: (Int, Int, Int) -> ClassAttributeMap -> ActorMap -> CompressedWord -> BitGet (SpawnedReplication, ActorMap)
putSpawnedReplication :: SpawnedReplication -> BitPut ()
lookupName :: Monad m => ClassAttributeMap -> Maybe Word32 -> m (Maybe Text)
lookupObjectName :: Monad m => ClassAttributeMap -> Word32 -> m Text
lookupClassName :: Monad m => Text -> m Text
instance GHC.Show.Show Rattletrap.Replication.Spawned.SpawnedReplication
instance GHC.Classes.Ord Rattletrap.Replication.Spawned.SpawnedReplication
instance GHC.Classes.Eq Rattletrap.Replication.Spawned.SpawnedReplication

module Rattletrap.Attribute
data Attribute
Attribute :: CompressedWord -> Text -> AttributeValue -> Attribute
[attributeId] :: Attribute -> CompressedWord

-- | Read-only! Changing an attribute's name requires editing the class
--   attribute map.
[attributeName] :: Attribute -> Text
[attributeValue] :: Attribute -> AttributeValue
getAttributes :: (Int, Int, Int) -> ClassAttributeMap -> ActorMap -> CompressedWord -> BitGet [Attribute]
putAttributes :: [Attribute] -> BitPut ()
getAttribute :: (Int, Int, Int) -> ClassAttributeMap -> ActorMap -> CompressedWord -> BitGet Attribute
putAttribute :: Attribute -> BitPut ()
instance GHC.Show.Show Rattletrap.Attribute.Attribute
instance GHC.Classes.Ord Rattletrap.Attribute.Attribute
instance GHC.Classes.Eq Rattletrap.Attribute.Attribute

module Rattletrap.Replication.Updated
newtype UpdatedReplication
UpdatedReplication :: [Attribute] -> UpdatedReplication
[updatedReplicationAttributes] :: UpdatedReplication -> [Attribute]
getUpdatedReplication :: (Int, Int, Int) -> ClassAttributeMap -> ActorMap -> CompressedWord -> BitGet UpdatedReplication
putUpdatedReplication :: UpdatedReplication -> BitPut ()
instance GHC.Show.Show Rattletrap.Replication.Updated.UpdatedReplication
instance GHC.Classes.Ord Rattletrap.Replication.Updated.UpdatedReplication
instance GHC.Classes.Eq Rattletrap.Replication.Updated.UpdatedReplication

module Rattletrap.ReplicationValue
data ReplicationValue

-- | Creates a new actor.
SpawnedReplicationValue :: SpawnedReplication -> ReplicationValue

-- | Updates an existing actor.
UpdatedReplicationValue :: UpdatedReplication -> ReplicationValue

-- | Destroys an existing actor.
DestroyedReplicationValue :: DestroyedReplication -> ReplicationValue
getReplicationValue :: (Int, Int, Int) -> ClassAttributeMap -> ActorMap -> CompressedWord -> BitGet (ReplicationValue, ActorMap)
putReplicationValue :: ReplicationValue -> BitPut ()
instance GHC.Show.Show Rattletrap.ReplicationValue.ReplicationValue
instance GHC.Classes.Ord Rattletrap.ReplicationValue.ReplicationValue
instance GHC.Classes.Eq Rattletrap.ReplicationValue.ReplicationValue

module Rattletrap.Replication
data Replication
Replication :: CompressedWord -> ReplicationValue -> Replication
[replicationActorId] :: Replication -> CompressedWord
[replicationValue] :: Replication -> ReplicationValue
getReplications :: (Int, Int, Int) -> Word -> ClassAttributeMap -> ActorMap -> BitGet ([Replication], ActorMap)
putReplications :: [Replication] -> BitPut ()
getReplication :: (Int, Int, Int) -> Word -> ClassAttributeMap -> ActorMap -> BitGet (Maybe (Replication, ActorMap))
putReplication :: Replication -> BitPut ()
instance GHC.Show.Show Rattletrap.Replication.Replication
instance GHC.Classes.Ord Rattletrap.Replication.Replication
instance GHC.Classes.Eq Rattletrap.Replication.Replication

module Rattletrap.Frame
data Frame
Frame :: Float32 -> Float32 -> [Replication] -> Frame

-- | Time in seconds since the beginning of the match.
[frameTime] :: Frame -> Float32

-- | Time in seconds since the last frame. Usually about 0.03 since there
--   are 30 frames per second.
[frameDelta] :: Frame -> Float32
[frameReplications] :: Frame -> [Replication]
getFrames :: (Int, Int, Int) -> Int -> Word -> ClassAttributeMap -> ActorMap -> BitGet ([Frame], ActorMap)
putFrames :: [Frame] -> BitPut ()
getFrame :: (Int, Int, Int) -> Word -> ClassAttributeMap -> ActorMap -> BitGet (Frame, ActorMap)
putFrame :: Frame -> BitPut ()
instance GHC.Show.Show Rattletrap.Frame.Frame
instance GHC.Classes.Ord Rattletrap.Frame.Frame
instance GHC.Classes.Eq Rattletrap.Frame.Frame

module Rattletrap.Content

-- | Contains low-level game data about a <a>Replay</a>.
data Content
Content :: List Text -> List KeyFrame -> Word32 -> [Frame] -> List Message -> List Mark -> List Text -> List Text -> List Text -> List ClassMapping -> List Cache -> Content

-- | This typically only has one element, like
--   <tt>stadium_oob_audio_map</tt>.
[contentLevels] :: Content -> List Text

-- | A list of which frames are key frames. Although they aren't necessary
--   for replay, key frames are frames that replicate every actor. They
--   typically happen once every 10 seconds.
[contentKeyFrames] :: Content -> List KeyFrame

-- | The size of the stream in bytes. This is only really necessary because
--   the stream has some arbitrary amount of padding at the end.
[contentStreamSize] :: Content -> Word32

-- | The actual game data. This is where all the interesting information
--   is.
[contentFrames] :: Content -> [Frame]

-- | Debugging messages. In newer replays, this is always empty.
[contentMessages] :: Content -> List Message

-- | Tick marks shown on the scrubber when watching a replay.
[contentMarks] :: Content -> List Mark

-- | A list of <tt>.upk</tt> files to load, like
--   <tt>..\..\TAGame\CookedPCConsole\Stadium_P.upk</tt>.
[contentPackages] :: Content -> List Text

-- | Objects in the stream. Used for the <a>ClassAttributeMap</a>.
[contentObjects] :: Content -> List Text

-- | It's not clear what these are used for. This list is usually not
--   empty, but appears unused otherwise.
[contentNames] :: Content -> List Text

-- | A mapping between classes and their ID in the stream. Used for the
--   <a>ClassAttributeMap</a>.
[contentClassMappings] :: Content -> List ClassMapping

-- | A list of classes along with their parent classes and attributes. Used
--   for the <a>ClassAttributeMap</a>.
[contentCaches] :: Content -> List Cache
getContent :: (Int, Int, Int) -> Int -> Word -> Get Content
putContent :: Content -> Put
instance GHC.Show.Show Rattletrap.Content.Content
instance GHC.Classes.Ord Rattletrap.Content.Content
instance GHC.Classes.Eq Rattletrap.Content.Content

module Rattletrap.Replay

-- | A Rocket League replay.
data Replay
Replay :: Section Header -> Section Content -> Replay

-- | This has most of the high-level metadata.
[replayHeader] :: Replay -> Section Header

-- | This has most of the low-level game data.
[replayContent] :: Replay -> Section Content

-- | Parses a raw replay. Use this with <a>runGet</a>.
--   
--   <pre>
--   let replay = <a>runGet</a> <a>getReplay</a> bytes
--   </pre>
getReplay :: Get Replay

-- | Generates a raw replay. Use this with <a>runPut</a>.
--   
--   <pre>
--   let bytes = <a>runPut</a> (<a>putReplay</a> replay)
--   </pre>
putReplay :: Replay -> Put
instance GHC.Show.Show Rattletrap.Replay.Replay
instance GHC.Classes.Ord Rattletrap.Replay.Replay
instance GHC.Classes.Eq Rattletrap.Replay.Replay

module Rattletrap.Json
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Primitive.Word8.Word8
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Primitive.Word8.Word8
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Primitive.Word64.Word64
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Primitive.Word64.Word64
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Primitive.Word32.Word32
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Primitive.Word32.Word32
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.WeldedInfo.WeldedInfoAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.WeldedInfo.WeldedInfoAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Primitive.Vector.Vector
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Primitive.Vector.Vector
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Replication.Updated.UpdatedReplication
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Replication.Updated.UpdatedReplication
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.UniqueId.UniqueIdAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.UniqueId.UniqueIdAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Primitive.Text.Text
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Primitive.Text.Text
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.TeamPaint.TeamPaintAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.TeamPaint.TeamPaintAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.String.StringAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.String.StringAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Replication.Spawned.SpawnedReplication
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Replication.Spawned.SpawnedReplication
instance Data.Aeson.Types.ToJSON.ToJSON a => Data.Aeson.Types.ToJSON.ToJSON (Rattletrap.Primitive.Section.Section a)
instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Rattletrap.Primitive.Section.Section a)
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.RigidBodyState.RigidBodyStateAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.RigidBodyState.RigidBodyStateAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.Reservation.ReservationAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.Reservation.ReservationAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.ReplicationValue.ReplicationValue
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.ReplicationValue.ReplicationValue
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Replication.Replication
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Replication.Replication
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Replay.Replay
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Replay.Replay
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.RemoteId.RemoteId
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.RemoteId.RemoteId
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.QWord.QWordAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.QWord.QWordAttribute
instance Data.Aeson.Types.ToJSON.ToJSON a => Data.Aeson.Types.ToJSON.ToJSON (Rattletrap.PropertyValue.PropertyValue a)
instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Rattletrap.PropertyValue.PropertyValue a)
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Property.Property
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Property.Property
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.Product.ProductAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.Product.ProductAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.PrivateMatchSettings.PrivateMatchSettingsAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.PrivateMatchSettings.PrivateMatchSettingsAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.Pickup.PickupAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.Pickup.PickupAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.PartyLeader.PartyLeaderAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.PartyLeader.PartyLeaderAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.MusicStinger.MusicStingerAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.MusicStinger.MusicStingerAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Message.Message
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Message.Message
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Mark.Mark
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Mark.Mark
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.Location.LocationAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.Location.LocationAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.LoadoutsOnline.LoadoutsOnlineAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.LoadoutsOnline.LoadoutsOnlineAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.Loadouts.LoadoutsAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.Loadouts.LoadoutsAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.LoadoutOnline.LoadoutOnlineAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.LoadoutOnline.LoadoutOnlineAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.Loadout.LoadoutAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.Loadout.LoadoutAttribute
instance Data.Aeson.Types.ToJSON.ToJSON a => Data.Aeson.Types.ToJSON.ToJSON (Rattletrap.Primitive.List.List a)
instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Rattletrap.Primitive.List.List a)
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.KeyFrame.KeyFrame
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.KeyFrame.KeyFrame
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.Int.IntAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.Int.IntAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Primitive.Int8Vector.Int8Vector
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Primitive.Int8Vector.Int8Vector
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Primitive.Int8.Int8
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Primitive.Int8.Int8
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Primitive.Int32.Int32
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Primitive.Int32.Int32
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Initialization.Initialization
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Initialization.Initialization
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Header.Header
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Header.Header
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.GameMode.GameModeAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.GameMode.GameModeAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Frame.Frame
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Frame.Frame
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.Float.FloatAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.Float.FloatAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Primitive.Float32.Float32
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Primitive.Float32.Float32
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.FlaggedInt.FlaggedIntAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.FlaggedInt.FlaggedIntAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.ExtendedExplosion.ExtendedExplosionAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.ExtendedExplosion.ExtendedExplosionAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.Explosion.ExplosionAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.Explosion.ExplosionAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.Enum.EnumAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.Enum.EnumAttribute
instance Data.Aeson.Types.ToJSON.ToJSON a => Data.Aeson.Types.ToJSON.ToJSON (Rattletrap.Primitive.Dictionary.Dictionary a)
instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Rattletrap.Primitive.Dictionary.Dictionary a)
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Replication.Destroyed.DestroyedReplication
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Replication.Destroyed.DestroyedReplication
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.Demolish.DemolishAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.Demolish.DemolishAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.DamageState.DamageStateAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.DamageState.DamageStateAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Content.Content
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Content.Content
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Primitive.CompressedWordVector.CompressedWordVector
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Primitive.CompressedWordVector.CompressedWordVector
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Primitive.CompressedWord.CompressedWord
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Primitive.CompressedWord.CompressedWord
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.ClubColors.ClubColorsAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.ClubColors.ClubColorsAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.ClassMapping.ClassMapping
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.ClassMapping.ClassMapping
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.CamSettings.CamSettingsAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.CamSettings.CamSettingsAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Cache.Cache
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Cache.Cache
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.Byte.ByteAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.Byte.ByteAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.Boolean.BooleanAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.Boolean.BooleanAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.AttributeValue.AttributeValue
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.AttributeValue.AttributeValue
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.AttributeMapping.AttributeMapping
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.AttributeMapping.AttributeMapping
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.Attribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.Attribute
instance Data.Aeson.Types.ToJSON.ToJSON Rattletrap.Attribute.AppliedDamage.AppliedDamageAttribute
instance Data.Aeson.Types.FromJSON.FromJSON Rattletrap.Attribute.AppliedDamage.AppliedDamageAttribute


-- | This module provides helper functions for converting replays to and
--   from both their binary format and JSON.
module Rattletrap.Helper

-- | Parses a raw replay.
decodeReplay :: ByteString -> Either String Replay

-- | Encodes a replay as JSON.
encodeJson :: Replay -> ByteString

-- | Parses a JSON replay.
decodeJson :: ByteString -> Either String Replay

-- | Encodes a raw replay.
encodeReplay :: Replay -> ByteString

-- | <a>decodeReplay</a>

-- | <i>Deprecated: use Data.ByteString.Lazy.readFile</i>
decodeReplayFile :: FilePath -> IO (Either String Replay)

-- | <a>encodeJson</a>

-- | <i>Deprecated: use Data.ByteString.Lazy.writeFile</i>
encodeJsonFile :: Replay -> FilePath -> IO ()

-- | <a>decodeJson</a>

-- | <i>Deprecated: use Data.ByteString.Lazy.readFile</i>
decodeJsonFile :: FilePath -> IO (Either String Replay)

-- | <a>encodeReplay</a>

-- | <i>Deprecated: use Data.ByteString.Lazy.writeFile</i>
encodeReplayFile :: Replay -> FilePath -> IO ()

-- | <a>decodeReplay</a>

-- | <i>Deprecated: use Data.ByteString.Lazy.hGetContents</i>
decodeReplayHandle :: Handle -> IO (Either String Replay)

-- | <a>encodeJson</a>

-- | <i>Deprecated: use Data.ByteString.Lazy.hPut</i>
encodeJsonHandle :: Replay -> Handle -> IO ()

-- | <a>decodeJson</a>

-- | <i>Deprecated: use Data.ByteString.Lazy.hGetContents</i>
decodeJsonHandle :: Handle -> IO (Either String Replay)

-- | <a>encodeReplay</a>

-- | <i>Deprecated: use Data.ByteString.Lazy.hPut</i>
encodeReplayHandle :: Replay -> Handle -> IO ()

module Rattletrap.Version
version :: Version

module Rattletrap.Main

-- | Gets command-line arguments and passes them to <a>mainWithArgs</a>.
main :: IO ()

-- | Runs the main command-line interface. Can be used in one of three
--   modes:
--   
--   <ol>
--   <li><tt>mainWithArgs ["version"]</tt>: Prints out the version number
--   and exits. Mostly useful for debugging.</li>
--   <li><tt>mainWithArgs ["decode"]</tt>: Parses a raw replay into JSON.
--   By default this reads from STDIN and writes to STDOUT. To read from a
--   file, pass a second argument like <tt>mainWithArgs ["decode",
--   "input.replay"]</tt>. To write to a file, pass a third argument like
--   <tt>mainWithArgs ["decode", "input.replay", "output.json"]</tt>.</li>
--   <li><tt>mainWithArgs ["encode"]</tt>: Generates a raw replay from
--   JSON. The handling of input and output is the same as decoding.</li>
--   </ol>
mainWithArgs :: [String] -> IO ()
getIO :: [FilePath] -> IO (IO ByteString, ByteString -> IO ())
readUrlOrFile :: FilePath -> IO ByteString


-- | Rattletrap is a tool for parsing and generating Rocket League replays.
--   It is typically used as an executable; see <a>Rattletrap.Main</a> for
--   details about that interface. Using Rattletrap from Haskell is as easy
--   as importing this module. Together with <a>Data.ByteString.Lazy</a>
--   and <a>Data.Binary.Get</a>, you can decode a <a>Replay</a> value. Then
--   you can transform it into JSON with <a>Data.Aeson</a>. For example:
--   
--   <pre>
--   let file = "path-to/some.replay"
--   bytes &lt;- <a>readFile</a> file
--   let replay = <a>runGet</a> <a>getReplay</a> bytes
--   let json = <a>encode</a> replay
--   <a>putStr</a> json
--   </pre>
--   
--   There are a few unusual aspects of Rattletrap to be aware of:
--   
--   <ul>
--   <li>In order to improve memory usage, everything Rattletrap does is
--   strict. Don't expect any lazy values or evaluation.</li>
--   <li>Some names, like <a>Text</a>, collide with commonly-used modules.
--   Use qualified imports to avoid collisions.</li>
--   <li>No instances of <a>Binary</a> are provided. Use functions like
--   <a>getReplay</a> instead. This was done to improve type inference and
--   make profiling easier. Also some types require information that could
--   not be provided by the <a>Binary</a> interface.</li>
--   <li>Importing one specific module is not recommended because all JSON
--   instances are defined as orphans in <a>Rattletrap.Json</a>.</li>
--   </ul>
module Rattletrap
