mirror of
https://github.com/idris-lang/Idris2.git
synced 2024-12-22 19:21:39 +03:00
1c576cb068
Backed by Data.IOArray. Also moved the array external primitives to a separate module Data.IOArray.Prims, since the next step is to add a linear bounded array type where the bounds checks are done at compile time, so we'll want to read and write without bounds likes.
12 lines
454 B
Idris
12 lines
454 B
Idris
module Data.IOArray.Prims
|
|
|
|
export
|
|
data ArrayData : Type -> Type where [external]
|
|
|
|
-- 'unsafe' primitive access, backend dependent
|
|
-- get and set assume that the bounds have been checked. Behaviour is undefined
|
|
-- otherwise.
|
|
export %extern prim__newArray : forall a . Int -> a -> PrimIO (ArrayData a)
|
|
export %extern prim__arrayGet : forall a . ArrayData a -> Int -> PrimIO a
|
|
export %extern prim__arraySet : forall a . ArrayData a -> Int -> a -> PrimIO ()
|