mirror of
https://github.com/idris-lang/Idris2.git
synced 2024-12-26 13:11:30 +03:00
21 lines
416 B
Idris
21 lines
416 B
Idris
import Data.Buffer
|
|
|
|
export
|
|
data ForeignPtr : Type -> Type where
|
|
MkFP : Buffer -> ForeignPtr a
|
|
|
|
public export
|
|
interface Storable a where
|
|
|
|
size : ForeignPtr a -> Int
|
|
|
|
peekByteOff : HasIO io => ForeignPtr a -> Int -> io a
|
|
|
|
peekElemOff : HasIO io => ForeignPtr a -> Int -> io a
|
|
peekElemOff fp off = peekByteOff fp (off * size fp)
|
|
|
|
Storable Bits8 where
|
|
|
|
size _ = 8
|
|
peekByteOff (MkFP b) off = getBits8 b off
|