{-# LINE 1 "lib/CPython/Types/Method.chs" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
module CPython.Types.Method
( Method
, methodType
, new
, function
, self
) where
import qualified Foreign.Ptr as C2HSImp
import qualified System.IO.Unsafe as C2HSImp
import CPython.Internal hiding (new)
newtype Method = Method (ForeignPtr Method)
instance Object Method where
toObject :: Method -> SomeObject
toObject (Method x :: ForeignPtr Method
x) = ForeignPtr Method -> SomeObject
forall a. Object a => ForeignPtr a -> SomeObject
SomeObject ForeignPtr Method
x
fromForeignPtr :: ForeignPtr Method -> Method
fromForeignPtr = ForeignPtr Method -> Method
Method
instance Concrete Method where
concreteType :: Method -> Type
concreteType _ = Type
methodType
methodType :: (Type)
methodType :: Type
methodType =
C2HSImp.unsafePerformIO $
methodType'_ >>= \res ->
peekStaticObject res >>= \res' ->
return (res')
{-# LINE 41 "lib/CPython/Types/Method.chs" #-}
new :: (Object func, Object self) => (func) -> (self) -> IO ((Method))
new a1 a2 =
withObject a1 $ \a1' ->
withObject a2 $ \a2' ->
new'_ a1' a2' >>= \res ->
stealObject res >>= \res' ->
return (res')
{-# LINE 47 "lib/CPython/Types/Method.chs" #-}
function :: (Method) -> IO ((SomeObject))
function a1 =
withObject a1 $ \a1' ->
function'_ a1' >>= \res ->
peekObject res >>= \res' ->
return (res')
{-# LINE 51 "lib/CPython/Types/Method.chs" #-}
self :: (Method) -> IO ((SomeObject))
self a1 =
withObject a1 $ \a1' ->
self'_ a1' >>= \res ->
peekObject res >>= \res' ->
return (res')
{-# LINE 55 "lib/CPython/Types/Method.chs" #-}
foreign import ccall unsafe "CPython/Types/Method.chs.h hscpython_PyMethod_Type"
methodType'_ :: (IO (C2HSImp.Ptr ()))
foreign import ccall safe "CPython/Types/Method.chs.h PyMethod_New"
new'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ()))))
foreign import ccall safe "CPython/Types/Method.chs.h PyMethod_Function"
function'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))
foreign import ccall safe "CPython/Types/Method.chs.h PyMethod_Self"
self'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))