|
| Data.Vector.Primitive.Mutable | | Portability | non-portable | | Stability | experimental | | Maintainer | Roman Leshchinskiy <rl@cse.unsw.edu.au> |
|
|
|
|
|
| Description |
| Mutable primitive vectors.
|
|
| Synopsis |
|
| data MVector s a = MVector !Int !Int !(MutableByteArray s) | | | type IOVector = MVector RealWorld | | | type STVector s = MVector s | | | class Prim a | | | length :: Prim a => MVector s a -> Int | | | overlaps :: Prim a => MVector s a -> MVector s a -> Bool | | | slice :: Prim a => Int -> Int -> MVector s a -> MVector s a | | | new :: (PrimMonad m, Prim a) => Int -> m (MVector (PrimState m) a) | | | newWith :: (PrimMonad m, Prim a) => Int -> a -> m (MVector (PrimState m) a) | | | read :: (PrimMonad m, Prim a) => MVector (PrimState m) a -> Int -> m a | | | write :: (PrimMonad m, Prim a) => MVector (PrimState m) a -> Int -> a -> m () | | | swap :: (PrimMonad m, Prim a) => MVector (PrimState m) a -> Int -> Int -> m () | | | clear :: (PrimMonad m, Prim a) => MVector (PrimState m) a -> m () | | | set :: (PrimMonad m, Prim a) => MVector (PrimState m) a -> a -> m () | | | copy :: (PrimMonad m, Prim a) => MVector (PrimState m) a -> MVector (PrimState m) a -> m () | | | grow :: (PrimMonad m, Prim a) => MVector (PrimState m) a -> Int -> m (MVector (PrimState m) a) | | | unsafeSlice :: Prim a => Int -> Int -> MVector s a -> MVector s a | | | unsafeNew :: (PrimMonad m, Prim a) => Int -> m (MVector (PrimState m) a) | | | unsafeNewWith :: (PrimMonad m, Prim a) => Int -> a -> m (MVector (PrimState m) a) | | | unsafeRead :: (PrimMonad m, Prim a) => MVector (PrimState m) a -> Int -> m a | | | unsafeWrite :: (PrimMonad m, Prim a) => MVector (PrimState m) a -> Int -> a -> m () | | | unsafeSwap :: (PrimMonad m, Prim a) => MVector (PrimState m) a -> Int -> Int -> m () | | | unsafeCopy :: (PrimMonad m, Prim a) => MVector (PrimState m) a -> MVector (PrimState m) a -> m () | | | unsafeGrow :: (PrimMonad m, Prim a) => MVector (PrimState m) a -> Int -> m (MVector (PrimState m) a) |
|
|
|
| Mutable vectors of primitive types
|
|
|
| Mutable vectors of primitive types.
| | Constructors | |
|
|
|
|
|
|
|
| Class of types supporting primitive array operations
|
|
|
| Operations on mutable vectors
|
|
|
| Length of the mutable vector.
|
|
|
|
|
| Yield a part of the mutable vector without copying it.
|
|
|
| Create a mutable vector of the given length.
|
|
|
| Create a mutable vector of the given length and fill it with an
initial value.
|
|
|
| Yield the element at the given position.
|
|
|
| Replace the element at the given position.
|
|
|
| Swap the elements at the given positions.
|
|
|
| Reset all elements of the vector to some undefined value, clearing all
references to external objects. This is usually a noop for unboxed vectors.
|
|
|
| Set all elements of the vector to the given value.
|
|
|
| Copy a vector. The two vectors must have the same length and may not
overlap.
|
|
|
| Grow a vector by the given number of elements. The number must be
positive.
|
|
| Unsafe operations
|
|
|
| :: Prim a | | | => Int | length of the slice
| | -> Int | | | -> MVector s a | | | -> MVector s a | | | Yield a part of the mutable vector without copying it. No bounds checks
are performed.
|
|
|
|
| Create a mutable vector of the given length. The length is not checked.
|
|
|
| Create a mutable vector of the given length and fill it with an
initial value. The length is not checked.
|
|
|
| Yield the element at the given position. No bounds checks are performed.
|
|
|
| Replace the element at the given position. No bounds checks are performed.
|
|
|
| Swap the elements at the given positions. No bounds checks are performed.
|
|
|
|
|
|
| Grow a vector by the given number of elements. The number must be
positive but this is not checked.
|
|
| Produced by Haddock version 2.6.0 |