text-2.1.3: 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

type Array = ByteArray #

Immutable array type.

type MArray = MutableByteArray #

Mutable array type, for use in the ST monad.

Functions

resizeM :: MArray s -> Int -> ST s (MArray s) #

Since: text-2.0

shrinkM :: MArray s -> Int -> ST s () #

Since: text-2.0

copyM #

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 #

Arguments

:: Int

Count

-> MArray s

Destination

-> Int

Destination offset

-> Array

Source

-> Int

Source offset

-> ST s () 

Copy some elements of an immutable array.

copyFromPointer #

Arguments

:: MArray s

Destination

-> Int

Destination offset

-> Ptr Word8

Source

-> Int

Count

-> ST s () 

Copy from pointer.

Since: text-2.0

copyToPointer #

Arguments

:: Array

Source

-> Int

Source offset

-> Ptr Word8

Destination

-> Int

Count

-> ST s () 

Copy to pointer.

Since: text-2.0

empty :: Array #

An empty immutable array.

equal :: Array -> Int -> Array -> Int -> Int -> Bool #

Compare portions of two arrays for equality. No bounds checking is performed.

compare :: Array -> Int -> Array -> Int -> Int -> Ordering #

Compare portions of two arrays. No bounds checking is performed.

Since: text-2.0

run :: (forall s. ST s (MArray s)) -> Array #

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) #

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 -> [Word8] #

Convert an immutable array to a list.

unsafeFreeze :: MArray s -> ST s Array #

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

unsafeIndex :: Array -> Int -> Word8 #

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

new :: Int -> ST s (MArray s) #

Create an uninitialized mutable array.

newPinned :: Int -> ST s (MArray s) #

Create an uninitialized mutable pinned array.

Since: text-2.0

newFilled :: Int -> Int -> ST s (MArray s) #

Since: text-2.0

unsafeWrite :: MArray s -> Int -> Word8 -> ST s () #

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

tile :: MArray s -> Int -> ST s () #

Since: text-2.0

getSizeofMArray :: MArray s -> ST s Int #

Since: text-2.0