octane-0.13.1: Parse Rocket League replays.

Safe HaskellNone
LanguageHaskell2010

Octane.Type.CompressedWord

Synopsis

Documentation

data CompressedWord Source #

A compressed, unsigned integer. When serialized, the least significant bit is first. Bits are serialized until the next bit would be greater than the limit, or the number of bits necessary to reach the limit has been reached, whichever comes first.

Constructors

CompressedWord 

Fields

Instances

Eq CompressedWord Source # 
Show CompressedWord Source # 
Generic CompressedWord Source # 

Associated Types

type Rep CompressedWord :: * -> * #

ToJSON CompressedWord Source #

Encoded as an object.

>>> Aeson.encode (CompressedWord 2 1)
"{\"Value\":1,\"Limit\":2}"
BinaryBit CompressedWord Source #

Abuses the first argument to getBits as the maximum value.

>>> Binary.runGet (BinaryBit.runBitGet (BinaryBit.getBits 4)) "\x7f" :: CompressedWord
CompressedWord {limit = 4, value = 2}
>>> Binary.runPut (BinaryBit.runBitPut (BinaryBit.putBits 0 (CompressedWord 4 2)))
"\128"
NFData CompressedWord Source # 

Methods

rnf :: CompressedWord -> () #

type Rep CompressedWord Source # 
type Rep CompressedWord = D1 (MetaData "CompressedWord" "Octane.Type.CompressedWord" "octane-0.13.1-LDgcSqYqu1AFVuudsUsa9X" False) (C1 (MetaCons "CompressedWord" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "limit") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Word)) (S1 (MetaSel (Just Symbol "value") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Word))))

fromCompressedWord :: Integral a => CompressedWord -> a Source #

Converts a CompressedWord into any integral value. This is a lossy conversion because it discards the compressed word's maximum value.

>>> fromCompressedWord (CompressedWord 2 1) :: Int
1