diff options
Diffstat (limited to 'VectorRing.hs')
-rw-r--r-- | VectorRing.hs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/VectorRing.hs b/VectorRing.hs new file mode 100644 index 0000000..2ddac72 --- /dev/null +++ b/VectorRing.hs | |||
@@ -0,0 +1,17 @@ | |||
1 | module VectorRing where | ||
2 | |||
3 | import Data.Vector.Unboxed.Mutable | ||
4 | import RingBuffer | ||
5 | |||
6 | -- | Typical usage: | ||
7 | -- | ||
8 | -- > ringBuffer <- newRing capacity (VectorRing.new capacity) | ||
9 | new :: Unbox a => Int -> IO (TargetBuffer a) | ||
10 | new sz = do | ||
11 | v <- unsafeNew sz | ||
12 | return () :: IO () | ||
13 | return TargetBuffer | ||
14 | { syncBuffer = \_ -> return () | ||
15 | , updateBuffer = \i u -> write v i u | ||
16 | } | ||
17 | |||