{-# 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 = xform0 c_string_delete newCppString :: (Castable c0 CString) => c0 -> IO CppString newCppString = xform0 c_string_newcppstring cppString_c_str :: () => CppString -> IO CString cppString_c_str = xform0 c_string_cppstring_c_str cppString_append :: (ICppString c0, FPtr c0) => CppString -> c0 -> IO CppString cppString_append = xform1 c_string_cppstring_append cppString_erase :: () => CppString -> IO CppString cppString_erase = xform0 c_string_cppstring_erase