{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Soup.Structs.Multipart
(
Multipart(..) ,
noMultipart ,
#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.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
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 Data.Text as T
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 {-# SOURCE #-} qualified GI.Soup.Structs.Buffer as Soup.Buffer
import {-# SOURCE #-} qualified GI.Soup.Structs.MessageBody as Soup.MessageBody
import {-# SOURCE #-} qualified GI.Soup.Structs.MessageHeaders as Soup.MessageHeaders
newtype Multipart = Multipart (ManagedPtr Multipart)
deriving (Multipart -> Multipart -> Bool
(Multipart -> Multipart -> Bool)
-> (Multipart -> Multipart -> Bool) -> Eq Multipart
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Multipart -> Multipart -> Bool
$c/= :: Multipart -> Multipart -> Bool
== :: Multipart -> Multipart -> Bool
$c== :: Multipart -> Multipart -> Bool
Eq)
foreign import ccall "soup_multipart_get_type" c_soup_multipart_get_type ::
IO GType
instance BoxedObject Multipart where
boxedType :: Multipart -> IO GType
boxedType _ = IO GType
c_soup_multipart_get_type
instance B.GValue.IsGValue Multipart where
toGValue :: Multipart -> IO GValue
toGValue o :: Multipart
o = do
GType
gtype <- IO GType
c_soup_multipart_get_type
Multipart -> (Ptr Multipart -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Multipart
o (GType
-> (GValue -> Ptr Multipart -> IO ()) -> Ptr Multipart -> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr Multipart -> IO ()
forall a. GValue -> Ptr a -> IO ()
B.GValue.set_boxed)
fromGValue :: GValue -> IO Multipart
fromGValue gv :: GValue
gv = do
Ptr Multipart
ptr <- GValue -> IO (Ptr Multipart)
forall b. GValue -> IO (Ptr b)
B.GValue.get_boxed GValue
gv :: IO (Ptr Multipart)
(ManagedPtr Multipart -> Multipart)
-> Ptr Multipart -> IO Multipart
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.newBoxed ManagedPtr Multipart -> Multipart
Multipart Ptr Multipart
ptr
noMultipart :: Maybe Multipart
noMultipart :: Maybe Multipart
noMultipart = Maybe Multipart
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Multipart
type instance O.AttributeList Multipart = MultipartAttributeList
type MultipartAttributeList = ('[ ] :: [(Symbol, *)])
#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 :: Text -> m Multipart
multipartNew mimeType :: Text
mimeType = IO Multipart -> m Multipart
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 "multipartNew" Ptr Multipart
result
Multipart
result' <- ((ManagedPtr Multipart -> Multipart)
-> Ptr Multipart -> IO Multipart
forall a.
(HasCallStack, BoxedObject 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 (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 Soup.MessageBody.MessageBody ->
IO (Ptr Multipart)
multipartNewFromMessage ::
(B.CallStack.HasCallStack, MonadIO m) =>
Soup.MessageHeaders.MessageHeaders
-> Soup.MessageBody.MessageBody
-> m (Maybe Multipart)
multipartNewFromMessage :: MessageHeaders -> MessageBody -> m (Maybe Multipart)
multipartNewFromMessage headers :: MessageHeaders
headers body :: MessageBody
body = IO (Maybe Multipart) -> m (Maybe Multipart)
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 MessageBody
body' <- MessageBody -> IO (Ptr MessageBody)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MessageBody
body
Ptr Multipart
result <- Ptr MessageHeaders -> Ptr MessageBody -> IO (Ptr Multipart)
soup_multipart_new_from_message Ptr MessageHeaders
headers' Ptr MessageBody
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
$ \result' :: Ptr Multipart
result' -> do
Multipart
result'' <- ((ManagedPtr Multipart -> Multipart)
-> Ptr Multipart -> IO Multipart
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Multipart -> Multipart
Multipart) Ptr Multipart
result'
Multipart -> IO Multipart
forall (m :: * -> *) a. Monad m => a -> m a
return Multipart
result''
MessageHeaders -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MessageHeaders
headers
MessageBody -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MessageBody
body
Maybe Multipart -> IO (Maybe Multipart)
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 Soup.Buffer.Buffer ->
IO ()
multipartAppendFormFile ::
(B.CallStack.HasCallStack, MonadIO m) =>
Multipart
-> T.Text
-> T.Text
-> T.Text
-> Soup.Buffer.Buffer
-> m ()
multipartAppendFormFile :: Multipart -> Text -> Text -> Text -> Buffer -> m ()
multipartAppendFormFile multipart :: Multipart
multipart controlName :: Text
controlName filename :: Text
filename contentType :: Text
contentType body :: Buffer
body = IO () -> m ()
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
filename' <- Text -> IO CString
textToCString Text
filename
CString
contentType' <- Text -> IO CString
textToCString Text
contentType
Ptr Buffer
body' <- Buffer -> IO (Ptr Buffer)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Buffer
body
Ptr Multipart
-> CString -> CString -> CString -> Ptr Buffer -> IO ()
soup_multipart_append_form_file Ptr Multipart
multipart' CString
controlName' CString
filename' CString
contentType' Ptr Buffer
body'
Multipart -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Multipart
multipart
Buffer -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Buffer
body
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
controlName'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
filename'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
contentType'
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data MultipartAppendFormFileMethodInfo
instance (signature ~ (T.Text -> T.Text -> T.Text -> Soup.Buffer.Buffer -> m ()), MonadIO m) => O.MethodInfo MultipartAppendFormFileMethodInfo Multipart signature where
overloadedMethod = 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 :: Multipart -> Text -> Text -> m ()
multipartAppendFormString multipart :: Multipart
multipart controlName :: Text
controlName data_ :: Text
data_ = IO () -> m ()
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 (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data MultipartAppendFormStringMethodInfo
instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m) => O.MethodInfo MultipartAppendFormStringMethodInfo Multipart signature where
overloadedMethod = multipartAppendFormString
#endif
foreign import ccall "soup_multipart_append_part" soup_multipart_append_part ::
Ptr Multipart ->
Ptr Soup.MessageHeaders.MessageHeaders ->
Ptr Soup.Buffer.Buffer ->
IO ()
multipartAppendPart ::
(B.CallStack.HasCallStack, MonadIO m) =>
Multipart
-> Soup.MessageHeaders.MessageHeaders
-> Soup.Buffer.Buffer
-> m ()
multipartAppendPart :: Multipart -> MessageHeaders -> Buffer -> m ()
multipartAppendPart multipart :: Multipart
multipart headers :: MessageHeaders
headers body :: Buffer
body = IO () -> m ()
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 Buffer
body' <- Buffer -> IO (Ptr Buffer)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Buffer
body
Ptr Multipart -> Ptr MessageHeaders -> Ptr Buffer -> IO ()
soup_multipart_append_part Ptr Multipart
multipart' Ptr MessageHeaders
headers' Ptr Buffer
body'
Multipart -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Multipart
multipart
MessageHeaders -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MessageHeaders
headers
Buffer -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Buffer
body
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data MultipartAppendPartMethodInfo
instance (signature ~ (Soup.MessageHeaders.MessageHeaders -> Soup.Buffer.Buffer -> m ()), MonadIO m) => O.MethodInfo MultipartAppendPartMethodInfo Multipart signature where
overloadedMethod = multipartAppendPart
#endif
foreign import ccall "soup_multipart_free" soup_multipart_free ::
Ptr Multipart ->
IO ()
multipartFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
Multipart
-> m ()
multipartFree :: Multipart -> m ()
multipartFree multipart :: Multipart
multipart = IO () -> m ()
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 (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data MultipartFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo MultipartFreeMethodInfo Multipart signature where
overloadedMethod = 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 :: Multipart -> m Int32
multipartGetLength multipart :: Multipart
multipart = IO Int32 -> m Int32
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 (m :: * -> *) a. Monad m => a -> m a
return Int32
result
#if defined(ENABLE_OVERLOADING)
data MultipartGetLengthMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo MultipartGetLengthMethodInfo Multipart signature where
overloadedMethod = multipartGetLength
#endif
foreign import ccall "soup_multipart_get_part" soup_multipart_get_part ::
Ptr Multipart ->
Int32 ->
Ptr (Ptr Soup.MessageHeaders.MessageHeaders) ->
Ptr (Ptr Soup.Buffer.Buffer) ->
IO CInt
multipartGetPart ::
(B.CallStack.HasCallStack, MonadIO m) =>
Multipart
-> Int32
-> m ((Bool, Soup.MessageHeaders.MessageHeaders, Soup.Buffer.Buffer))
multipartGetPart :: Multipart -> Int32 -> m (Bool, MessageHeaders, Buffer)
multipartGetPart multipart :: Multipart
multipart part :: Int32
part = IO (Bool, MessageHeaders, Buffer)
-> m (Bool, MessageHeaders, Buffer)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, MessageHeaders, Buffer)
-> m (Bool, MessageHeaders, Buffer))
-> IO (Bool, MessageHeaders, Buffer)
-> m (Bool, MessageHeaders, Buffer)
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)
allocMem :: IO (Ptr (Ptr Soup.MessageHeaders.MessageHeaders))
Ptr (Ptr Buffer)
body <- IO (Ptr (Ptr Buffer))
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr (Ptr Soup.Buffer.Buffer))
CInt
result <- Ptr Multipart
-> Int32 -> Ptr (Ptr MessageHeaders) -> Ptr (Ptr Buffer) -> IO CInt
soup_multipart_get_part Ptr Multipart
multipart' Int32
part Ptr (Ptr MessageHeaders)
headers Ptr (Ptr Buffer)
body
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 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, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr MessageHeaders -> MessageHeaders
Soup.MessageHeaders.MessageHeaders) Ptr MessageHeaders
headers'
Ptr Buffer
body' <- Ptr (Ptr Buffer) -> IO (Ptr Buffer)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr Buffer)
body
Buffer
body'' <- ((ManagedPtr Buffer -> Buffer) -> Ptr Buffer -> IO Buffer
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr Buffer -> Buffer
Soup.Buffer.Buffer) Ptr Buffer
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 Buffer) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr Buffer)
body
(Bool, MessageHeaders, Buffer) -> IO (Bool, MessageHeaders, Buffer)
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', MessageHeaders
headers'', Buffer
body'')
#if defined(ENABLE_OVERLOADING)
data MultipartGetPartMethodInfo
instance (signature ~ (Int32 -> m ((Bool, Soup.MessageHeaders.MessageHeaders, Soup.Buffer.Buffer))), MonadIO m) => O.MethodInfo MultipartGetPartMethodInfo Multipart signature where
overloadedMethod = multipartGetPart
#endif
foreign import ccall "soup_multipart_to_message" soup_multipart_to_message ::
Ptr Multipart ->
Ptr Soup.MessageHeaders.MessageHeaders ->
Ptr Soup.MessageBody.MessageBody ->
IO ()
multipartToMessage ::
(B.CallStack.HasCallStack, MonadIO m) =>
Multipart
-> Soup.MessageHeaders.MessageHeaders
-> Soup.MessageBody.MessageBody
-> m ()
multipartToMessage :: Multipart -> MessageHeaders -> MessageBody -> m ()
multipartToMessage multipart :: Multipart
multipart destHeaders :: MessageHeaders
destHeaders destBody :: MessageBody
destBody = IO () -> m ()
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
destHeaders' <- MessageHeaders -> IO (Ptr MessageHeaders)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MessageHeaders
destHeaders
Ptr MessageBody
destBody' <- MessageBody -> IO (Ptr MessageBody)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MessageBody
destBody
Ptr Multipart -> Ptr MessageHeaders -> Ptr MessageBody -> IO ()
soup_multipart_to_message Ptr Multipart
multipart' Ptr MessageHeaders
destHeaders' Ptr MessageBody
destBody'
Multipart -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Multipart
multipart
MessageHeaders -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MessageHeaders
destHeaders
MessageBody -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MessageBody
destBody
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data MultipartToMessageMethodInfo
instance (signature ~ (Soup.MessageHeaders.MessageHeaders -> Soup.MessageBody.MessageBody -> m ()), MonadIO m) => O.MethodInfo MultipartToMessageMethodInfo Multipart signature where
overloadedMethod = multipartToMessage
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveMultipartMethod (t :: Symbol) (o :: *) :: * 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.MethodInfo 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
#endif