{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Soup.Structs.Multipart
(
Multipart(..) ,
#if defined(ENABLE_OVERLOADING)
ResolveMultipartMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
MultipartAppendFormFileMethodInfo ,
#endif
multipartAppendFormFile ,
#if defined(ENABLE_OVERLOADING)
MultipartAppendFormStringMethodInfo ,
#endif
multipartAppendFormString ,
#if defined(ENABLE_OVERLOADING)
MultipartAppendPartMethodInfo ,
#endif
multipartAppendPart ,
#if defined(ENABLE_OVERLOADING)
MultipartFreeMethodInfo ,
#endif
multipartFree ,
#if defined(ENABLE_OVERLOADING)
MultipartGetLengthMethodInfo ,
#endif
multipartGetLength ,
#if defined(ENABLE_OVERLOADING)
MultipartGetPartMethodInfo ,
#endif
multipartGetPart ,
multipartNew ,
multipartNewFromMessage ,
#if defined(ENABLE_OVERLOADING)
MultipartToMessageMethodInfo ,
#endif
multipartToMessage ,
) 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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R
import qualified GI.GLib.Structs.Bytes as GLib.Bytes
import {-# SOURCE #-} qualified GI.Soup.Structs.MessageHeaders as Soup.MessageHeaders
newtype Multipart = Multipart (SP.ManagedPtr Multipart)
deriving (Multipart -> Multipart -> Bool
(Multipart -> Multipart -> Bool)
-> (Multipart -> Multipart -> Bool) -> Eq Multipart
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Multipart -> Multipart -> Bool
== :: Multipart -> Multipart -> Bool
$c/= :: Multipart -> Multipart -> Bool
/= :: Multipart -> Multipart -> Bool
Eq)
instance SP.ManagedPtrNewtype Multipart where
toManagedPtr :: Multipart -> ManagedPtr Multipart
toManagedPtr (Multipart ManagedPtr Multipart
p) = ManagedPtr Multipart
p
foreign import ccall "soup_multipart_get_type" c_soup_multipart_get_type ::
IO GType
type instance O.ParentTypes Multipart = '[]
instance O.HasParentTypes Multipart
instance B.Types.TypedObject Multipart where
glibType :: IO GType
glibType = IO GType
c_soup_multipart_get_type
instance B.Types.GBoxed Multipart
instance B.GValue.IsGValue (Maybe Multipart) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_soup_multipart_get_type
gvalueSet_ :: Ptr GValue -> Maybe Multipart -> IO ()
gvalueSet_ Ptr GValue
gv Maybe Multipart
P.Nothing = Ptr GValue -> Ptr Multipart -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv (Ptr Multipart
forall a. Ptr a
FP.nullPtr :: FP.Ptr Multipart)
gvalueSet_ Ptr GValue
gv (P.Just Multipart
obj) = Multipart -> (Ptr Multipart -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Multipart
obj (Ptr GValue -> Ptr Multipart -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe Multipart)
gvalueGet_ Ptr GValue
gv = do
Ptr Multipart
ptr <- Ptr GValue -> IO (Ptr Multipart)
forall b. Ptr GValue -> IO (Ptr b)
B.GValue.get_boxed Ptr GValue
gv :: IO (Ptr Multipart)
if Ptr Multipart
ptr Ptr Multipart -> Ptr Multipart -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr Multipart
forall a. Ptr a
FP.nullPtr
then Multipart -> Maybe Multipart
forall a. a -> Maybe a
P.Just (Multipart -> Maybe Multipart)
-> IO Multipart -> IO (Maybe Multipart)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr Multipart -> Multipart)
-> Ptr Multipart -> IO Multipart
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.newBoxed ManagedPtr Multipart -> Multipart
Multipart Ptr Multipart
ptr
else Maybe Multipart -> IO (Maybe Multipart)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Multipart
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Multipart
type instance O.AttributeList Multipart = MultipartAttributeList
type MultipartAttributeList = ('[ ] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "soup_multipart_new" soup_multipart_new ::
CString ->
IO (Ptr Multipart)
multipartNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m Multipart
multipartNew :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> m Multipart
multipartNew Text
mimeType = IO Multipart -> m Multipart
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Multipart -> m Multipart) -> IO Multipart -> m Multipart
forall a b. (a -> b) -> a -> b
$ do
CString
mimeType' <- Text -> IO CString
textToCString Text
mimeType
Ptr Multipart
result <- CString -> IO (Ptr Multipart)
soup_multipart_new CString
mimeType'
Text -> Ptr Multipart -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"multipartNew" Ptr Multipart
result
Multipart
result' <- ((ManagedPtr Multipart -> Multipart)
-> Ptr Multipart -> IO Multipart
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Multipart -> Multipart
Multipart) Ptr Multipart
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
mimeType'
Multipart -> IO Multipart
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Multipart
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "soup_multipart_new_from_message" soup_multipart_new_from_message ::
Ptr Soup.MessageHeaders.MessageHeaders ->
Ptr GLib.Bytes.Bytes ->
IO (Ptr Multipart)
multipartNewFromMessage ::
(B.CallStack.HasCallStack, MonadIO m) =>
Soup.MessageHeaders.MessageHeaders
-> GLib.Bytes.Bytes
-> m (Maybe Multipart)
multipartNewFromMessage :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
MessageHeaders -> Bytes -> m (Maybe Multipart)
multipartNewFromMessage MessageHeaders
headers Bytes
body = IO (Maybe Multipart) -> m (Maybe Multipart)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Multipart) -> m (Maybe Multipart))
-> IO (Maybe Multipart) -> m (Maybe Multipart)
forall a b. (a -> b) -> a -> b
$ do
Ptr MessageHeaders
headers' <- MessageHeaders -> IO (Ptr MessageHeaders)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MessageHeaders
headers
Ptr Bytes
body' <- Bytes -> IO (Ptr Bytes)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Bytes
body
Ptr Multipart
result <- Ptr MessageHeaders -> Ptr Bytes -> IO (Ptr Multipart)
soup_multipart_new_from_message Ptr MessageHeaders
headers' Ptr Bytes
body'
Maybe Multipart
maybeResult <- Ptr Multipart
-> (Ptr Multipart -> IO Multipart) -> IO (Maybe Multipart)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Multipart
result ((Ptr Multipart -> IO Multipart) -> IO (Maybe Multipart))
-> (Ptr Multipart -> IO Multipart) -> IO (Maybe Multipart)
forall a b. (a -> b) -> a -> b
$ \Ptr Multipart
result' -> do
Multipart
result'' <- ((ManagedPtr Multipart -> Multipart)
-> Ptr Multipart -> IO Multipart
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Multipart -> Multipart
Multipart) Ptr Multipart
result'
Multipart -> IO Multipart
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Multipart
result''
MessageHeaders -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MessageHeaders
headers
Bytes -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Bytes
body
Maybe Multipart -> IO (Maybe Multipart)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Multipart
maybeResult
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "soup_multipart_append_form_file" soup_multipart_append_form_file ::
Ptr Multipart ->
CString ->
CString ->
CString ->
Ptr GLib.Bytes.Bytes ->
IO ()
multipartAppendFormFile ::
(B.CallStack.HasCallStack, MonadIO m) =>
Multipart
-> T.Text
-> Maybe (T.Text)
-> Maybe (T.Text)
-> GLib.Bytes.Bytes
-> m ()
multipartAppendFormFile :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Multipart -> Text -> Maybe Text -> Maybe Text -> Bytes -> m ()
multipartAppendFormFile Multipart
multipart Text
controlName Maybe Text
filename Maybe Text
contentType Bytes
body = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Multipart
multipart' <- Multipart -> IO (Ptr Multipart)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Multipart
multipart
CString
controlName' <- Text -> IO CString
textToCString Text
controlName
CString
maybeFilename <- case Maybe Text
filename of
Maybe Text
Nothing -> CString -> IO CString
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CString
forall a. Ptr a
nullPtr
Just Text
jFilename -> do
CString
jFilename' <- Text -> IO CString
textToCString Text
jFilename
CString -> IO CString
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CString
jFilename'
CString
maybeContentType <- case Maybe Text
contentType of
Maybe Text
Nothing -> CString -> IO CString
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CString
forall a. Ptr a
nullPtr
Just Text
jContentType -> do
CString
jContentType' <- Text -> IO CString
textToCString Text
jContentType
CString -> IO CString
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CString
jContentType'
Ptr Bytes
body' <- Bytes -> IO (Ptr Bytes)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Bytes
body
Ptr Multipart
-> CString -> CString -> CString -> Ptr Bytes -> IO ()
soup_multipart_append_form_file Ptr Multipart
multipart' CString
controlName' CString
maybeFilename CString
maybeContentType Ptr Bytes
body'
Multipart -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Multipart
multipart
Bytes -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Bytes
body
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
controlName'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
maybeFilename
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
maybeContentType
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data MultipartAppendFormFileMethodInfo
instance (signature ~ (T.Text -> Maybe (T.Text) -> Maybe (T.Text) -> GLib.Bytes.Bytes -> m ()), MonadIO m) => O.OverloadedMethod MultipartAppendFormFileMethodInfo Multipart signature where
overloadedMethod = multipartAppendFormFile
instance O.OverloadedMethodInfo MultipartAppendFormFileMethodInfo Multipart where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Structs.Multipart.multipartAppendFormFile",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-3.0.2/docs/GI-Soup-Structs-Multipart.html#v:multipartAppendFormFile"
})
#endif
foreign import ccall "soup_multipart_append_form_string" soup_multipart_append_form_string ::
Ptr Multipart ->
CString ->
CString ->
IO ()
multipartAppendFormString ::
(B.CallStack.HasCallStack, MonadIO m) =>
Multipart
-> T.Text
-> T.Text
-> m ()
multipartAppendFormString :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Multipart -> Text -> Text -> m ()
multipartAppendFormString Multipart
multipart Text
controlName Text
data_ = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Multipart
multipart' <- Multipart -> IO (Ptr Multipart)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Multipart
multipart
CString
controlName' <- Text -> IO CString
textToCString Text
controlName
CString
data_' <- Text -> IO CString
textToCString Text
data_
Ptr Multipart -> CString -> CString -> IO ()
soup_multipart_append_form_string Ptr Multipart
multipart' CString
controlName' CString
data_'
Multipart -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Multipart
multipart
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
controlName'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
data_'
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data MultipartAppendFormStringMethodInfo
instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m) => O.OverloadedMethod MultipartAppendFormStringMethodInfo Multipart signature where
overloadedMethod = multipartAppendFormString
instance O.OverloadedMethodInfo MultipartAppendFormStringMethodInfo Multipart where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Structs.Multipart.multipartAppendFormString",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-3.0.2/docs/GI-Soup-Structs-Multipart.html#v:multipartAppendFormString"
})
#endif
foreign import ccall "soup_multipart_append_part" soup_multipart_append_part ::
Ptr Multipart ->
Ptr Soup.MessageHeaders.MessageHeaders ->
Ptr GLib.Bytes.Bytes ->
IO ()
multipartAppendPart ::
(B.CallStack.HasCallStack, MonadIO m) =>
Multipart
-> Soup.MessageHeaders.MessageHeaders
-> GLib.Bytes.Bytes
-> m ()
multipartAppendPart :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Multipart -> MessageHeaders -> Bytes -> m ()
multipartAppendPart Multipart
multipart MessageHeaders
headers Bytes
body = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Multipart
multipart' <- Multipart -> IO (Ptr Multipart)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Multipart
multipart
Ptr MessageHeaders
headers' <- MessageHeaders -> IO (Ptr MessageHeaders)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MessageHeaders
headers
Ptr Bytes
body' <- Bytes -> IO (Ptr Bytes)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Bytes
body
Ptr Multipart -> Ptr MessageHeaders -> Ptr Bytes -> IO ()
soup_multipart_append_part Ptr Multipart
multipart' Ptr MessageHeaders
headers' Ptr Bytes
body'
Multipart -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Multipart
multipart
MessageHeaders -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MessageHeaders
headers
Bytes -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Bytes
body
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data MultipartAppendPartMethodInfo
instance (signature ~ (Soup.MessageHeaders.MessageHeaders -> GLib.Bytes.Bytes -> m ()), MonadIO m) => O.OverloadedMethod MultipartAppendPartMethodInfo Multipart signature where
overloadedMethod = multipartAppendPart
instance O.OverloadedMethodInfo MultipartAppendPartMethodInfo Multipart where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Structs.Multipart.multipartAppendPart",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-3.0.2/docs/GI-Soup-Structs-Multipart.html#v:multipartAppendPart"
})
#endif
foreign import ccall "soup_multipart_free" soup_multipart_free ::
Ptr Multipart ->
IO ()
multipartFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
Multipart
-> m ()
multipartFree :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Multipart -> m ()
multipartFree Multipart
multipart = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Multipart
multipart' <- Multipart -> IO (Ptr Multipart)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Multipart
multipart
Ptr Multipart -> IO ()
soup_multipart_free Ptr Multipart
multipart'
Multipart -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Multipart
multipart
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data MultipartFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.OverloadedMethod MultipartFreeMethodInfo Multipart signature where
overloadedMethod = multipartFree
instance O.OverloadedMethodInfo MultipartFreeMethodInfo Multipart where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Structs.Multipart.multipartFree",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-3.0.2/docs/GI-Soup-Structs-Multipart.html#v:multipartFree"
})
#endif
foreign import ccall "soup_multipart_get_length" soup_multipart_get_length ::
Ptr Multipart ->
IO Int32
multipartGetLength ::
(B.CallStack.HasCallStack, MonadIO m) =>
Multipart
-> m Int32
multipartGetLength :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Multipart -> m Int32
multipartGetLength Multipart
multipart = IO Int32 -> m Int32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
Ptr Multipart
multipart' <- Multipart -> IO (Ptr Multipart)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Multipart
multipart
Int32
result <- Ptr Multipart -> IO Int32
soup_multipart_get_length Ptr Multipart
multipart'
Multipart -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Multipart
multipart
Int32 -> IO Int32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result
#if defined(ENABLE_OVERLOADING)
data MultipartGetLengthMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.OverloadedMethod MultipartGetLengthMethodInfo Multipart signature where
overloadedMethod = multipartGetLength
instance O.OverloadedMethodInfo MultipartGetLengthMethodInfo Multipart where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Structs.Multipart.multipartGetLength",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-3.0.2/docs/GI-Soup-Structs-Multipart.html#v:multipartGetLength"
})
#endif
foreign import ccall "soup_multipart_get_part" soup_multipart_get_part ::
Ptr Multipart ->
Int32 ->
Ptr (Ptr Soup.MessageHeaders.MessageHeaders) ->
Ptr (Ptr GLib.Bytes.Bytes) ->
IO CInt
multipartGetPart ::
(B.CallStack.HasCallStack, MonadIO m) =>
Multipart
-> Int32
-> m ((Bool, Soup.MessageHeaders.MessageHeaders, GLib.Bytes.Bytes))
multipartGetPart :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Multipart -> Int32 -> m (Bool, MessageHeaders, Bytes)
multipartGetPart Multipart
multipart Int32
part = IO (Bool, MessageHeaders, Bytes) -> m (Bool, MessageHeaders, Bytes)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, MessageHeaders, Bytes)
-> m (Bool, MessageHeaders, Bytes))
-> IO (Bool, MessageHeaders, Bytes)
-> m (Bool, MessageHeaders, Bytes)
forall a b. (a -> b) -> a -> b
$ do
Ptr Multipart
multipart' <- Multipart -> IO (Ptr Multipart)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Multipart
multipart
Ptr (Ptr MessageHeaders)
headers <- IO (Ptr (Ptr MessageHeaders))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Soup.MessageHeaders.MessageHeaders))
Ptr (Ptr Bytes)
body <- IO (Ptr (Ptr Bytes))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr GLib.Bytes.Bytes))
CInt
result <- Ptr Multipart
-> Int32 -> Ptr (Ptr MessageHeaders) -> Ptr (Ptr Bytes) -> IO CInt
soup_multipart_get_part Ptr Multipart
multipart' Int32
part Ptr (Ptr MessageHeaders)
headers Ptr (Ptr Bytes)
body
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
Ptr MessageHeaders
headers' <- Ptr (Ptr MessageHeaders) -> IO (Ptr MessageHeaders)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr MessageHeaders)
headers
MessageHeaders
headers'' <- ((ManagedPtr MessageHeaders -> MessageHeaders)
-> Ptr MessageHeaders -> IO MessageHeaders
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr MessageHeaders -> MessageHeaders
Soup.MessageHeaders.MessageHeaders) Ptr MessageHeaders
headers'
Ptr Bytes
body' <- Ptr (Ptr Bytes) -> IO (Ptr Bytes)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr Bytes)
body
Bytes
body'' <- ((ManagedPtr Bytes -> Bytes) -> Ptr Bytes -> IO Bytes
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr Bytes -> Bytes
GLib.Bytes.Bytes) Ptr Bytes
body'
Multipart -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Multipart
multipart
Ptr (Ptr MessageHeaders) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr MessageHeaders)
headers
Ptr (Ptr Bytes) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr Bytes)
body
(Bool, MessageHeaders, Bytes) -> IO (Bool, MessageHeaders, Bytes)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', MessageHeaders
headers'', Bytes
body'')
#if defined(ENABLE_OVERLOADING)
data MultipartGetPartMethodInfo
instance (signature ~ (Int32 -> m ((Bool, Soup.MessageHeaders.MessageHeaders, GLib.Bytes.Bytes))), MonadIO m) => O.OverloadedMethod MultipartGetPartMethodInfo Multipart signature where
overloadedMethod = multipartGetPart
instance O.OverloadedMethodInfo MultipartGetPartMethodInfo Multipart where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Structs.Multipart.multipartGetPart",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-3.0.2/docs/GI-Soup-Structs-Multipart.html#v:multipartGetPart"
})
#endif
foreign import ccall "soup_multipart_to_message" soup_multipart_to_message ::
Ptr Multipart ->
Ptr Soup.MessageHeaders.MessageHeaders ->
Ptr (Ptr GLib.Bytes.Bytes) ->
IO ()
multipartToMessage ::
(B.CallStack.HasCallStack, MonadIO m) =>
Multipart
-> Soup.MessageHeaders.MessageHeaders
-> m (GLib.Bytes.Bytes)
multipartToMessage :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Multipart -> MessageHeaders -> m Bytes
multipartToMessage Multipart
multipart MessageHeaders
destHeaders = IO Bytes -> m Bytes
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bytes -> m Bytes) -> IO Bytes -> m Bytes
forall a b. (a -> b) -> a -> b
$ do
Ptr Multipart
multipart' <- Multipart -> IO (Ptr Multipart)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Multipart
multipart
Ptr MessageHeaders
destHeaders' <- MessageHeaders -> IO (Ptr MessageHeaders)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MessageHeaders
destHeaders
Ptr (Ptr Bytes)
destBody <- IO (Ptr (Ptr Bytes))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr GLib.Bytes.Bytes))
Ptr Multipart -> Ptr MessageHeaders -> Ptr (Ptr Bytes) -> IO ()
soup_multipart_to_message Ptr Multipart
multipart' Ptr MessageHeaders
destHeaders' Ptr (Ptr Bytes)
destBody
Ptr Bytes
destBody' <- Ptr (Ptr Bytes) -> IO (Ptr Bytes)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr Bytes)
destBody
Bytes
destBody'' <- ((ManagedPtr Bytes -> Bytes) -> Ptr Bytes -> IO Bytes
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Bytes -> Bytes
GLib.Bytes.Bytes) Ptr Bytes
destBody'
Multipart -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Multipart
multipart
MessageHeaders -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MessageHeaders
destHeaders
Ptr (Ptr Bytes) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr Bytes)
destBody
Bytes -> IO Bytes
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bytes
destBody''
#if defined(ENABLE_OVERLOADING)
data MultipartToMessageMethodInfo
instance (signature ~ (Soup.MessageHeaders.MessageHeaders -> m (GLib.Bytes.Bytes)), MonadIO m) => O.OverloadedMethod MultipartToMessageMethodInfo Multipart signature where
overloadedMethod = multipartToMessage
instance O.OverloadedMethodInfo MultipartToMessageMethodInfo Multipart where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Structs.Multipart.multipartToMessage",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-3.0.2/docs/GI-Soup-Structs-Multipart.html#v:multipartToMessage"
})
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveMultipartMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveMultipartMethod "appendFormFile" o = MultipartAppendFormFileMethodInfo
ResolveMultipartMethod "appendFormString" o = MultipartAppendFormStringMethodInfo
ResolveMultipartMethod "appendPart" o = MultipartAppendPartMethodInfo
ResolveMultipartMethod "free" o = MultipartFreeMethodInfo
ResolveMultipartMethod "toMessage" o = MultipartToMessageMethodInfo
ResolveMultipartMethod "getLength" o = MultipartGetLengthMethodInfo
ResolveMultipartMethod "getPart" o = MultipartGetPartMethodInfo
ResolveMultipartMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveMultipartMethod t Multipart, O.OverloadedMethod info Multipart p) => OL.IsLabel t (Multipart -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveMultipartMethod t Multipart, O.OverloadedMethod info Multipart p, R.HasField t Multipart p) => R.HasField t Multipart p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveMultipartMethod t Multipart, O.OverloadedMethodInfo info Multipart) => OL.IsLabel t (O.MethodProxy info Multipart) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif