Copyright | (c) 2009 2010 2011 Bryan O'Sullivan |
---|---|
License | BSD-style |
Maintainer | bos@serpentine.com |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
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.
Synopsis
-
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
Immutable array type.
The
Array
constructor is exposed since
text-1.1.1.3
Array | |
|
Mutable array type, for use in the ST monad.
The
MArray
constructor is exposed since
text-1.1.1.3
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.
:: 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.
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!