gi-soup-0.2.52.13: GI/Soup/Structs/URI.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
A #SoupURI represents a (parsed) URI. #SoupURI supports RFC 3986
(URI Generic Syntax), and can parse any valid URI. However, libsoup
only uses "http" and "https" URIs internally; You can use
SOUP_URI_VALID_FOR_HTTP() to test if a #SoupURI is a valid HTTP
URI.
@scheme will always be set in any URI. It is an interned string and
is always all lowercase. (If you parse a URI with a non-lowercase
scheme, it will be converted to lowercase.) The macros
%SOUP_URI_SCHEME_HTTP and %SOUP_URI_SCHEME_HTTPS provide the
interned values for "http" and "https" and can be compared against
URI @scheme values.
@user and @password are parsed as defined in the older URI specs
(ie, separated by a colon; RFC 3986 only talks about a single
"userinfo" field). Note that @password is not included in the
output of soup_uri_to_string(). libsoup does not normally use these
fields; authentication is handled via #SoupSession signals.
@host contains the hostname, and @port the port specified in the
URI. If the URI doesn't contain a hostname, @host will be %NULL,
and if it doesn't specify a port, @port may be 0. However, for
"http" and "https" URIs, @host is guaranteed to be non-%NULL
(trying to parse an http URI with no @host will return %NULL), and
@port will always be non-0 (because libsoup knows the default value
to use when it is not specified in the URI).
@path is always non-%NULL. For http/https URIs, @path will never be
an empty string either; if the input URI has no path, the parsed
#SoupURI will have a @path of "/".
@query and @fragment are optional for all URI types.
soup_form_decode() may be useful for parsing @query.
Note that @path, @query, and @fragment may contain
%<!-- -->-encoded characters. soup_uri_new() calls
soup_uri_normalize() on them, but not soup_uri_decode(). This is
necessary to ensure that soup_uri_to_string() will generate a URI
that has exactly the same meaning as the original. (In theory,
#SoupURI should leave @user, @password, and @host partially-encoded
as well, but this would be more annoying than useful.)
-}
module GI.Soup.Structs.URI
(
-- * Exported types
URI(..) ,
newZeroURI ,
noURI ,
-- * Methods
-- ** uRICopy
URICopyMethodInfo ,
uRICopy ,
-- ** uRICopyHost
URICopyHostMethodInfo ,
uRICopyHost ,
-- ** uRIDecode
uRIDecode ,
-- ** uRIEncode
uRIEncode ,
-- ** uRIEqual
URIEqualMethodInfo ,
uRIEqual ,
-- ** uRIFree
URIFreeMethodInfo ,
uRIFree ,
-- ** uRIGetFragment
URIGetFragmentMethodInfo ,
uRIGetFragment ,
-- ** uRIGetHost
URIGetHostMethodInfo ,
uRIGetHost ,
-- ** uRIGetPassword
URIGetPasswordMethodInfo ,
uRIGetPassword ,
-- ** uRIGetPath
URIGetPathMethodInfo ,
uRIGetPath ,
-- ** uRIGetPort
URIGetPortMethodInfo ,
uRIGetPort ,
-- ** uRIGetQuery
URIGetQueryMethodInfo ,
uRIGetQuery ,
-- ** uRIGetScheme
URIGetSchemeMethodInfo ,
uRIGetScheme ,
-- ** uRIGetUser
URIGetUserMethodInfo ,
uRIGetUser ,
-- ** uRIHostEqual
URIHostEqualMethodInfo ,
uRIHostEqual ,
-- ** uRIHostHash
URIHostHashMethodInfo ,
uRIHostHash ,
-- ** uRINew
uRINew ,
-- ** uRINewWithBase
URINewWithBaseMethodInfo ,
uRINewWithBase ,
-- ** uRINormalize
uRINormalize ,
-- ** uRISetFragment
URISetFragmentMethodInfo ,
uRISetFragment ,
-- ** uRISetHost
URISetHostMethodInfo ,
uRISetHost ,
-- ** uRISetPassword
URISetPasswordMethodInfo ,
uRISetPassword ,
-- ** uRISetPath
URISetPathMethodInfo ,
uRISetPath ,
-- ** uRISetPort
URISetPortMethodInfo ,
uRISetPort ,
-- ** uRISetQuery
URISetQueryMethodInfo ,
uRISetQuery ,
-- ** uRISetQueryFromForm
URISetQueryFromFormMethodInfo ,
uRISetQueryFromForm ,
-- ** uRISetScheme
URISetSchemeMethodInfo ,
uRISetScheme ,
-- ** uRISetUser
URISetUserMethodInfo ,
uRISetUser ,
-- ** uRIToString
URIToStringMethodInfo ,
uRIToString ,
-- ** uRIUsesDefaultPort
URIUsesDefaultPortMethodInfo ,
uRIUsesDefaultPort ,
-- * Properties
-- ** Fragment
uRIReadFragment ,
-- ** Host
uRIReadHost ,
-- ** Password
uRIReadPassword ,
-- ** Path
uRIReadPath ,
-- ** Port
uRIReadPort ,
-- ** Query
uRIReadQuery ,
-- ** Scheme
uRIReadScheme ,
-- ** User
uRIReadUser ,
) where
import Prelude ()
import Data.GI.Base.ShortPrelude
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.Soup.Types
import GI.Soup.Callbacks
newtype URI = URI (ForeignPtr URI)
foreign import ccall "soup_uri_get_type" c_soup_uri_get_type ::
IO GType
instance BoxedObject URI where
boxedType _ = c_soup_uri_get_type
-- | Construct a `URI` struct initialized to zero.
newZeroURI :: MonadIO m => m URI
newZeroURI = liftIO $ callocBoxedBytes 64 >>= wrapBoxed URI
noURI :: Maybe URI
noURI = Nothing
uRIReadScheme :: URI -> IO T.Text
uRIReadScheme s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CString
val' <- cstringToText val
return val'
uRIReadUser :: URI -> IO T.Text
uRIReadUser s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO CString
val' <- cstringToText val
return val'
uRIReadPassword :: URI -> IO T.Text
uRIReadPassword s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO CString
val' <- cstringToText val
return val'
uRIReadHost :: URI -> IO T.Text
uRIReadHost s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 24) :: IO CString
val' <- cstringToText val
return val'
uRIReadPort :: URI -> IO Word32
uRIReadPort s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 32) :: IO Word32
return val
uRIReadPath :: URI -> IO T.Text
uRIReadPath s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 40) :: IO CString
val' <- cstringToText val
return val'
uRIReadQuery :: URI -> IO T.Text
uRIReadQuery s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 48) :: IO CString
val' <- cstringToText val
return val'
uRIReadFragment :: URI -> IO T.Text
uRIReadFragment s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 56) :: IO CString
val' <- cstringToText val
return val'
-- method URI::new
-- method type : Constructor
-- Args : [Arg {argCName = "uri_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Soup" "URI"
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_new" soup_uri_new ::
CString -> -- uri_string : TBasicType TUTF8
IO (Ptr URI)
uRINew ::
(MonadIO m) =>
Maybe (T.Text) -- uriString
-> m URI -- result
uRINew uriString = liftIO $ do
maybeUriString <- case uriString of
Nothing -> return nullPtr
Just jUriString -> do
jUriString' <- textToCString jUriString
return jUriString'
result <- soup_uri_new maybeUriString
checkUnexpectedReturnNULL "soup_uri_new" result
result' <- (wrapBoxed URI) result
freeMem maybeUriString
return result'
-- method URI::copy
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Soup" "URI"
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_copy" soup_uri_copy ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
IO (Ptr URI)
uRICopy ::
(MonadIO m) =>
URI -- _obj
-> m URI -- result
uRICopy _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- soup_uri_copy _obj'
checkUnexpectedReturnNULL "soup_uri_copy" result
result' <- (wrapBoxed URI) result
touchManagedPtr _obj
return result'
data URICopyMethodInfo
instance (signature ~ (m URI), MonadIO m) => MethodInfo URICopyMethodInfo URI signature where
overloadedMethod _ = uRICopy
-- method URI::copy_host
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Soup" "URI"
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_copy_host" soup_uri_copy_host ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
IO (Ptr URI)
uRICopyHost ::
(MonadIO m) =>
URI -- _obj
-> m URI -- result
uRICopyHost _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- soup_uri_copy_host _obj'
checkUnexpectedReturnNULL "soup_uri_copy_host" result
result' <- (wrapBoxed URI) result
touchManagedPtr _obj
return result'
data URICopyHostMethodInfo
instance (signature ~ (m URI), MonadIO m) => MethodInfo URICopyHostMethodInfo URI signature where
overloadedMethod _ = uRICopyHost
-- method URI::equal
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri2", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_equal" soup_uri_equal ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
Ptr URI -> -- uri2 : TInterface "Soup" "URI"
IO CInt
uRIEqual ::
(MonadIO m) =>
URI -- _obj
-> URI -- uri2
-> m Bool -- result
uRIEqual _obj uri2 = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
let uri2' = unsafeManagedPtrGetPtr uri2
result <- soup_uri_equal _obj' uri2'
let result' = (/= 0) result
touchManagedPtr _obj
touchManagedPtr uri2
return result'
data URIEqualMethodInfo
instance (signature ~ (URI -> m Bool), MonadIO m) => MethodInfo URIEqualMethodInfo URI signature where
overloadedMethod _ = uRIEqual
-- method URI::free
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_free" soup_uri_free ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
IO ()
uRIFree ::
(MonadIO m) =>
URI -- _obj
-> m () -- result
uRIFree _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
soup_uri_free _obj'
touchManagedPtr _obj
return ()
data URIFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => MethodInfo URIFreeMethodInfo URI signature where
overloadedMethod _ = uRIFree
-- method URI::get_fragment
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_get_fragment" soup_uri_get_fragment ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
IO CString
uRIGetFragment ::
(MonadIO m) =>
URI -- _obj
-> m T.Text -- result
uRIGetFragment _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- soup_uri_get_fragment _obj'
checkUnexpectedReturnNULL "soup_uri_get_fragment" result
result' <- cstringToText result
touchManagedPtr _obj
return result'
data URIGetFragmentMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => MethodInfo URIGetFragmentMethodInfo URI signature where
overloadedMethod _ = uRIGetFragment
-- method URI::get_host
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_get_host" soup_uri_get_host ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
IO CString
uRIGetHost ::
(MonadIO m) =>
URI -- _obj
-> m T.Text -- result
uRIGetHost _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- soup_uri_get_host _obj'
checkUnexpectedReturnNULL "soup_uri_get_host" result
result' <- cstringToText result
touchManagedPtr _obj
return result'
data URIGetHostMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => MethodInfo URIGetHostMethodInfo URI signature where
overloadedMethod _ = uRIGetHost
-- method URI::get_password
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_get_password" soup_uri_get_password ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
IO CString
uRIGetPassword ::
(MonadIO m) =>
URI -- _obj
-> m T.Text -- result
uRIGetPassword _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- soup_uri_get_password _obj'
checkUnexpectedReturnNULL "soup_uri_get_password" result
result' <- cstringToText result
touchManagedPtr _obj
return result'
data URIGetPasswordMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => MethodInfo URIGetPasswordMethodInfo URI signature where
overloadedMethod _ = uRIGetPassword
-- method URI::get_path
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_get_path" soup_uri_get_path ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
IO CString
uRIGetPath ::
(MonadIO m) =>
URI -- _obj
-> m T.Text -- result
uRIGetPath _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- soup_uri_get_path _obj'
checkUnexpectedReturnNULL "soup_uri_get_path" result
result' <- cstringToText result
touchManagedPtr _obj
return result'
data URIGetPathMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => MethodInfo URIGetPathMethodInfo URI signature where
overloadedMethod _ = uRIGetPath
-- method URI::get_port
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUInt32
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_get_port" soup_uri_get_port ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
IO Word32
uRIGetPort ::
(MonadIO m) =>
URI -- _obj
-> m Word32 -- result
uRIGetPort _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- soup_uri_get_port _obj'
touchManagedPtr _obj
return result
data URIGetPortMethodInfo
instance (signature ~ (m Word32), MonadIO m) => MethodInfo URIGetPortMethodInfo URI signature where
overloadedMethod _ = uRIGetPort
-- method URI::get_query
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_get_query" soup_uri_get_query ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
IO CString
uRIGetQuery ::
(MonadIO m) =>
URI -- _obj
-> m T.Text -- result
uRIGetQuery _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- soup_uri_get_query _obj'
checkUnexpectedReturnNULL "soup_uri_get_query" result
result' <- cstringToText result
touchManagedPtr _obj
return result'
data URIGetQueryMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => MethodInfo URIGetQueryMethodInfo URI signature where
overloadedMethod _ = uRIGetQuery
-- method URI::get_scheme
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_get_scheme" soup_uri_get_scheme ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
IO CString
uRIGetScheme ::
(MonadIO m) =>
URI -- _obj
-> m T.Text -- result
uRIGetScheme _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- soup_uri_get_scheme _obj'
checkUnexpectedReturnNULL "soup_uri_get_scheme" result
result' <- cstringToText result
touchManagedPtr _obj
return result'
data URIGetSchemeMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => MethodInfo URIGetSchemeMethodInfo URI signature where
overloadedMethod _ = uRIGetScheme
-- method URI::get_user
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_get_user" soup_uri_get_user ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
IO CString
uRIGetUser ::
(MonadIO m) =>
URI -- _obj
-> m T.Text -- result
uRIGetUser _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- soup_uri_get_user _obj'
checkUnexpectedReturnNULL "soup_uri_get_user" result
result' <- cstringToText result
touchManagedPtr _obj
return result'
data URIGetUserMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => MethodInfo URIGetUserMethodInfo URI signature where
overloadedMethod _ = uRIGetUser
-- method URI::host_equal
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "v2", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_host_equal" soup_uri_host_equal ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
Ptr URI -> -- v2 : TInterface "Soup" "URI"
IO CInt
uRIHostEqual ::
(MonadIO m) =>
URI -- _obj
-> URI -- v2
-> m Bool -- result
uRIHostEqual _obj v2 = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
let v2' = unsafeManagedPtrGetPtr v2
result <- soup_uri_host_equal _obj' v2'
let result' = (/= 0) result
touchManagedPtr _obj
touchManagedPtr v2
return result'
data URIHostEqualMethodInfo
instance (signature ~ (URI -> m Bool), MonadIO m) => MethodInfo URIHostEqualMethodInfo URI signature where
overloadedMethod _ = uRIHostEqual
-- method URI::host_hash
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUInt32
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_host_hash" soup_uri_host_hash ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
IO Word32
uRIHostHash ::
(MonadIO m) =>
URI -- _obj
-> m Word32 -- result
uRIHostHash _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- soup_uri_host_hash _obj'
touchManagedPtr _obj
return result
data URIHostHashMethodInfo
instance (signature ~ (m Word32), MonadIO m) => MethodInfo URIHostHashMethodInfo URI signature where
overloadedMethod _ = uRIHostHash
-- method URI::new_with_base
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Soup" "URI"
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_new_with_base" soup_uri_new_with_base ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
CString -> -- uri_string : TBasicType TUTF8
IO (Ptr URI)
uRINewWithBase ::
(MonadIO m) =>
URI -- _obj
-> T.Text -- uriString
-> m URI -- result
uRINewWithBase _obj uriString = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
uriString' <- textToCString uriString
result <- soup_uri_new_with_base _obj' uriString'
checkUnexpectedReturnNULL "soup_uri_new_with_base" result
result' <- (wrapBoxed URI) result
touchManagedPtr _obj
freeMem uriString'
return result'
data URINewWithBaseMethodInfo
instance (signature ~ (T.Text -> m URI), MonadIO m) => MethodInfo URINewWithBaseMethodInfo URI signature where
overloadedMethod _ = uRINewWithBase
-- method URI::set_fragment
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fragment", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_set_fragment" soup_uri_set_fragment ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
CString -> -- fragment : TBasicType TUTF8
IO ()
uRISetFragment ::
(MonadIO m) =>
URI -- _obj
-> Maybe (T.Text) -- fragment
-> m () -- result
uRISetFragment _obj fragment = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
maybeFragment <- case fragment of
Nothing -> return nullPtr
Just jFragment -> do
jFragment' <- textToCString jFragment
return jFragment'
soup_uri_set_fragment _obj' maybeFragment
touchManagedPtr _obj
freeMem maybeFragment
return ()
data URISetFragmentMethodInfo
instance (signature ~ (Maybe (T.Text) -> m ()), MonadIO m) => MethodInfo URISetFragmentMethodInfo URI signature where
overloadedMethod _ = uRISetFragment
-- method URI::set_host
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "host", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_set_host" soup_uri_set_host ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
CString -> -- host : TBasicType TUTF8
IO ()
uRISetHost ::
(MonadIO m) =>
URI -- _obj
-> Maybe (T.Text) -- host
-> m () -- result
uRISetHost _obj host = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
maybeHost <- case host of
Nothing -> return nullPtr
Just jHost -> do
jHost' <- textToCString jHost
return jHost'
soup_uri_set_host _obj' maybeHost
touchManagedPtr _obj
freeMem maybeHost
return ()
data URISetHostMethodInfo
instance (signature ~ (Maybe (T.Text) -> m ()), MonadIO m) => MethodInfo URISetHostMethodInfo URI signature where
overloadedMethod _ = uRISetHost
-- method URI::set_password
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "password", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_set_password" soup_uri_set_password ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
CString -> -- password : TBasicType TUTF8
IO ()
uRISetPassword ::
(MonadIO m) =>
URI -- _obj
-> Maybe (T.Text) -- password
-> m () -- result
uRISetPassword _obj password = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
maybePassword <- case password of
Nothing -> return nullPtr
Just jPassword -> do
jPassword' <- textToCString jPassword
return jPassword'
soup_uri_set_password _obj' maybePassword
touchManagedPtr _obj
freeMem maybePassword
return ()
data URISetPasswordMethodInfo
instance (signature ~ (Maybe (T.Text) -> m ()), MonadIO m) => MethodInfo URISetPasswordMethodInfo URI signature where
overloadedMethod _ = uRISetPassword
-- method URI::set_path
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_set_path" soup_uri_set_path ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
CString -> -- path : TBasicType TUTF8
IO ()
uRISetPath ::
(MonadIO m) =>
URI -- _obj
-> T.Text -- path
-> m () -- result
uRISetPath _obj path = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
path' <- textToCString path
soup_uri_set_path _obj' path'
touchManagedPtr _obj
freeMem path'
return ()
data URISetPathMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m) => MethodInfo URISetPathMethodInfo URI signature where
overloadedMethod _ = uRISetPath
-- method URI::set_port
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "port", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_set_port" soup_uri_set_port ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
Word32 -> -- port : TBasicType TUInt32
IO ()
uRISetPort ::
(MonadIO m) =>
URI -- _obj
-> Word32 -- port
-> m () -- result
uRISetPort _obj port = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
soup_uri_set_port _obj' port
touchManagedPtr _obj
return ()
data URISetPortMethodInfo
instance (signature ~ (Word32 -> m ()), MonadIO m) => MethodInfo URISetPortMethodInfo URI signature where
overloadedMethod _ = uRISetPort
-- method URI::set_query
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "query", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_set_query" soup_uri_set_query ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
CString -> -- query : TBasicType TUTF8
IO ()
uRISetQuery ::
(MonadIO m) =>
URI -- _obj
-> Maybe (T.Text) -- query
-> m () -- result
uRISetQuery _obj query = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
maybeQuery <- case query of
Nothing -> return nullPtr
Just jQuery -> do
jQuery' <- textToCString jQuery
return jQuery'
soup_uri_set_query _obj' maybeQuery
touchManagedPtr _obj
freeMem maybeQuery
return ()
data URISetQueryMethodInfo
instance (signature ~ (Maybe (T.Text) -> m ()), MonadIO m) => MethodInfo URISetQueryMethodInfo URI signature where
overloadedMethod _ = uRISetQuery
-- method URI::set_query_from_form
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "form", argType = TGHash (TBasicType TUTF8) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_set_query_from_form" soup_uri_set_query_from_form ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
Ptr (GHashTable CString CString) -> -- form : TGHash (TBasicType TUTF8) (TBasicType TUTF8)
IO ()
uRISetQueryFromForm ::
(MonadIO m) =>
URI -- _obj
-> Map.Map T.Text T.Text -- form
-> m () -- result
uRISetQueryFromForm _obj form = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
let form' = Map.toList form
form'' <- mapFirstA textToCString form'
form''' <- mapSecondA textToCString form''
let form'''' = mapFirst cstringPackPtr form'''
let form''''' = mapSecond cstringPackPtr form''''
form'''''' <- packGHashTable gStrHash gStrEqual (Just ptr_to_g_free) (Just ptr_to_g_free) form'''''
soup_uri_set_query_from_form _obj' form''''''
touchManagedPtr _obj
unrefGHashTable form''''''
return ()
data URISetQueryFromFormMethodInfo
instance (signature ~ (Map.Map T.Text T.Text -> m ()), MonadIO m) => MethodInfo URISetQueryFromFormMethodInfo URI signature where
overloadedMethod _ = uRISetQueryFromForm
-- method URI::set_scheme
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scheme", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_set_scheme" soup_uri_set_scheme ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
CString -> -- scheme : TBasicType TUTF8
IO ()
uRISetScheme ::
(MonadIO m) =>
URI -- _obj
-> T.Text -- scheme
-> m () -- result
uRISetScheme _obj scheme = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
scheme' <- textToCString scheme
soup_uri_set_scheme _obj' scheme'
touchManagedPtr _obj
freeMem scheme'
return ()
data URISetSchemeMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m) => MethodInfo URISetSchemeMethodInfo URI signature where
overloadedMethod _ = uRISetScheme
-- method URI::set_user
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_set_user" soup_uri_set_user ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
CString -> -- user : TBasicType TUTF8
IO ()
uRISetUser ::
(MonadIO m) =>
URI -- _obj
-> Maybe (T.Text) -- user
-> m () -- result
uRISetUser _obj user = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
maybeUser <- case user of
Nothing -> return nullPtr
Just jUser -> do
jUser' <- textToCString jUser
return jUser'
soup_uri_set_user _obj' maybeUser
touchManagedPtr _obj
freeMem maybeUser
return ()
data URISetUserMethodInfo
instance (signature ~ (Maybe (T.Text) -> m ()), MonadIO m) => MethodInfo URISetUserMethodInfo URI signature where
overloadedMethod _ = uRISetUser
-- method URI::to_string
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "just_path_and_query", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_to_string" soup_uri_to_string ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
CInt -> -- just_path_and_query : TBasicType TBoolean
IO CString
uRIToString ::
(MonadIO m) =>
URI -- _obj
-> Bool -- justPathAndQuery
-> m T.Text -- result
uRIToString _obj justPathAndQuery = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
let justPathAndQuery' = (fromIntegral . fromEnum) justPathAndQuery
result <- soup_uri_to_string _obj' justPathAndQuery'
checkUnexpectedReturnNULL "soup_uri_to_string" result
result' <- cstringToText result
freeMem result
touchManagedPtr _obj
return result'
data URIToStringMethodInfo
instance (signature ~ (Bool -> m T.Text), MonadIO m) => MethodInfo URIToStringMethodInfo URI signature where
overloadedMethod _ = uRIToString
-- method URI::uses_default_port
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_uses_default_port" soup_uri_uses_default_port ::
Ptr URI -> -- _obj : TInterface "Soup" "URI"
IO CInt
uRIUsesDefaultPort ::
(MonadIO m) =>
URI -- _obj
-> m Bool -- result
uRIUsesDefaultPort _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- soup_uri_uses_default_port _obj'
let result' = (/= 0) result
touchManagedPtr _obj
return result'
data URIUsesDefaultPortMethodInfo
instance (signature ~ (m Bool), MonadIO m) => MethodInfo URIUsesDefaultPortMethodInfo URI signature where
overloadedMethod _ = uRIUsesDefaultPort
-- method URI::decode
-- method type : MemberFunction
-- Args : [Arg {argCName = "part", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_decode" soup_uri_decode ::
CString -> -- part : TBasicType TUTF8
IO CString
uRIDecode ::
(MonadIO m) =>
T.Text -- part
-> m T.Text -- result
uRIDecode part = liftIO $ do
part' <- textToCString part
result <- soup_uri_decode part'
checkUnexpectedReturnNULL "soup_uri_decode" result
result' <- cstringToText result
freeMem result
freeMem part'
return result'
-- method URI::encode
-- method type : MemberFunction
-- Args : [Arg {argCName = "part", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "escape_extra", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_encode" soup_uri_encode ::
CString -> -- part : TBasicType TUTF8
CString -> -- escape_extra : TBasicType TUTF8
IO CString
uRIEncode ::
(MonadIO m) =>
T.Text -- part
-> Maybe (T.Text) -- escapeExtra
-> m T.Text -- result
uRIEncode part escapeExtra = liftIO $ do
part' <- textToCString part
maybeEscapeExtra <- case escapeExtra of
Nothing -> return nullPtr
Just jEscapeExtra -> do
jEscapeExtra' <- textToCString jEscapeExtra
return jEscapeExtra'
result <- soup_uri_encode part' maybeEscapeExtra
checkUnexpectedReturnNULL "soup_uri_encode" result
result' <- cstringToText result
freeMem result
freeMem part'
freeMem maybeEscapeExtra
return result'
-- method URI::normalize
-- method type : MemberFunction
-- Args : [Arg {argCName = "part", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "unescape_extra", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "soup_uri_normalize" soup_uri_normalize ::
CString -> -- part : TBasicType TUTF8
CString -> -- unescape_extra : TBasicType TUTF8
IO CString
uRINormalize ::
(MonadIO m) =>
T.Text -- part
-> Maybe (T.Text) -- unescapeExtra
-> m T.Text -- result
uRINormalize part unescapeExtra = liftIO $ do
part' <- textToCString part
maybeUnescapeExtra <- case unescapeExtra of
Nothing -> return nullPtr
Just jUnescapeExtra -> do
jUnescapeExtra' <- textToCString jUnescapeExtra
return jUnescapeExtra'
result <- soup_uri_normalize part' maybeUnescapeExtra
checkUnexpectedReturnNULL "soup_uri_normalize" result
result' <- cstringToText result
freeMem result
freeMem part'
freeMem maybeUnescapeExtra
return result'
type family ResolveURIMethod (t :: Symbol) (o :: *) :: * where
ResolveURIMethod "copy" o = URICopyMethodInfo
ResolveURIMethod "copyHost" o = URICopyHostMethodInfo
ResolveURIMethod "equal" o = URIEqualMethodInfo
ResolveURIMethod "free" o = URIFreeMethodInfo
ResolveURIMethod "hostEqual" o = URIHostEqualMethodInfo
ResolveURIMethod "hostHash" o = URIHostHashMethodInfo
ResolveURIMethod "newWithBase" o = URINewWithBaseMethodInfo
ResolveURIMethod "toString" o = URIToStringMethodInfo
ResolveURIMethod "usesDefaultPort" o = URIUsesDefaultPortMethodInfo
ResolveURIMethod "getFragment" o = URIGetFragmentMethodInfo
ResolveURIMethod "getHost" o = URIGetHostMethodInfo
ResolveURIMethod "getPassword" o = URIGetPasswordMethodInfo
ResolveURIMethod "getPath" o = URIGetPathMethodInfo
ResolveURIMethod "getPort" o = URIGetPortMethodInfo
ResolveURIMethod "getQuery" o = URIGetQueryMethodInfo
ResolveURIMethod "getScheme" o = URIGetSchemeMethodInfo
ResolveURIMethod "getUser" o = URIGetUserMethodInfo
ResolveURIMethod "setFragment" o = URISetFragmentMethodInfo
ResolveURIMethod "setHost" o = URISetHostMethodInfo
ResolveURIMethod "setPassword" o = URISetPasswordMethodInfo
ResolveURIMethod "setPath" o = URISetPathMethodInfo
ResolveURIMethod "setPort" o = URISetPortMethodInfo
ResolveURIMethod "setQuery" o = URISetQueryMethodInfo
ResolveURIMethod "setQueryFromForm" o = URISetQueryFromFormMethodInfo
ResolveURIMethod "setScheme" o = URISetSchemeMethodInfo
ResolveURIMethod "setUser" o = URISetUserMethodInfo
ResolveURIMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveURIMethod t URI, MethodInfo info URI p) => IsLabelProxy t (URI -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveURIMethod t URI, MethodInfo info URI p) => IsLabel t (URI -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif