memory-0.15.0: memory and related abstraction stuff

LicenseBSD-style
MaintainerVincent Hanquez <vincent@snarc.org>
Stabilitystable
Portabilitygood
Safe HaskellNone
LanguageHaskell2010

Data.Memory.Endian

Description

 
Synopsis

Documentation

data Endianness Source #

represent the CPU endianness

Big endian system stores bytes with the MSB as the first byte. Little endian system stores bytes with the LSB as the first byte.

middle endian is purposely avoided.

Constructors

LittleEndian 
BigEndian 
Instances
Eq Endianness Source # 
Instance details

Defined in Data.Memory.Endian

Show Endianness Source # 
Instance details

Defined in Data.Memory.Endian

getSystemEndianness :: Endianness Source #

Return the system endianness

newtype BE a Source #

Big Endian value

Constructors

BE 

Fields

Instances
Eq a => Eq (BE a) Source # 
Instance details

Defined in Data.Memory.Endian

Methods

(==) :: BE a -> BE a -> Bool #

(/=) :: BE a -> BE a -> Bool #

Show a => Show (BE a) Source # 
Instance details

Defined in Data.Memory.Endian

Methods

showsPrec :: Int -> BE a -> ShowS #

show :: BE a -> String #

showList :: [BE a] -> ShowS #

Storable a => Storable (BE a) Source # 
Instance details

Defined in Data.Memory.Endian

Methods

sizeOf :: BE a -> Int #

alignment :: BE a -> Int #

peekElemOff :: Ptr (BE a) -> Int -> IO (BE a) #

pokeElemOff :: Ptr (BE a) -> Int -> BE a -> IO () #

peekByteOff :: Ptr b -> Int -> IO (BE a) #

pokeByteOff :: Ptr b -> Int -> BE a -> IO () #

peek :: Ptr (BE a) -> IO (BE a) #

poke :: Ptr (BE a) -> BE a -> IO () #

newtype LE a Source #

Little Endian value

Constructors

LE 

Fields

Instances
Eq a => Eq (LE a) Source # 
Instance details

Defined in Data.Memory.Endian

Methods

(==) :: LE a -> LE a -> Bool #

(/=) :: LE a -> LE a -> Bool #

Show a => Show (LE a) Source # 
Instance details

Defined in Data.Memory.Endian

Methods

showsPrec :: Int -> LE a -> ShowS #

show :: LE a -> String #

showList :: [LE a] -> ShowS #

Storable a => Storable (LE a) Source # 
Instance details

Defined in Data.Memory.Endian

Methods

sizeOf :: LE a -> Int #

alignment :: LE a -> Int #

peekElemOff :: Ptr (LE a) -> Int -> IO (LE a) #

pokeElemOff :: Ptr (LE a) -> Int -> LE a -> IO () #

peekByteOff :: Ptr b -> Int -> IO (LE a) #

pokeByteOff :: Ptr b -> Int -> LE a -> IO () #

peek :: Ptr (LE a) -> IO (LE a) #

poke :: Ptr (LE a) -> LE a -> IO () #

fromBE :: ByteSwap a => BE a -> a Source #

Convert from a big endian value to the cpu endianness

toBE :: ByteSwap a => a -> BE a Source #

Convert a value in cpu endianess to big endian

fromLE :: ByteSwap a => LE a -> a Source #

Convert from a little endian value to the cpu endianness

toLE :: ByteSwap a => a -> LE a Source #

Convert a value in cpu endianess to little endian

class Storable a => ByteSwap a Source #

Class of types that can be byte-swapped.

e.g. Word16, Word32, Word64

Minimal complete definition

byteSwap

Instances
ByteSwap Word16 Source # 
Instance details

Defined in Data.Memory.Endian

Methods

byteSwap :: Word16 -> Word16

ByteSwap Word32 Source # 
Instance details

Defined in Data.Memory.Endian

Methods

byteSwap :: Word32 -> Word32

ByteSwap Word64 Source # 
Instance details

Defined in Data.Memory.Endian

Methods

byteSwap :: Word64 -> Word64