module GI.GLib.Structs.IConv
(
IConv(..) ,
noIConv ,
#ifdef ENABLE_OVERLOADING
IConvCloseMethodInfo ,
#endif
iConvClose ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
newtype IConv = IConv (ManagedPtr IConv)
instance WrappedPtr IConv where
wrappedPtrCalloc = return nullPtr
wrappedPtrCopy = return
wrappedPtrFree = Nothing
noIConv :: Maybe IConv
noIConv = Nothing
#ifdef ENABLE_OVERLOADING
instance O.HasAttributeList IConv
type instance O.AttributeList IConv = IConvAttributeList
type IConvAttributeList = ('[ ] :: [(Symbol, *)])
#endif
foreign import ccall "g_iconv_close" g_iconv_close ::
Ptr IConv ->
IO Int32
iConvClose ::
(B.CallStack.HasCallStack, MonadIO m) =>
IConv
-> m Int32
iConvClose converter = liftIO $ do
converter' <- unsafeManagedPtrGetPtr converter
result <- g_iconv_close converter'
touchManagedPtr converter
return result
#ifdef ENABLE_OVERLOADING
data IConvCloseMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo IConvCloseMethodInfo IConv signature where
overloadedMethod _ = iConvClose
#endif
#ifdef ENABLE_OVERLOADING
type family ResolveIConvMethod (t :: Symbol) (o :: *) :: * where
ResolveIConvMethod "close" o = IConvCloseMethodInfo
ResolveIConvMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveIConvMethod t IConv, O.MethodInfo info IConv p) => O.IsLabelProxy t (IConv -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveIConvMethod t IConv, O.MethodInfo info IConv p) => O.IsLabel t (IConv -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif
#endif