fficxx-runtime 0.2 → 0.2.1
raw patch · 2 files changed
+23/−8 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ FFICXX.Runtime.Cast: instance Castable (Ptr ()) (Ptr ())
+ FFICXX.Runtime.Cast: instance IsString CString
Files
- fficxx-runtime.cabal +1/−1
- lib/FFICXX/Runtime/Cast.hs +22/−7
fficxx-runtime.cabal view
@@ -1,5 +1,5 @@ Name: fficxx-runtime-Version: 0.2+Version: 0.2.1 Synopsis: Runtime for fficxx-generated library Description: Runtime for fficxx-generated library License: BSD3
lib/FFICXX/Runtime/Cast.hs view
@@ -1,13 +1,18 @@-{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, - FlexibleInstances, TypeSynonymInstances, - EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables, - GADTs #-}+{-# LANGUAGE EmptyDataDecls #-}+{-# LANGUAGE ExistentialQuantification #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE GADTs #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeSynonymInstances #-} ----------------------------------------------------------------------------- -- | -- Module : FFICXX.Runtime.Cast--- Copyright : (c) 2011-2013 Ian-Woo Kim+-- Copyright : (c) 2011-2014 Ian-Woo Kim -- -- License : BSD3 -- Maintainer : Ian-Woo Kim <ianwookim@gmail.com>@@ -18,8 +23,10 @@ module FFICXX.Runtime.Cast where +import Data.String import Data.Word-import Foreign.C +import Foreign.C+import Foreign.C.String import Foreign.Ptr import Foreign.ForeignPtr import Foreign.Marshal.Array@@ -64,6 +71,9 @@ instance IsCType CULong instance IsCType CLong +instance IsString CString where+ fromString str = unsafePerformIO (newCString str)+ -- cause incoherent instances but cannot avoid it now {- instance Castable a a where@@ -98,7 +108,7 @@ cast = id uncast = id -+ instance Castable (Ptr CInt) (Ptr CInt) where cast = id uncast = id @@ -126,6 +136,11 @@ instance Castable (Ptr CString) (Ptr CString) where cast = id uncast = id ++instance Castable (Ptr ()) (Ptr ()) where+ cast = id+ uncast = id+ instance Castable Int CInt where cast = fromIntegral