basement-0.0.16: Foundation scrap box of array & string

Safe Haskell | None
Language | Haskell2010

Basement.PrimType

Synopsis

- class Eq ty => PrimType ty where
  - type PrimSize ty :: Nat
  - primSizeInBytes :: Proxy ty -> CountOf Word8
  - primShiftToBytes :: Proxy ty -> Int
  - primBaUIndex :: ByteArray# -> Offset ty -> ty
  - primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset ty -> prim ty
  - primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset ty -> ty -> prim ()
  - primAddrIndex :: Addr# -> Offset ty -> ty
  - primAddrRead :: PrimMonad prim => Addr# -> Offset ty -> prim ty
  - primAddrWrite :: PrimMonad prim => Addr# -> Offset ty -> ty -> prim ()
- class PrimMemoryComparable ty
- primBaIndex :: PrimType ty => ByteArray# -> Offset ty -> ty
- primMbaRead :: (PrimType ty, PrimMonad prim) => MutableByteArray# (PrimState prim) -> Offset ty -> prim ty
- primMbaWrite :: (PrimType ty, PrimMonad prim) => MutableByteArray# (PrimState prim) -> Offset ty -> ty -> prim ()
- primArrayIndex :: Array# ty -> Offset ty -> ty
- primMutableArrayRead :: PrimMonad prim => MutableArray# (PrimState prim) ty -> Offset ty -> prim ty
- primMutableArrayWrite :: PrimMonad prim => MutableArray# (PrimState prim) ty -> Offset ty -> ty -> prim ()
- primOffsetOfE :: PrimType a => Offset a -> Offset Word8
- primOffsetRecast :: (PrimType a, PrimType b) => Offset a -> Offset b
- sizeRecast :: (PrimType a, PrimType b) => CountOf a -> CountOf b
- offsetAsSize :: Offset a -> CountOf a
- sizeAsOffset :: CountOf a -> Offset a
- sizeInBytes :: PrimType a => CountOf a -> CountOf Word8
- offsetInBytes :: PrimType a => Offset a -> Offset Word8
- offsetInElements :: PrimType a => Offset Word8 -> Offset a
- offsetIsAligned :: PrimType a => Proxy a -> Offset Word8 -> Bool
- primWordGetByteAndShift :: Word# -> (# Word#, Word# #)
- primWord64GetByteAndShift :: Word# -> (# Word#, Word# #)
- primWord64GetHiLo :: Word# -> (# Word#, Word# #)

# Documentation

class Eq ty => PrimType ty where Source #

Represent the accessor for types that can be stored in the UArray and MUArray.

Types need to be a instance of storable and have fixed sized.

Associated Types

type PrimSize ty :: Nat Source #

type level size of the given `ty`

Methods

primSizeInBytes :: Proxy ty -> CountOf Word8 Source #

get the size in bytes of a ty element

primShiftToBytes :: Proxy ty -> Int Source #

get the shift size

primBaUIndex :: ByteArray# -> Offset ty -> ty Source #

return the element stored at a specific index

primMbaURead Source #

Arguments

:: PrimMonad prim |
=> MutableByteArray# (PrimState prim) | mutable array to read from
-> Offset ty | index of the element to retrieve
-> prim ty | the element returned

Read an element at an index in a mutable array

primMbaUWrite Source #

Arguments

:: PrimMonad prim |
=> MutableByteArray# (PrimState prim) | mutable array to modify
-> Offset ty | index of the element to modify
-> ty | the new value to store
-> prim () |

Write an element to a specific cell in a mutable array.

primAddrIndex :: Addr# -> Offset ty -> ty Source #

Read from Address, without a state. the value read should be considered a constant for all pratical purpose, otherwise bad thing will happens.

primAddrRead :: PrimMonad prim => Addr# -> Offset ty -> prim ty Source #

Read a value from Addr in a specific primitive monad

primAddrWrite :: PrimMonad prim => Addr# -> Offset ty -> ty -> prim () Source #

Write a value to Addr in a specific primitive monad

#### Instances

Instances details

PrimType Char7 Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Char7 |
Instance details Defined in Basement.PrimType type PrimSize Char7 = 1

Methods

primSizeInBytes :: Proxy Char7 -> CountOf Word8 Source #

primShiftToBytes :: Proxy Char7 -> Int Source #

primBaUIndex :: ByteArray# -> Offset Char7 -> Char7 Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Char7 -> prim Char7 Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Char7 -> Char7 -> prim () Source #

primAddrIndex :: Addr# -> Offset Char7 -> Char7 Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset Char7 -> prim Char7 Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Char7 -> Char7 -> prim () Source #

PrimType Word128 Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Word128 |
Instance details Defined in Basement.PrimType type PrimSize Word128 = 16

Methods

primSizeInBytes :: Proxy Word128 -> CountOf Word8 Source #

primShiftToBytes :: Proxy Word128 -> Int Source #

primBaUIndex :: ByteArray# -> Offset Word128 -> Word128 Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word128 -> prim Word128 Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word128 -> Word128 -> prim () Source #

primAddrIndex :: Addr# -> Offset Word128 -> Word128 Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset Word128 -> prim Word128 Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Word128 -> Word128 -> prim () Source #

PrimType Word256 Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Word256 |
Instance details Defined in Basement.PrimType type PrimSize Word256 = 32

Methods

primSizeInBytes :: Proxy Word256 -> CountOf Word8 Source #

primShiftToBytes :: Proxy Word256 -> Int Source #

primBaUIndex :: ByteArray# -> Offset Word256 -> Word256 Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word256 -> prim Word256 Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word256 -> Word256 -> prim () Source #

primAddrIndex :: Addr# -> Offset Word256 -> Word256 Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset Word256 -> prim Word256 Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Word256 -> Word256 -> prim () Source #

PrimType CChar Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize CChar |
Instance details Defined in Basement.PrimType type PrimSize CChar = 1

Methods

primSizeInBytes :: Proxy CChar -> CountOf Word8 Source #

primShiftToBytes :: Proxy CChar -> Int Source #

primBaUIndex :: ByteArray# -> Offset CChar -> CChar Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset CChar -> prim CChar Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset CChar -> CChar -> prim () Source #

primAddrIndex :: Addr# -> Offset CChar -> CChar Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset CChar -> prim CChar Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset CChar -> CChar -> prim () Source #

PrimType CUChar Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize CUChar |
Instance details Defined in Basement.PrimType type PrimSize CUChar = 1

Methods

primSizeInBytes :: Proxy CUChar -> CountOf Word8 Source #

primShiftToBytes :: Proxy CUChar -> Int Source #

primBaUIndex :: ByteArray# -> Offset CUChar -> CUChar Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset CUChar -> prim CUChar Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset CUChar -> CUChar -> prim () Source #

primAddrIndex :: Addr# -> Offset CUChar -> CUChar Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset CUChar -> prim CUChar Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset CUChar -> CUChar -> prim () Source #

PrimType Int16 Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Int16 |
Instance details Defined in Basement.PrimType type PrimSize Int16 = 2

Methods

primSizeInBytes :: Proxy Int16 -> CountOf Word8 Source #

primShiftToBytes :: Proxy Int16 -> Int Source #

primBaUIndex :: ByteArray# -> Offset Int16 -> Int16 Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int16 -> prim Int16 Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int16 -> Int16 -> prim () Source #

primAddrIndex :: Addr# -> Offset Int16 -> Int16 Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset Int16 -> prim Int16 Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Int16 -> Int16 -> prim () Source #

PrimType Int32 Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Int32 |
Instance details Defined in Basement.PrimType type PrimSize Int32 = 4

Methods

primSizeInBytes :: Proxy Int32 -> CountOf Word8 Source #

primShiftToBytes :: Proxy Int32 -> Int Source #

primBaUIndex :: ByteArray# -> Offset Int32 -> Int32 Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int32 -> prim Int32 Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int32 -> Int32 -> prim () Source #

primAddrIndex :: Addr# -> Offset Int32 -> Int32 Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset Int32 -> prim Int32 Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Int32 -> Int32 -> prim () Source #

PrimType Int64 Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Int64 |
Instance details Defined in Basement.PrimType type PrimSize Int64 = 8

Methods

primSizeInBytes :: Proxy Int64 -> CountOf Word8 Source #

primShiftToBytes :: Proxy Int64 -> Int Source #

primBaUIndex :: ByteArray# -> Offset Int64 -> Int64 Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int64 -> prim Int64 Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int64 -> Int64 -> prim () Source #

primAddrIndex :: Addr# -> Offset Int64 -> Int64 Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset Int64 -> prim Int64 Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Int64 -> Int64 -> prim () Source #

PrimType Int8 Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Int8 |
Instance details Defined in Basement.PrimType type PrimSize Int8 = 1

Methods

primSizeInBytes :: Proxy Int8 -> CountOf Word8 Source #

primShiftToBytes :: Proxy Int8 -> Int Source #

primBaUIndex :: ByteArray# -> Offset Int8 -> Int8 Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int8 -> prim Int8 Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int8 -> Int8 -> prim () Source #

primAddrIndex :: Addr# -> Offset Int8 -> Int8 Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset Int8 -> prim Int8 Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Int8 -> Int8 -> prim () Source #

PrimType Word16 Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Word16 |
Instance details Defined in Basement.PrimType type PrimSize Word16 = 2

Methods

primSizeInBytes :: Proxy Word16 -> CountOf Word8 Source #

primShiftToBytes :: Proxy Word16 -> Int Source #

primBaUIndex :: ByteArray# -> Offset Word16 -> Word16 Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word16 -> prim Word16 Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word16 -> Word16 -> prim () Source #

primAddrIndex :: Addr# -> Offset Word16 -> Word16 Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset Word16 -> prim Word16 Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Word16 -> Word16 -> prim () Source #

PrimType Word32 Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Word32 |
Instance details Defined in Basement.PrimType type PrimSize Word32 = 4

Methods

primSizeInBytes :: Proxy Word32 -> CountOf Word8 Source #

primShiftToBytes :: Proxy Word32 -> Int Source #

primBaUIndex :: ByteArray# -> Offset Word32 -> Word32 Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word32 -> prim Word32 Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word32 -> Word32 -> prim () Source #

primAddrIndex :: Addr# -> Offset Word32 -> Word32 Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset Word32 -> prim Word32 Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Word32 -> Word32 -> prim () Source #

PrimType Word64 Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Word64 |
Instance details Defined in Basement.PrimType type PrimSize Word64 = 8

Methods

primSizeInBytes :: Proxy Word64 -> CountOf Word8 Source #

primShiftToBytes :: Proxy Word64 -> Int Source #

primBaUIndex :: ByteArray# -> Offset Word64 -> Word64 Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word64 -> prim Word64 Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word64 -> Word64 -> prim () Source #

primAddrIndex :: Addr# -> Offset Word64 -> Word64 Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset Word64 -> prim Word64 Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Word64 -> Word64 -> prim () Source #

PrimType Word8 Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Word8 |
Instance details Defined in Basement.PrimType type PrimSize Word8 = 1

Methods

primSizeInBytes :: Proxy Word8 -> CountOf Word8 Source #

primShiftToBytes :: Proxy Word8 -> Int Source #

primBaUIndex :: ByteArray# -> Offset Word8 -> Word8 Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word8 -> prim Word8 Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word8 -> Word8 -> prim () Source #

primAddrIndex :: Addr# -> Offset Word8 -> Word8 Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset Word8 -> prim Word8 Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Word8 -> Word8 -> prim () Source #

PrimType Char Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Char |
Instance details Defined in Basement.PrimType type PrimSize Char = 4

Methods

primSizeInBytes :: Proxy Char -> CountOf Word8 Source #

primShiftToBytes :: Proxy Char -> Int Source #

primBaUIndex :: ByteArray# -> Offset Char -> Char Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Char -> prim Char Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Char -> Char -> prim () Source #

primAddrIndex :: Addr# -> Offset Char -> Char Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset Char -> prim Char Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Char -> Char -> prim () Source #

PrimType Double Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Double |
Instance details Defined in Basement.PrimType type PrimSize Double = 8

Methods

primSizeInBytes :: Proxy Double -> CountOf Word8 Source #

primShiftToBytes :: Proxy Double -> Int Source #

primBaUIndex :: ByteArray# -> Offset Double -> Double Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Double -> prim Double Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Double -> Double -> prim () Source #

primAddrIndex :: Addr# -> Offset Double -> Double Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset Double -> prim Double Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Double -> Double -> prim () Source #

PrimType Float Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Float |
Instance details Defined in Basement.PrimType type PrimSize Float = 4

Methods

primSizeInBytes :: Proxy Float -> CountOf Word8 Source #

primShiftToBytes :: Proxy Float -> Int Source #

primBaUIndex :: ByteArray# -> Offset Float -> Float Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Float -> prim Float Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Float -> Float -> prim () Source #

primAddrIndex :: Addr# -> Offset Float -> Float Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset Float -> prim Float Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Float -> Float -> prim () Source #

PrimType Int Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Int |
Instance details Defined in Basement.PrimType type PrimSize Int = 8

Methods

primSizeInBytes :: Proxy Int -> CountOf Word8 Source #

primShiftToBytes :: Proxy Int -> Int Source #

primBaUIndex :: ByteArray# -> Offset Int -> Int Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int -> prim Int Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int -> Int -> prim () Source #

primAddrIndex :: Addr# -> Offset Int -> Int Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset Int -> prim Int Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Int -> Int -> prim () Source #

PrimType Word Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Word |
Instance details Defined in Basement.PrimType type PrimSize Word = 8

Methods

primSizeInBytes :: Proxy Word -> CountOf Word8 Source #

primShiftToBytes :: Proxy Word -> Int Source #

primBaUIndex :: ByteArray# -> Offset Word -> Word Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word -> prim Word Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word -> Word -> prim () Source #

primAddrIndex :: Addr# -> Offset Word -> Word Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset Word -> prim Word Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Word -> Word -> prim () Source #

PrimType a => PrimType (BE a) Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize (BE a) |
Instance details Defined in Basement.PrimType type PrimSize (BE a) = PrimSize a

Methods

primSizeInBytes :: Proxy (BE a) -> CountOf Word8 Source #

primShiftToBytes :: Proxy (BE a) -> Int Source #

primBaUIndex :: ByteArray# -> Offset (BE a) -> BE a Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset (BE a) -> prim (BE a) Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset (BE a) -> BE a -> prim () Source #

primAddrIndex :: Addr# -> Offset (BE a) -> BE a Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset (BE a) -> prim (BE a) Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset (BE a) -> BE a -> prim () Source #

PrimType a => PrimType (LE a) Source # |

Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize (LE a) |
Instance details Defined in Basement.PrimType type PrimSize (LE a) = PrimSize a

Methods

primSizeInBytes :: Proxy (LE a) -> CountOf Word8 Source #

primShiftToBytes :: Proxy (LE a) -> Int Source #

primBaUIndex :: ByteArray# -> Offset (LE a) -> LE a Source #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset (LE a) -> prim (LE a) Source #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset (LE a) -> LE a -> prim () Source #

primAddrIndex :: Addr# -> Offset (LE a) -> LE a Source #

primAddrRead :: PrimMonad prim => Addr# -> Offset (LE a) -> prim (LE a) Source #

primAddrWrite :: PrimMonad prim => Addr# -> Offset (LE a) -> LE a -> prim () Source #

class PrimMemoryComparable ty Source #

A constraint class for serializable type that have an unique memory compare representation

e.g. Float and Double have -0.0 and 0.0 which are Eq individual, yet have a different memory representation which doesn't allow for memcmp operation

#### Instances

Instances details

PrimMemoryComparable Word128 Source # |
Instance details Defined in Basement.PrimType
PrimMemoryComparable Word256 Source # |
Instance details Defined in Basement.PrimType
PrimMemoryComparable CChar Source # |
Instance details Defined in Basement.PrimType
PrimMemoryComparable CUChar Source # |
Instance details Defined in Basement.PrimType
PrimMemoryComparable Int16 Source # |
Instance details Defined in Basement.PrimType
PrimMemoryComparable Int32 Source # |
Instance details Defined in Basement.PrimType
PrimMemoryComparable Int64 Source # |
Instance details Defined in Basement.PrimType
PrimMemoryComparable Int8 Source # |
Instance details Defined in Basement.PrimType
PrimMemoryComparable Word16 Source # |
Instance details Defined in Basement.PrimType
PrimMemoryComparable Word32 Source # |
Instance details Defined in Basement.PrimType
PrimMemoryComparable Word64 Source # |
Instance details Defined in Basement.PrimType
PrimMemoryComparable Word8 Source # |
Instance details Defined in Basement.PrimType
PrimMemoryComparable Char Source # |
Instance details Defined in Basement.PrimType
PrimMemoryComparable Int Source # |
Instance details Defined in Basement.PrimType
PrimMemoryComparable Word Source # |
Instance details Defined in Basement.PrimType
PrimMemoryComparable a => PrimMemoryComparable (BE a) Source # |
Instance details Defined in Basement.PrimType
PrimMemoryComparable a => PrimMemoryComparable (LE a) Source # |
Instance details Defined in Basement.PrimType

primBaIndex :: PrimType ty => ByteArray# -> Offset ty -> ty Source #

primMbaRead :: (PrimType ty, PrimMonad prim) => MutableByteArray# (PrimState prim) -> Offset ty -> prim ty Source #

primMbaWrite :: (PrimType ty, PrimMonad prim) => MutableByteArray# (PrimState prim) -> Offset ty -> ty -> prim () Source #

primArrayIndex :: Array# ty -> Offset ty -> ty Source #

primMutableArrayRead :: PrimMonad prim => MutableArray# (PrimState prim) ty -> Offset ty -> prim ty Source #

primMutableArrayWrite :: PrimMonad prim => MutableArray# (PrimState prim) ty -> Offset ty -> ty -> prim () Source #

primOffsetOfE :: PrimType a => Offset a -> Offset Word8 Source #

Deprecated: use offsetInBytes

primOffsetRecast :: (PrimType a, PrimType b) => Offset a -> Offset b Source #

sizeRecast :: (PrimType a, PrimType b) => CountOf a -> CountOf b Source #

Cast a CountOf linked to type A (CountOf A) to a CountOf linked to type B (CountOf B)

offsetAsSize :: Offset a -> CountOf a Source #

sizeAsOffset :: CountOf a -> Offset a Source #

sizeInBytes :: PrimType a => CountOf a -> CountOf Word8 Source #

offsetInBytes :: PrimType a => Offset a -> Offset Word8 Source #

offsetInElements :: PrimType a => Offset Word8 -> Offset a Source #

offsetIsAligned :: PrimType a => Proxy a -> Offset Word8 -> Bool Source #

primWordGetByteAndShift :: Word# -> (# Word#, Word# #) Source #

primWord64GetByteAndShift :: Word# -> (# Word#, Word# #) Source #

primWord64GetHiLo :: Word# -> (# Word#, Word# #) Source #