text-1.2.5.0: An efficient packed Unicode text type.
Copyright(c) 2009 2010 2011 Bryan O'Sullivan
LicenseBSD-style
Maintainerbos@serpentine.com
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

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.

Synopsis

Types

data Array Source #

Immutable array type.

The Array constructor is exposed since text-1.1.1.3

Constructors

Array 

Fields

data MArray s Source #

Mutable array type, for use in the ST monad.

The MArray constructor is exposed since text-1.1.1.3

Constructors

MArray 

Fields

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.