module VectorRing where import Data.Vector.Unboxed.Mutable import RingBuffer -- | Typical usage: -- -- > ringBuffer <- newRing capacity (VectorRing.new capacity) new :: Unbox a => Int -> IO (TargetBuffer a) new sz = do v <- unsafeNew sz return () :: IO () return TargetBuffer { syncBuffer = \_ -> return () , updateBuffer = \i u -> write v i u }