| 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] #