on master help sign in
Rename getSlicesUnfold to slicer
commit3519eaf820de596451b20fd4c479cb77cc36d74a authorHarendra Kumar <harendra@composewell.com> dateSat 30 Dec 2023, 08:29 (3 years ago) parent6e37f26
1 file changed+28−9
core/src/Streamly/Internal/Data/MutArray.hs+28−9
core/src/Streamly/Internal/Data/MutArray.hs+28−9
@@ -12,11 +12,16 @@ module Streamly.Internal.Data.MutArray
1212 module Streamly.Internal.Data.MutArray.Type
1313 -- * MutArray module
1414 , splitOn
15− , genSlicesFromLen
16− , getSlicesFromLen
15+ , sliceIndexerFromLen
16+ , slicerFromLen
1717 , fromStream
1818 -- * Unboxed IORef
1919 , module Streamly.Internal.Data.IORef.Unboxed
20+
21+ -- * Deprecated
22+ , splitOn
23+ , genSlicesFromLen
24+ , getSlicesFromLen
2025 )
2126where
2227
@@ -50,31 +55,45 @@ splitOn predicate arr =
5055-- may be shorter than the requested length depending on the array length.
5156--
5257-- /Pre-release/
53−{-# INLINE genSlicesFromLen #-}
54−genSlicesFromLen :: forall m a. (Monad m, Unbox a)
58+{-# INLINE sliceIndexerFromLen #-}
59+sliceIndexerFromLen :: forall m a. (Monad m, Unbox a)
5560 => Int -- ^ from index
5661 -> Int -- ^ length of the slice
5762 -> Unfold m (MutArray a) (Int, Int)
58−genSlicesFromLen from len =
63+sliceIndexerFromLen from len =
5964 let fromThenTo n = (from, from + len, n - 1)
6065 mkSlice n i = return (i, min len (n - i))
6166 in Unfold.lmap length
6267 $ Unfold.mapM2 mkSlice
6368 $ Unfold.lmap fromThenTo Unfold.enumerateFromThenTo
6469
70+{-# DEPRECATED genSlicesFromLen "Please use sliceIndexerFromLen instead." #-}
71+genSlicesFromLen :: forall m a. (Monad m, Unbox a)
72+ => Int -- ^ from index
73+ -> Int -- ^ length of the slice
74+ -> Unfold m (MutArray a) (Int, Int)
75+genSlicesFromLen = sliceIndexerFromLen
76+
6577-- | Generate a stream of slices of specified length from an array, starting
6678-- from the supplied array index. The last slice may be shorter than the
6779-- requested length depending on the array length.
6880--
6981-- /Pre-release/
70−{-# INLINE getSlicesFromLen #-}
71−getSlicesFromLen :: forall m a. (Monad m, Unbox a)
82+{-# INLINE slicerFromLen #-}
83+slicerFromLen :: forall m a. (Monad m, Unbox a)
7284 => Int -- ^ from index
7385 -> Int -- ^ length of the slice
7486 -> Unfold m (MutArray a) (MutArray a)
75−getSlicesFromLen from len =
87+slicerFromLen from len =
7688 let mkSlice arr (i, n) = return $ getSliceUnsafe i n arr
77− in Unfold.mapM2 mkSlice (genSlicesFromLen from len)
89+ in Unfold.mapM2 mkSlice (sliceIndexerFromLen from len)
90+
91+{-# DEPRECATED getSlicesFromLen "Please use slicerFromLen instead." #-}
92+getSlicesFromLen :: forall m a. (Monad m, Unbox a)
93+ => Int -- ^ from index
94+ -> Int -- ^ length of the slice
95+ -> Unfold m (MutArray a) (MutArray a)
96+getSlicesFromLen = slicerFromLen
7897
7998-- | Create an 'Array' from a stream. This is useful when we want to create a
8099-- single array from a stream of unknown size. 'writeN' is at least twice