vector-0.10.9.0: Efficient Arrays

Portabilitynon-portable
Stabilityexperimental
MaintainerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Safe HaskellNone

Data.Vector.Generic.Mutable.Base

Description

Class of mutable vectors

Synopsis

Documentation

class MVector v a whereSource

Class of mutable vectors parametrised with a primitive state token.

Methods

basicLength :: v s a -> IntSource

Length of the mutable vector. This method should not be called directly, use length instead.

basicUnsafeSliceSource

Arguments

:: Int

starting index

-> Int

length of the slice

-> v s a 
-> v s a 

Yield a part of the mutable vector without copying it. This method should not be called directly, use unsafeSlice instead.

basicOverlaps :: v s a -> v s a -> BoolSource

basicUnsafeNew :: PrimMonad m => Int -> m (v (PrimState m) a)Source

Create a mutable vector of the given length. This method should not be called directly, use unsafeNew instead.

basicUnsafeReplicate :: PrimMonad m => Int -> a -> m (v (PrimState m) a)Source

Create a mutable vector of the given length and fill it with an initial value. This method should not be called directly, use replicate instead.

basicUnsafeRead :: PrimMonad m => v (PrimState m) a -> Int -> m aSource

Yield the element at the given position. This method should not be called directly, use unsafeRead instead.

basicUnsafeWrite :: PrimMonad m => v (PrimState m) a -> Int -> a -> m ()Source

Replace the element at the given position. This method should not be called directly, use unsafeWrite instead.

basicClear :: PrimMonad m => v (PrimState m) a -> m ()Source

Reset all elements of the vector to some undefined value, clearing all references to external objects. This is usually a noop for unboxed vectors. This method should not be called directly, use clear instead.

basicSet :: PrimMonad m => v (PrimState m) a -> a -> m ()Source

Set all elements of the vector to the given value. This method should not be called directly, use set instead.

basicUnsafeCopySource

Arguments

:: PrimMonad m 
=> v (PrimState m) a

target

-> v (PrimState m) a

source

-> m () 

Copy a vector. The two vectors may not overlap. This method should not be called directly, use unsafeCopy instead.

basicUnsafeMoveSource

Arguments

:: PrimMonad m 
=> v (PrimState m) a

target

-> v (PrimState m) a

source

-> m () 

Move the contents of a vector. The two vectors may overlap. This method should not be called directly, use unsafeMove instead.

basicUnsafeGrow :: PrimMonad m => v (PrimState m) a -> Int -> m (v (PrimState m) a)Source

Grow a vector by the given number of elements. This method should not be called directly, use unsafeGrow instead.