Copyright | (c) 2020 Andrew Lelechenko (c) 2020 Composewell Technologies |
---|---|
License | BSD-3-Clause |
Maintainer | streamly@composewell.com |
Stability | experimental |
Portability | GHC |
Safe Haskell | None |
Language | Haskell2010 |
Unicode.Internal.Bits
Contents
Description
Fast, static bitmap lookup utilities
Synopsis
- lookupBit :: Addr# -> Int -> Int -> Bool
- lookupWord8AsInt :: Addr# -> Int -> Int
- lookupWord8AsInt# :: Addr# -> Int# -> Int#
- lookupWord16AsInt :: Addr# -> Int -> Int
- lookupWord16AsInt# :: Addr# -> Int# -> Int#
- lookupWord32# :: Addr# -> Int# -> Word#
- unpackCString# :: Addr# -> [Char]
Bitmap lookup
lookupBit :: Addr# -> Int -> Int -> Bool Source #
lookupBit addr byteIndex bitIndex
looks up the bit stored in the byte
at index byteIndex
at the bit index bitIndex
using a bitmap starting at the
address addr
. The caller must make sure that the byte at address
(addr + byteIndex)
is legally accessible memory.
Arguments
:: Addr# | Bitmap address |
-> Int | Word index |
-> Int | Resulting word as |
lookupWord8AsInt addr index
looks up for the index
-th 8
-bits word in
the bitmap starting at addr
, then convert it to an Int
.
The caller must make sure that:
ceiling (addr + (n * 8))
is legally accessibleWord8#
.
Since: 0.3.0
Arguments
:: Addr# | Bitmap address |
-> Int# | Word index |
-> Int# | Resulting word as |
Arguments
:: Addr# | Bitmap address |
-> Int | Word index |
-> Int | Resulting word as |
Arguments
:: Addr# | Bitmap address |
-> Int# | Word index |
-> Int# | Resulting word as |
Arguments
:: Addr# | Bitmap address |
-> Int# | Word index |
-> Word# | Resulting word |
lookupWord32# addr index
looks up for the index
-th 32-bits word in
the bitmap starting at addr
, then convert it to a Word#
.
The caller must make sure that:
ceiling (addr + (n * 32))
is legally accessibleWord32#
.
Since: 0.4.1
CString
unpackCString# :: Addr# -> [Char] #