| Copyright | (c) 2009 2010 2011 Bryan O'Sullivan |
|---|---|
| License | BSD-style |
| Maintainer | bos@serpentine.com |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.Text.Array
Description
Packed, unboxed, heap-resident arrays. Suitable for performance critical use, both in terms of large data quantities and high speed.
This module is intended to be imported qualified, to avoid name
clashes with Prelude functions, e.g.
import qualified Data.Text.Array as A
The names in this module resemble those in the Array family
of modules, but are shorter due to the assumption of qualified
naming.
- data Array = Array {
- aBA :: ByteArray#
- data MArray s = MArray {
- maBA :: MutableByteArray# s
- copyM :: MArray s -> Int -> MArray s -> Int -> Int -> ST s ()
- copyI :: MArray s -> Int -> Array -> Int -> Int -> ST s ()
- copyToPtr :: Ptr Word8 -> Int -> Array -> Int -> Int -> IO ()
- copyFromPtr :: MArray s -> Int -> Ptr Word8 -> Int -> Int -> ST s ()
- empty :: Array
- equal :: Array -> Int -> Array -> Int -> Int -> Bool
- cmp :: Array -> Int -> Array -> Int -> Int -> Ordering
- run :: (forall s. ST s (MArray s)) -> Array
- run2 :: (forall s. ST s (MArray s, a)) -> (Array, a)
- toList :: Array -> Int -> Int -> [Word8]
- unsafeFreeze :: MArray s -> ST s Array
- unsafeIndex :: Array -> Int -> Word8
- unsafeIndex32 :: Array -> Int -> Word32
- unsafeIndex64 :: Array -> Int -> Word64
- new :: forall s. Int -> ST s (MArray s)
- unsafeWrite :: MArray s -> Int -> Word8 -> ST s ()
- unsafeWrite32 :: MArray s -> Int -> Word32 -> ST s ()
- unsafeWrite64 :: MArray s -> Int -> Word64 -> ST s ()
Types
Immutable array type.
The Array constructor is exposed since text-1.1.1.3
Constructors
| Array | |
Fields
| |
Mutable array type, for use in the ST monad.
The MArray constructor is exposed since text-1.1.1.3
Constructors
| MArray | |
Fields
| |
Functions
Arguments
| :: MArray s | Destination |
| -> Int | Destination offset |
| -> MArray s | Source |
| -> Int | Source offset |
| -> Int | Count |
| -> ST s () |
Copy some elements of a mutable array.
Arguments
| :: MArray s | Destination |
| -> Int | Destination offset |
| -> Array | Source |
| -> Int | Source offset |
| -> Int | First offset in destination not to copy (i.e. not length) |
| -> ST s () |
Copy some elements of an immutable array.
Arguments
| :: Ptr Word8 | Destination |
| -> Int | Destination offset |
| -> Array | Source |
| -> Int | Source offset |
| -> Int | First offset in destination not to copy (i.e. not length) |
| -> IO () |
Copy some elements of an immutable array to a pointer
Arguments
| :: Array | First |
| -> Int | Offset into first |
| -> Array | Second |
| -> Int | Offset into second |
| -> Int | Count |
| -> Bool |
Compare portions of two arrays for equality. No bounds checking is performed.
Arguments
| :: Array | First |
| -> Int | Offset into first |
| -> Array | Second |
| -> Int | Offset into second |
| -> Int | Count |
| -> Ordering |
Compare portions of two arrays for equality. No bounds checking is performed.
run :: (forall s. ST s (MArray s)) -> Array Source #
Run an action in the ST monad and return an immutable array of its result.
run2 :: (forall s. ST s (MArray s, a)) -> (Array, a) Source #
Run an action in the ST monad and return an immutable array of its result paired with whatever else the action returns.
unsafeFreeze :: MArray s -> ST s Array Source #
Freeze a mutable array. Do not mutate the MArray afterwards!
unsafeIndex :: Array -> Int -> Word8 Source #
Unchecked read of an immutable array. May return garbage or crash on an out-of-bounds access.
unsafeIndex32 :: Array -> Int -> Word32 Source #
Unchecked read of an immutable array. May return garbage or crash on an out-of-bounds access.
unsafeIndex64 :: Array -> Int -> Word64 Source #
Unchecked read of an immutable array. May return garbage or crash on an out-of-bounds access.
unsafeWrite :: MArray s -> Int -> Word8 -> ST s () Source #
Unchecked write of a mutable array. May return garbage or crash on an out-of-bounds access.