text-1.2.1.3: An efficient packed Unicode text type.

Copyright(c) 2009, 2010, 2011 Bryan O'Sullivan
LicenseBSD-style
Maintainerbos@serpentine.com
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell98

Data.Text.Array

Contents

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 qualifid naming.

Synopsis

Types

data Array Source

Immutable array type.

Constructors

Array 

Fields

aBA :: ByteArray#
 

data MArray s Source

Mutable array type, for use in the ST monad.

Constructors

MArray 

Fields

maBA :: MutableByteArray# s
 

Functions

copyM Source

Arguments

:: MArray s

Destination

-> Int

Destination offset

-> MArray s

Source

-> Int

Source offset

-> Int

Count

-> ST s () 

Copy some elements of a mutable array.

copyI Source

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.

empty :: Array Source

An empty immutable array.

equal Source

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.

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.

toList :: Array -> Int -> Int -> [Word16] Source

Convert an immutable array to a list.

unsafeFreeze :: MArray s -> ST s Array Source

Freeze a mutable array. Do not mutate the MArray afterwards!

unsafeIndex :: Array -> Int -> Word16 Source

Unchecked read of an immutable array. May return garbage or crash on an out-of-bounds access.

new :: forall s. Int -> ST s (MArray s) Source

Create an uninitialized mutable array.

unsafeWrite :: MArray s -> Int -> Word16 -> ST s () Source

Unchecked write of a mutable array. May return garbage or crash on an out-of-bounds access.