Skip to content

Latest commit

 

History

History
28 lines (21 loc) · 728 Bytes

README.md

File metadata and controls

28 lines (21 loc) · 728 Bytes

c-storable-deriving

This library is intended to make generating C-like storable instances from datatypes easy.

Example

{-# LANGUAGE DeriveGeneric, DeriveAnyClass #-}

import GHC.Generics (Generic(..))
import Foreign (Storable(..))
import Foreign.CStorable (CStorable(..))

-- | a two-dimensional point.
-- Compatible with both OSX's @CGPoint@ and Window's @POINT@.
data Point = Point
 { x :: Double
 , y :: Double
 } deriving (Generic, CStorable)

instance Storable Point where
 peek      = cPeek
 poke      = cPoke
 alignment = cAlignment
 sizeOf    = cSizeOf

See the haddocks for further details: Foreign.CStorable