Derivation of C-like Storable Instances
Haskell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Foreign
LICENSE
README.md
Setup.hs
c-storable-deriving.cabal

README.md

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