module Data.Repa.Array.Material.Auto.InstUnit where
import Data.Repa.Array.Material.Auto.Base as A
import Data.Repa.Array.Material.Boxed as A
import Data.Repa.Array.Meta.Window as A
import Data.Repa.Array.Internals.Bulk as A
import Data.Repa.Array.Internals.Target as A
#include "repa-array.h"
instance Bulk A () where
data Array A () = AArray_Unit !Int
layout (AArray_Unit len) = Auto len
index (AArray_Unit _len) _ix = ()
deriving instance Show (Array A ())
instance Windowable A () where
window _st len' (AArray_Unit _len)
= AArray_Unit len'
instance Target A () where
data Buffer A ()
= ABuffer_Unit !Int
unsafeNewBuffer (Auto len)
= return $ ABuffer_Unit len
unsafeReadBuffer (ABuffer_Unit _len) _ix
= return ()
unsafeWriteBuffer (ABuffer_Unit _len) _ix _x
= return ()
unsafeGrowBuffer (ABuffer_Unit len) bump
= return $ ABuffer_Unit (len + bump)
unsafeFreezeBuffer (ABuffer_Unit len)
= return $ AArray_Unit len
unsafeThawBuffer (AArray_Unit len)
= return $ ABuffer_Unit len
unsafeSliceBuffer _st len (ABuffer_Unit _len)
= return $ ABuffer_Unit len
touchBuffer (ABuffer_Unit _len)
= return ()
bufferLayout (ABuffer_Unit len)
= Auto len