Safe Haskell | None |
---|---|
Language | Haskell2010 |
Pipes for interfacing with Data.Vector.
Note that this only provides functionality for building Vectors
from Pipes; as Vectors
are Foldable
the inverse can be
accomplished with "Pipes.each".
- toVector :: (PrimMonad m, MVector (Mutable v) e) => Consumer' e (ToVector v e m) r
- runToVectorP :: (PrimMonad m, Vector v e) => Proxy a' a b' b (ToVector v e m) r -> Proxy a' a b' b m (v e)
- runToVector :: (PrimMonad m, Vector v e) => ToVector v e m r -> m (v e)
- fromProducer :: (Vector v e, PrimMonad m) => Producer e (ToVector v e m) r -> m (v e)
- data ToVector v e m r
Usage
>>>
run $ runToVectorP $ each [1..5::Int] >-> toVector
fromList [1,2,3,4,5]
toVector :: (PrimMonad m, MVector (Mutable v) e) => Consumer' e (ToVector v e m) r Source
Consume items from a Pipe and place them into a vector
For efficient filling, the vector is grown geometrically up to a maximum chunk size.
runToVectorP :: (PrimMonad m, Vector v e) => Proxy a' a b' b (ToVector v e m) r -> Proxy a' a b' b m (v e) Source
Extract and freeze the constructed vector
runToVector :: (PrimMonad m, Vector v e) => ToVector v e m r -> m (v e) Source
MonadTrans (ToVector v e) | |
Monad m => Monad (ToVector v e m) | |
Functor m => Functor (ToVector v e m) | |
(Monad m, Functor m) => Applicative (ToVector v e m) | |
PrimMonad m => PrimMonad (ToVector v e m) | |
MonadPrim m => MonadPrim (ToVector v e m) | |
MonadIO m => MonadIO (ToVector v e m) | |
type BasePrimMonad (ToVector v e m) = BasePrimMonad m | |
type PrimState (ToVector v e m) = PrimState m |