{-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, IncoherentInstances, MultiParamTypeClasses, OverlappingInstances, TemplateHaskell, TypeFamilies, TypeSynonymInstances #-} module STD.CppString.Implementation where import Data.Monoid import Data.Word import Data.Int import Foreign.C import Foreign.Ptr import Language.Haskell.TH import Language.Haskell.TH.Syntax import System.IO.Unsafe import FFICXX.Runtime.Cast import FFICXX.Runtime.CodeGen.Cxx import FFICXX.Runtime.TH import STD.CppString.RawType import STD.CppString.FFI import STD.CppString.Interface import STD.CppString.Cast import STD.CppString.RawType import STD.CppString.Cast import STD.CppString.Interface import STD.Deletable.RawType import STD.Deletable.Cast import STD.Deletable.Interface instance () => ICppString (CppString) where instance () => IDeletable (CppString) where delete :: CppString -> IO () delete = forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawCppString -> IO () c_string_delete newCppString :: (Castable c0 CString) => c0 -> IO CppString newCppString :: forall c0. Castable c0 CString => c0 -> IO CppString newCppString = forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 CString -> IO (Ptr RawCppString) c_string_newcppstring cppString_c_str :: () => CppString -> IO CString cppString_c_str :: CppString -> IO CString cppString_c_str = forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawCppString -> IO CString c_string_cppstring_c_str cppString_append :: (ICppString c0, FPtr c0) => CppString -> c0 -> IO CppString cppString_append :: forall c0. (ICppString c0, FPtr c0) => CppString -> c0 -> IO CppString cppString_append = forall a ca x1 cx1 y cy. (Castable a ca, Castable x1 cx1, Castable y cy) => (ca -> cx1 -> IO cy) -> a -> x1 -> IO y xform1 Ptr RawCppString -> Ptr RawCppString -> IO (Ptr RawCppString) c_string_cppstring_append cppString_erase :: () => CppString -> IO CppString cppString_erase :: CppString -> IO CppString cppString_erase = forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawCppString -> IO (Ptr RawCppString) c_string_cppstring_erase