Copyright | (c) 2009 2010 2011 Bryan O'Sullivan |
---|---|
License | BSD-style |
Maintainer | bos@serpentine.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell98 |
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 ()
- empty :: Array
- equal :: Array -> Int -> Array -> Int -> Int -> Bool
- run :: (forall s. ST s (MArray s)) -> Array
- run2 :: (forall s. ST s (MArray s, a)) -> (Array, a)
- toList :: Array -> Int -> Int -> [Word16]
- unsafeFreeze :: MArray s -> ST s Array
- unsafeIndex :: Array -> Int -> Word16
- new :: forall s. Int -> ST s (MArray s)
- unsafeWrite :: MArray s -> Int -> Word16 -> ST s ()
Types
Mutable array type, for use in the ST monad.
MArray | |
|
Functions
:: MArray s | Destination |
-> Int | Destination offset |
-> MArray s | Source |
-> Int | Source offset |
-> Int | Count |
-> ST s () |
Copy some elements of a mutable array.
:: 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.
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!