bitstream-0.3.0.1: Fast, packed, strict and lazy bit streams with stream fusion

Safe HaskellNone
LanguageHaskell2010

Data.Bitstream.Packet

Description

For internal use only.

Synopsis

Documentation

data Left Source #

Left bitstreams interpret an octet as a vector of bits whose LSB comes first and MSB comes last e.g.

  • 11110000 => [False, False, False, False, True, True , True , True]
  • 10010100 => [False, False, True , False, True, False, False, True]

Bits operations (like toBits) treat a Left bitstream as a little-endian integer.

Instances
Ord (Packet Left) Source # 
Instance details

Defined in Data.Bitstream.Packet

Show (Packet Left) Source # 
Instance details

Defined in Data.Bitstream.Packet

Bitstream (Packet Left) Source # 
Instance details

Defined in Data.Bitstream.Packet

Bitstream (Bitstream Left) Source # 
Instance details

Defined in Data.Bitstream

Bitstream (Bitstream Left) Source # 
Instance details

Defined in Data.Bitstream.Lazy

data Right Source #

Right bitstreams interpret an octet as a vector of bits whose MSB comes first and LSB comes last e.g.

  • 11110000 => [True, True , True , True, False, False, False, False]
  • 10010100 => [True, False, False, True, False, True , False, False]

Bits operations (like toBits) treat a Right bitstream as a big-endian integer.

Instances
Ord (Packet Right) Source # 
Instance details

Defined in Data.Bitstream.Packet

Show (Packet Right) Source # 
Instance details

Defined in Data.Bitstream.Packet

Bitstream (Packet Right) Source # 
Instance details

Defined in Data.Bitstream.Packet

Bitstream (Bitstream Right) Source # 
Instance details

Defined in Data.Bitstream

Bitstream (Bitstream Right) Source # 
Instance details

Defined in Data.Bitstream.Lazy

data Packet d Source #

Packets are strict Bitstreams having at most 8 bits.

Instances
Eq (Packet d) Source # 
Instance details

Defined in Data.Bitstream.Packet

Methods

(==) :: Packet d -> Packet d -> Bool #

(/=) :: Packet d -> Packet d -> Bool #

Ord (Packet Right) Source # 
Instance details

Defined in Data.Bitstream.Packet

Ord (Packet Left) Source # 
Instance details

Defined in Data.Bitstream.Packet

Show (Packet Right) Source # 
Instance details

Defined in Data.Bitstream.Packet

Show (Packet Left) Source # 
Instance details

Defined in Data.Bitstream.Packet

Storable (Packet d) Source # 
Instance details

Defined in Data.Bitstream.Packet

Methods

sizeOf :: Packet d -> Int #

alignment :: Packet d -> Int #

peekElemOff :: Ptr (Packet d) -> Int -> IO (Packet d) #

pokeElemOff :: Ptr (Packet d) -> Int -> Packet d -> IO () #

peekByteOff :: Ptr b -> Int -> IO (Packet d) #

pokeByteOff :: Ptr b -> Int -> Packet d -> IO () #

peek :: Ptr (Packet d) -> IO (Packet d) #

poke :: Ptr (Packet d) -> Packet d -> IO () #

Bitstream (Packet Right) Source # 
Instance details

Defined in Data.Bitstream.Packet

Bitstream (Packet Left) Source # 
Instance details

Defined in Data.Bitstream.Packet

full :: Packet d -> Bool Source #

O(1) full p == True iff length p == 8, otherwise it returns False.

fromOctet :: Word8 -> Packet d Source #

O(1) Convert an octet to Packet.

toOctet :: Packet d -> Word8 Source #

O(1) toOctet p converts a Packet p to an octet, padding with zeroes if length p < 8.

packetLToR :: Packet Left -> Packet Right Source #

O(1) Change the direction of Packet from Left to Right. Bit directions only affect octet-based operations such as toOctet.

packetRToL :: Packet Right -> Packet Left Source #

O(1) Change the direction of Packet from Right to Left. Bit directions only affect octet-based operations such as toOctet.