#define ENABLE_OVERLOADING \
(!defined(__HADDOCK_VERSION__))
module GI.GLib.Structs.String
(
String(..) ,
newZeroString ,
noString ,
#if ENABLE_OVERLOADING
StringAppendMethodInfo ,
#endif
stringAppend ,
#if ENABLE_OVERLOADING
StringAppendCMethodInfo ,
#endif
stringAppendC ,
#if ENABLE_OVERLOADING
StringAppendLenMethodInfo ,
#endif
stringAppendLen ,
#if ENABLE_OVERLOADING
StringAppendUnicharMethodInfo ,
#endif
stringAppendUnichar ,
#if ENABLE_OVERLOADING
StringAppendUriEscapedMethodInfo ,
#endif
stringAppendUriEscaped ,
#if ENABLE_OVERLOADING
StringAsciiDownMethodInfo ,
#endif
stringAsciiDown ,
#if ENABLE_OVERLOADING
StringAsciiUpMethodInfo ,
#endif
stringAsciiUp ,
#if ENABLE_OVERLOADING
StringAssignMethodInfo ,
#endif
stringAssign ,
#if ENABLE_OVERLOADING
StringDownMethodInfo ,
#endif
stringDown ,
#if ENABLE_OVERLOADING
StringEqualMethodInfo ,
#endif
stringEqual ,
#if ENABLE_OVERLOADING
StringEraseMethodInfo ,
#endif
stringErase ,
#if ENABLE_OVERLOADING
StringFreeMethodInfo ,
#endif
stringFree ,
#if ENABLE_OVERLOADING
StringFreeToBytesMethodInfo ,
#endif
stringFreeToBytes ,
#if ENABLE_OVERLOADING
StringHashMethodInfo ,
#endif
stringHash ,
#if ENABLE_OVERLOADING
StringInsertMethodInfo ,
#endif
stringInsert ,
#if ENABLE_OVERLOADING
StringInsertCMethodInfo ,
#endif
stringInsertC ,
#if ENABLE_OVERLOADING
StringInsertLenMethodInfo ,
#endif
stringInsertLen ,
#if ENABLE_OVERLOADING
StringInsertUnicharMethodInfo ,
#endif
stringInsertUnichar ,
#if ENABLE_OVERLOADING
StringOverwriteMethodInfo ,
#endif
stringOverwrite ,
#if ENABLE_OVERLOADING
StringOverwriteLenMethodInfo ,
#endif
stringOverwriteLen ,
#if ENABLE_OVERLOADING
StringPrependMethodInfo ,
#endif
stringPrepend ,
#if ENABLE_OVERLOADING
StringPrependCMethodInfo ,
#endif
stringPrependC ,
#if ENABLE_OVERLOADING
StringPrependLenMethodInfo ,
#endif
stringPrependLen ,
#if ENABLE_OVERLOADING
StringPrependUnicharMethodInfo ,
#endif
stringPrependUnichar ,
#if ENABLE_OVERLOADING
StringSetSizeMethodInfo ,
#endif
stringSetSize ,
#if ENABLE_OVERLOADING
StringTruncateMethodInfo ,
#endif
stringTruncate ,
#if ENABLE_OVERLOADING
StringUpMethodInfo ,
#endif
stringUp ,
getStringAllocatedLen ,
setStringAllocatedLen ,
#if ENABLE_OVERLOADING
string_allocatedLen ,
#endif
getStringLen ,
setStringLen ,
#if ENABLE_OVERLOADING
string_len ,
#endif
clearStringStr ,
getStringStr ,
setStringStr ,
#if ENABLE_OVERLOADING
string_str ,
#endif
) 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.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.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import {-# SOURCE #-} qualified GI.GLib.Structs.Bytes as GLib.Bytes
newtype String = String (ManagedPtr String)
foreign import ccall "g_gstring_get_type" c_g_gstring_get_type ::
IO GType
instance BoxedObject String where
boxedType :: String -> IO GType
boxedType _ = IO GType
c_g_gstring_get_type
newZeroString :: MonadIO m => m String
newZeroString :: m String
newZeroString = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ Int -> IO (Ptr String)
forall a. BoxedObject a => Int -> IO (Ptr a)
callocBoxedBytes 24 IO (Ptr String) -> (Ptr String -> IO String) -> IO String
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr String -> String
String
instance tag ~ 'AttrSet => Constructible String tag where
new :: (ManagedPtr String -> String) -> [AttrOp String tag] -> m String
new _ attrs :: [AttrOp String tag]
attrs = do
String
o <- m String
forall (m :: * -> *). MonadIO m => m String
newZeroString
String -> [AttrOp String 'AttrSet] -> m ()
forall o (m :: * -> *).
MonadIO m =>
o -> [AttrOp o 'AttrSet] -> m ()
GI.Attributes.set String
o [AttrOp String tag]
[AttrOp String 'AttrSet]
attrs
String -> m String
forall (m :: * -> *) a. Monad m => a -> m a
return String
o
noString :: Maybe String
noString :: Maybe String
noString = Maybe String
forall a. Maybe a
Nothing
getStringStr :: MonadIO m => String -> m (Maybe T.Text)
getStringStr :: String -> m (Maybe Text)
getStringStr s :: String
s = IO (Maybe Text) -> m (Maybe Text)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ String -> (Ptr String -> IO (Maybe Text)) -> IO (Maybe Text)
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr String
s ((Ptr String -> IO (Maybe Text)) -> IO (Maybe Text))
-> (Ptr String -> IO (Maybe Text)) -> IO (Maybe Text)
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr String
ptr -> do
CString
val <- Ptr CString -> IO CString
forall a. Storable a => Ptr a -> IO a
peek (Ptr String
ptr Ptr String -> Int -> Ptr CString
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0) :: IO CString
Maybe Text
result <- CString -> (CString -> IO Text) -> IO (Maybe Text)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
SP.convertIfNonNull CString
val ((CString -> IO Text) -> IO (Maybe Text))
-> (CString -> IO Text) -> IO (Maybe Text)
forall a b. (a -> b) -> a -> b
$ \val' :: CString
val' -> do
Text
val'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
val'
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
val''
Maybe Text -> IO (Maybe Text)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Text
result
setStringStr :: MonadIO m => String -> CString -> m ()
setStringStr :: String -> CString -> m ()
setStringStr s :: String
s val :: CString
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ String -> (Ptr String -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr String
s ((Ptr String -> IO ()) -> IO ()) -> (Ptr String -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr String
ptr -> do
Ptr CString -> CString -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr String
ptr Ptr String -> Int -> Ptr CString
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0) (CString
val :: CString)
clearStringStr :: MonadIO m => String -> m ()
clearStringStr :: String -> m ()
clearStringStr s :: String
s = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ String -> (Ptr String -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr String
s ((Ptr String -> IO ()) -> IO ()) -> (Ptr String -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr String
ptr -> do
Ptr CString -> CString -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr String
ptr Ptr String -> Int -> Ptr CString
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0) (CString
forall a. Ptr a
FP.nullPtr :: CString)
#if ENABLE_OVERLOADING
data StringStrFieldInfo
instance AttrInfo StringStrFieldInfo where
type AttrAllowedOps StringStrFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint StringStrFieldInfo = (~) CString
type AttrBaseTypeConstraint StringStrFieldInfo = (~) String
type AttrGetType StringStrFieldInfo = Maybe T.Text
type AttrLabel StringStrFieldInfo = "str"
type AttrOrigin StringStrFieldInfo = String
attrGet _ = getStringStr
attrSet _ = setStringStr
attrConstruct = undefined
attrClear _ = clearStringStr
string_str :: AttrLabelProxy "str"
string_str = AttrLabelProxy
#endif
getStringLen :: MonadIO m => String -> m Word64
getStringLen :: String -> m Word64
getStringLen s :: String
s = IO Word64 -> m Word64
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word64 -> m Word64) -> IO Word64 -> m Word64
forall a b. (a -> b) -> a -> b
$ String -> (Ptr String -> IO Word64) -> IO Word64
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr String
s ((Ptr String -> IO Word64) -> IO Word64)
-> (Ptr String -> IO Word64) -> IO Word64
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr String
ptr -> do
Word64
val <- Ptr Word64 -> IO Word64
forall a. Storable a => Ptr a -> IO a
peek (Ptr String
ptr Ptr String -> Int -> Ptr Word64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8) :: IO Word64
Word64 -> IO Word64
forall (m :: * -> *) a. Monad m => a -> m a
return Word64
val
setStringLen :: MonadIO m => String -> Word64 -> m ()
setStringLen :: String -> Word64 -> m ()
setStringLen s :: String
s val :: Word64
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ String -> (Ptr String -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr String
s ((Ptr String -> IO ()) -> IO ()) -> (Ptr String -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr String
ptr -> do
Ptr Word64 -> Word64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr String
ptr Ptr String -> Int -> Ptr Word64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8) (Word64
val :: Word64)
#if ENABLE_OVERLOADING
data StringLenFieldInfo
instance AttrInfo StringLenFieldInfo where
type AttrAllowedOps StringLenFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint StringLenFieldInfo = (~) Word64
type AttrBaseTypeConstraint StringLenFieldInfo = (~) String
type AttrGetType StringLenFieldInfo = Word64
type AttrLabel StringLenFieldInfo = "len"
type AttrOrigin StringLenFieldInfo = String
attrGet _ = getStringLen
attrSet _ = setStringLen
attrConstruct = undefined
attrClear _ = undefined
string_len :: AttrLabelProxy "len"
string_len = AttrLabelProxy
#endif
getStringAllocatedLen :: MonadIO m => String -> m Word64
getStringAllocatedLen :: String -> m Word64
getStringAllocatedLen s :: String
s = IO Word64 -> m Word64
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word64 -> m Word64) -> IO Word64 -> m Word64
forall a b. (a -> b) -> a -> b
$ String -> (Ptr String -> IO Word64) -> IO Word64
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr String
s ((Ptr String -> IO Word64) -> IO Word64)
-> (Ptr String -> IO Word64) -> IO Word64
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr String
ptr -> do
Word64
val <- Ptr Word64 -> IO Word64
forall a. Storable a => Ptr a -> IO a
peek (Ptr String
ptr Ptr String -> Int -> Ptr Word64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16) :: IO Word64
Word64 -> IO Word64
forall (m :: * -> *) a. Monad m => a -> m a
return Word64
val
setStringAllocatedLen :: MonadIO m => String -> Word64 -> m ()
setStringAllocatedLen :: String -> Word64 -> m ()
setStringAllocatedLen s :: String
s val :: Word64
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ String -> (Ptr String -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr String
s ((Ptr String -> IO ()) -> IO ()) -> (Ptr String -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr String
ptr -> do
Ptr Word64 -> Word64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr String
ptr Ptr String -> Int -> Ptr Word64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16) (Word64
val :: Word64)
#if ENABLE_OVERLOADING
data StringAllocatedLenFieldInfo
instance AttrInfo StringAllocatedLenFieldInfo where
type AttrAllowedOps StringAllocatedLenFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint StringAllocatedLenFieldInfo = (~) Word64
type AttrBaseTypeConstraint StringAllocatedLenFieldInfo = (~) String
type AttrGetType StringAllocatedLenFieldInfo = Word64
type AttrLabel StringAllocatedLenFieldInfo = "allocated_len"
type AttrOrigin StringAllocatedLenFieldInfo = String
attrGet _ = getStringAllocatedLen
attrSet _ = setStringAllocatedLen
attrConstruct = undefined
attrClear _ = undefined
string_allocatedLen :: AttrLabelProxy "allocatedLen"
string_allocatedLen = AttrLabelProxy
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList String
type instance O.AttributeList String = StringAttributeList
type StringAttributeList = ('[ '("str", StringStrFieldInfo), '("len", StringLenFieldInfo), '("allocatedLen", StringAllocatedLenFieldInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "g_string_append" g_string_append ::
Ptr String ->
CString ->
IO (Ptr String)
stringAppend ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> T.Text
-> m String
stringAppend :: String -> Text -> m String
stringAppend string :: String
string val :: Text
val = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
CString
val' <- Text -> IO CString
textToCString Text
val
Ptr String
result <- Ptr String -> CString -> IO (Ptr String)
g_string_append Ptr String
string' CString
val'
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringAppend" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
val'
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringAppendMethodInfo
instance (signature ~ (T.Text -> m String), MonadIO m) => O.MethodInfo StringAppendMethodInfo String signature where
overloadedMethod _ = stringAppend
#endif
foreign import ccall "g_string_append_c" g_string_append_c ::
Ptr String ->
Int8 ->
IO (Ptr String)
stringAppendC ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> Int8
-> m String
stringAppendC :: String -> Int8 -> m String
stringAppendC string :: String
string c :: Int8
c = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
Ptr String
result <- Ptr String -> Int8 -> IO (Ptr String)
g_string_append_c Ptr String
string' Int8
c
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringAppendC" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringAppendCMethodInfo
instance (signature ~ (Int8 -> m String), MonadIO m) => O.MethodInfo StringAppendCMethodInfo String signature where
overloadedMethod _ = stringAppendC
#endif
foreign import ccall "g_string_append_len" g_string_append_len ::
Ptr String ->
CString ->
Int64 ->
IO (Ptr String)
stringAppendLen ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> T.Text
-> Int64
-> m String
stringAppendLen :: String -> Text -> Int64 -> m String
stringAppendLen string :: String
string val :: Text
val len :: Int64
len = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
CString
val' <- Text -> IO CString
textToCString Text
val
Ptr String
result <- Ptr String -> CString -> Int64 -> IO (Ptr String)
g_string_append_len Ptr String
string' CString
val' Int64
len
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringAppendLen" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
val'
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringAppendLenMethodInfo
instance (signature ~ (T.Text -> Int64 -> m String), MonadIO m) => O.MethodInfo StringAppendLenMethodInfo String signature where
overloadedMethod _ = stringAppendLen
#endif
foreign import ccall "g_string_append_unichar" g_string_append_unichar ::
Ptr String ->
CInt ->
IO (Ptr String)
stringAppendUnichar ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> Char
-> m String
stringAppendUnichar :: String -> Char -> m String
stringAppendUnichar string :: String
string wc :: Char
wc = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
let wc' :: CInt
wc' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Char -> Int) -> Char -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> Int
ord) Char
wc
Ptr String
result <- Ptr String -> CInt -> IO (Ptr String)
g_string_append_unichar Ptr String
string' CInt
wc'
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringAppendUnichar" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringAppendUnicharMethodInfo
instance (signature ~ (Char -> m String), MonadIO m) => O.MethodInfo StringAppendUnicharMethodInfo String signature where
overloadedMethod _ = stringAppendUnichar
#endif
foreign import ccall "g_string_append_uri_escaped" g_string_append_uri_escaped ::
Ptr String ->
CString ->
CString ->
CInt ->
IO (Ptr String)
stringAppendUriEscaped ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> T.Text
-> T.Text
-> Bool
-> m String
stringAppendUriEscaped :: String -> Text -> Text -> Bool -> m String
stringAppendUriEscaped string :: String
string unescaped :: Text
unescaped reservedCharsAllowed :: Text
reservedCharsAllowed allowUtf8 :: Bool
allowUtf8 = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
CString
unescaped' <- Text -> IO CString
textToCString Text
unescaped
CString
reservedCharsAllowed' <- Text -> IO CString
textToCString Text
reservedCharsAllowed
let allowUtf8' :: CInt
allowUtf8' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
allowUtf8
Ptr String
result <- Ptr String -> CString -> CString -> CInt -> IO (Ptr String)
g_string_append_uri_escaped Ptr String
string' CString
unescaped' CString
reservedCharsAllowed' CInt
allowUtf8'
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringAppendUriEscaped" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
unescaped'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
reservedCharsAllowed'
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringAppendUriEscapedMethodInfo
instance (signature ~ (T.Text -> T.Text -> Bool -> m String), MonadIO m) => O.MethodInfo StringAppendUriEscapedMethodInfo String signature where
overloadedMethod _ = stringAppendUriEscaped
#endif
foreign import ccall "g_string_ascii_down" g_string_ascii_down ::
Ptr String ->
IO (Ptr String)
stringAsciiDown ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> m String
stringAsciiDown :: String -> m String
stringAsciiDown string :: String
string = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
Ptr String
result <- Ptr String -> IO (Ptr String)
g_string_ascii_down Ptr String
string'
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringAsciiDown" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringAsciiDownMethodInfo
instance (signature ~ (m String), MonadIO m) => O.MethodInfo StringAsciiDownMethodInfo String signature where
overloadedMethod _ = stringAsciiDown
#endif
foreign import ccall "g_string_ascii_up" g_string_ascii_up ::
Ptr String ->
IO (Ptr String)
stringAsciiUp ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> m String
stringAsciiUp :: String -> m String
stringAsciiUp string :: String
string = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
Ptr String
result <- Ptr String -> IO (Ptr String)
g_string_ascii_up Ptr String
string'
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringAsciiUp" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringAsciiUpMethodInfo
instance (signature ~ (m String), MonadIO m) => O.MethodInfo StringAsciiUpMethodInfo String signature where
overloadedMethod _ = stringAsciiUp
#endif
foreign import ccall "g_string_assign" g_string_assign ::
Ptr String ->
CString ->
IO (Ptr String)
stringAssign ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> T.Text
-> m String
stringAssign :: String -> Text -> m String
stringAssign string :: String
string rval :: Text
rval = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
CString
rval' <- Text -> IO CString
textToCString Text
rval
Ptr String
result <- Ptr String -> CString -> IO (Ptr String)
g_string_assign Ptr String
string' CString
rval'
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringAssign" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
rval'
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringAssignMethodInfo
instance (signature ~ (T.Text -> m String), MonadIO m) => O.MethodInfo StringAssignMethodInfo String signature where
overloadedMethod _ = stringAssign
#endif
foreign import ccall "g_string_down" g_string_down ::
Ptr String ->
IO (Ptr String)
{-# DEPRECATED stringDown ["(Since version 2.2)","This function uses the locale-specific"," @/tolower()/@ function, which is almost never the right thing."," Use 'GI.GLib.Structs.String.stringAsciiDown' or 'GI.GLib.Functions.utf8Strdown' instead."] #-}
stringDown ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> m String
stringDown :: String -> m String
stringDown string :: String
string = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
Ptr String
result <- Ptr String -> IO (Ptr String)
g_string_down Ptr String
string'
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringDown" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringDownMethodInfo
instance (signature ~ (m String), MonadIO m) => O.MethodInfo StringDownMethodInfo String signature where
overloadedMethod _ = stringDown
#endif
foreign import ccall "g_string_equal" g_string_equal ::
Ptr String ->
Ptr String ->
IO CInt
stringEqual ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> String
-> m Bool
stringEqual :: String -> String -> m Bool
stringEqual v :: String
v v2 :: String
v2 = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr String
v' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
v
Ptr String
v2' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
v2
CInt
result <- Ptr String -> Ptr String -> IO CInt
g_string_equal Ptr String
v' Ptr String
v2'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
v
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
v2
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if ENABLE_OVERLOADING
data StringEqualMethodInfo
instance (signature ~ (String -> m Bool), MonadIO m) => O.MethodInfo StringEqualMethodInfo String signature where
overloadedMethod _ = stringEqual
#endif
foreign import ccall "g_string_erase" g_string_erase ::
Ptr String ->
Int64 ->
Int64 ->
IO (Ptr String)
stringErase ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> Int64
-> Int64
-> m String
stringErase :: String -> Int64 -> Int64 -> m String
stringErase string :: String
string pos :: Int64
pos len :: Int64
len = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
Ptr String
result <- Ptr String -> Int64 -> Int64 -> IO (Ptr String)
g_string_erase Ptr String
string' Int64
pos Int64
len
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringErase" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringEraseMethodInfo
instance (signature ~ (Int64 -> Int64 -> m String), MonadIO m) => O.MethodInfo StringEraseMethodInfo String signature where
overloadedMethod _ = stringErase
#endif
foreign import ccall "g_string_free" g_string_free ::
Ptr String ->
CInt ->
IO CString
stringFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> Bool
-> m (Maybe T.Text)
stringFree :: String -> Bool -> m (Maybe Text)
stringFree string :: String
string freeSegment :: Bool
freeSegment = IO (Maybe Text) -> m (Maybe Text)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, BoxedObject a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed String
string
let freeSegment' :: CInt
freeSegment' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
freeSegment
CString
result <- Ptr String -> CInt -> IO CString
g_string_free Ptr String
string' CInt
freeSegment'
Maybe Text
maybeResult <- CString -> (CString -> IO Text) -> IO (Maybe Text)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull CString
result ((CString -> IO Text) -> IO (Maybe Text))
-> (CString -> IO Text) -> IO (Maybe Text)
forall a b. (a -> b) -> a -> b
$ \result' :: CString
result' -> do
Text
result'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result'
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result''
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
Maybe Text -> IO (Maybe Text)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Text
maybeResult
#if ENABLE_OVERLOADING
data StringFreeMethodInfo
instance (signature ~ (Bool -> m (Maybe T.Text)), MonadIO m) => O.MethodInfo StringFreeMethodInfo String signature where
overloadedMethod _ = stringFree
#endif
foreign import ccall "g_string_free_to_bytes" g_string_free_to_bytes ::
Ptr String ->
IO (Ptr GLib.Bytes.Bytes)
stringFreeToBytes ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> m GLib.Bytes.Bytes
stringFreeToBytes :: String -> m Bytes
stringFreeToBytes string :: String
string = IO Bytes -> m Bytes
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 String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, BoxedObject a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed String
string
Ptr Bytes
result <- Ptr String -> IO (Ptr Bytes)
g_string_free_to_bytes Ptr String
string'
Text -> Ptr Bytes -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringFreeToBytes" Ptr Bytes
result
Bytes
result' <- ((ManagedPtr Bytes -> Bytes) -> Ptr Bytes -> IO Bytes
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Bytes -> Bytes
GLib.Bytes.Bytes) Ptr Bytes
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
Bytes -> IO Bytes
forall (m :: * -> *) a. Monad m => a -> m a
return Bytes
result'
#if ENABLE_OVERLOADING
data StringFreeToBytesMethodInfo
instance (signature ~ (m GLib.Bytes.Bytes), MonadIO m) => O.MethodInfo StringFreeToBytesMethodInfo String signature where
overloadedMethod _ = stringFreeToBytes
#endif
foreign import ccall "g_string_hash" g_string_hash ::
Ptr String ->
IO Word32
stringHash ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> m Word32
stringHash :: String -> m Word32
stringHash str :: String
str = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
Ptr String
str' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
str
Word32
result <- Ptr String -> IO Word32
g_string_hash Ptr String
str'
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
str
Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result
#if ENABLE_OVERLOADING
data StringHashMethodInfo
instance (signature ~ (m Word32), MonadIO m) => O.MethodInfo StringHashMethodInfo String signature where
overloadedMethod _ = stringHash
#endif
foreign import ccall "g_string_insert" g_string_insert ::
Ptr String ->
Int64 ->
CString ->
IO (Ptr String)
stringInsert ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> Int64
-> T.Text
-> m String
stringInsert :: String -> Int64 -> Text -> m String
stringInsert string :: String
string pos :: Int64
pos val :: Text
val = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
CString
val' <- Text -> IO CString
textToCString Text
val
Ptr String
result <- Ptr String -> Int64 -> CString -> IO (Ptr String)
g_string_insert Ptr String
string' Int64
pos CString
val'
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringInsert" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
val'
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringInsertMethodInfo
instance (signature ~ (Int64 -> T.Text -> m String), MonadIO m) => O.MethodInfo StringInsertMethodInfo String signature where
overloadedMethod _ = stringInsert
#endif
foreign import ccall "g_string_insert_c" g_string_insert_c ::
Ptr String ->
Int64 ->
Int8 ->
IO (Ptr String)
stringInsertC ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> Int64
-> Int8
-> m String
stringInsertC :: String -> Int64 -> Int8 -> m String
stringInsertC string :: String
string pos :: Int64
pos c :: Int8
c = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
Ptr String
result <- Ptr String -> Int64 -> Int8 -> IO (Ptr String)
g_string_insert_c Ptr String
string' Int64
pos Int8
c
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringInsertC" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringInsertCMethodInfo
instance (signature ~ (Int64 -> Int8 -> m String), MonadIO m) => O.MethodInfo StringInsertCMethodInfo String signature where
overloadedMethod _ = stringInsertC
#endif
foreign import ccall "g_string_insert_len" g_string_insert_len ::
Ptr String ->
Int64 ->
CString ->
Int64 ->
IO (Ptr String)
stringInsertLen ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> Int64
-> T.Text
-> Int64
-> m String
stringInsertLen :: String -> Int64 -> Text -> Int64 -> m String
stringInsertLen string :: String
string pos :: Int64
pos val :: Text
val len :: Int64
len = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
CString
val' <- Text -> IO CString
textToCString Text
val
Ptr String
result <- Ptr String -> Int64 -> CString -> Int64 -> IO (Ptr String)
g_string_insert_len Ptr String
string' Int64
pos CString
val' Int64
len
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringInsertLen" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
val'
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringInsertLenMethodInfo
instance (signature ~ (Int64 -> T.Text -> Int64 -> m String), MonadIO m) => O.MethodInfo StringInsertLenMethodInfo String signature where
overloadedMethod _ = stringInsertLen
#endif
foreign import ccall "g_string_insert_unichar" g_string_insert_unichar ::
Ptr String ->
Int64 ->
CInt ->
IO (Ptr String)
stringInsertUnichar ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> Int64
-> Char
-> m String
stringInsertUnichar :: String -> Int64 -> Char -> m String
stringInsertUnichar string :: String
string pos :: Int64
pos wc :: Char
wc = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
let wc' :: CInt
wc' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Char -> Int) -> Char -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> Int
ord) Char
wc
Ptr String
result <- Ptr String -> Int64 -> CInt -> IO (Ptr String)
g_string_insert_unichar Ptr String
string' Int64
pos CInt
wc'
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringInsertUnichar" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringInsertUnicharMethodInfo
instance (signature ~ (Int64 -> Char -> m String), MonadIO m) => O.MethodInfo StringInsertUnicharMethodInfo String signature where
overloadedMethod _ = stringInsertUnichar
#endif
foreign import ccall "g_string_overwrite" g_string_overwrite ::
Ptr String ->
Word64 ->
CString ->
IO (Ptr String)
stringOverwrite ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> Word64
-> T.Text
-> m String
stringOverwrite :: String -> Word64 -> Text -> m String
stringOverwrite string :: String
string pos :: Word64
pos val :: Text
val = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
CString
val' <- Text -> IO CString
textToCString Text
val
Ptr String
result <- Ptr String -> Word64 -> CString -> IO (Ptr String)
g_string_overwrite Ptr String
string' Word64
pos CString
val'
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringOverwrite" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
val'
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringOverwriteMethodInfo
instance (signature ~ (Word64 -> T.Text -> m String), MonadIO m) => O.MethodInfo StringOverwriteMethodInfo String signature where
overloadedMethod _ = stringOverwrite
#endif
foreign import ccall "g_string_overwrite_len" g_string_overwrite_len ::
Ptr String ->
Word64 ->
CString ->
Int64 ->
IO (Ptr String)
stringOverwriteLen ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> Word64
-> T.Text
-> Int64
-> m String
stringOverwriteLen :: String -> Word64 -> Text -> Int64 -> m String
stringOverwriteLen string :: String
string pos :: Word64
pos val :: Text
val len :: Int64
len = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
CString
val' <- Text -> IO CString
textToCString Text
val
Ptr String
result <- Ptr String -> Word64 -> CString -> Int64 -> IO (Ptr String)
g_string_overwrite_len Ptr String
string' Word64
pos CString
val' Int64
len
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringOverwriteLen" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
val'
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringOverwriteLenMethodInfo
instance (signature ~ (Word64 -> T.Text -> Int64 -> m String), MonadIO m) => O.MethodInfo StringOverwriteLenMethodInfo String signature where
overloadedMethod _ = stringOverwriteLen
#endif
foreign import ccall "g_string_prepend" g_string_prepend ::
Ptr String ->
CString ->
IO (Ptr String)
stringPrepend ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> T.Text
-> m String
stringPrepend :: String -> Text -> m String
stringPrepend string :: String
string val :: Text
val = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
CString
val' <- Text -> IO CString
textToCString Text
val
Ptr String
result <- Ptr String -> CString -> IO (Ptr String)
g_string_prepend Ptr String
string' CString
val'
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringPrepend" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
val'
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringPrependMethodInfo
instance (signature ~ (T.Text -> m String), MonadIO m) => O.MethodInfo StringPrependMethodInfo String signature where
overloadedMethod _ = stringPrepend
#endif
foreign import ccall "g_string_prepend_c" g_string_prepend_c ::
Ptr String ->
Int8 ->
IO (Ptr String)
stringPrependC ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> Int8
-> m String
stringPrependC :: String -> Int8 -> m String
stringPrependC string :: String
string c :: Int8
c = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
Ptr String
result <- Ptr String -> Int8 -> IO (Ptr String)
g_string_prepend_c Ptr String
string' Int8
c
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringPrependC" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringPrependCMethodInfo
instance (signature ~ (Int8 -> m String), MonadIO m) => O.MethodInfo StringPrependCMethodInfo String signature where
overloadedMethod _ = stringPrependC
#endif
foreign import ccall "g_string_prepend_len" g_string_prepend_len ::
Ptr String ->
CString ->
Int64 ->
IO (Ptr String)
stringPrependLen ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> T.Text
-> Int64
-> m String
stringPrependLen :: String -> Text -> Int64 -> m String
stringPrependLen string :: String
string val :: Text
val len :: Int64
len = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
CString
val' <- Text -> IO CString
textToCString Text
val
Ptr String
result <- Ptr String -> CString -> Int64 -> IO (Ptr String)
g_string_prepend_len Ptr String
string' CString
val' Int64
len
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringPrependLen" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
val'
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringPrependLenMethodInfo
instance (signature ~ (T.Text -> Int64 -> m String), MonadIO m) => O.MethodInfo StringPrependLenMethodInfo String signature where
overloadedMethod _ = stringPrependLen
#endif
foreign import ccall "g_string_prepend_unichar" g_string_prepend_unichar ::
Ptr String ->
CInt ->
IO (Ptr String)
stringPrependUnichar ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> Char
-> m String
stringPrependUnichar :: String -> Char -> m String
stringPrependUnichar string :: String
string wc :: Char
wc = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
let wc' :: CInt
wc' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Char -> Int) -> Char -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> Int
ord) Char
wc
Ptr String
result <- Ptr String -> CInt -> IO (Ptr String)
g_string_prepend_unichar Ptr String
string' CInt
wc'
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringPrependUnichar" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringPrependUnicharMethodInfo
instance (signature ~ (Char -> m String), MonadIO m) => O.MethodInfo StringPrependUnicharMethodInfo String signature where
overloadedMethod _ = stringPrependUnichar
#endif
foreign import ccall "g_string_set_size" g_string_set_size ::
Ptr String ->
Word64 ->
IO (Ptr String)
stringSetSize ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> Word64
-> m String
stringSetSize :: String -> Word64 -> m String
stringSetSize string :: String
string len :: Word64
len = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
Ptr String
result <- Ptr String -> Word64 -> IO (Ptr String)
g_string_set_size Ptr String
string' Word64
len
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringSetSize" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringSetSizeMethodInfo
instance (signature ~ (Word64 -> m String), MonadIO m) => O.MethodInfo StringSetSizeMethodInfo String signature where
overloadedMethod _ = stringSetSize
#endif
foreign import ccall "g_string_truncate" g_string_truncate ::
Ptr String ->
Word64 ->
IO (Ptr String)
stringTruncate ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> Word64
-> m String
stringTruncate :: String -> Word64 -> m String
stringTruncate string :: String
string len :: Word64
len = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
Ptr String
result <- Ptr String -> Word64 -> IO (Ptr String)
g_string_truncate Ptr String
string' Word64
len
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringTruncate" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringTruncateMethodInfo
instance (signature ~ (Word64 -> m String), MonadIO m) => O.MethodInfo StringTruncateMethodInfo String signature where
overloadedMethod _ = stringTruncate
#endif
foreign import ccall "g_string_up" g_string_up ::
Ptr String ->
IO (Ptr String)
{-# DEPRECATED stringUp ["(Since version 2.2)","This function uses the locale-specific"," @/toupper()/@ function, which is almost never the right thing."," Use 'GI.GLib.Structs.String.stringAsciiUp' or 'GI.GLib.Functions.utf8Strup' instead."] #-}
stringUp ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> m String
stringUp :: String -> m String
stringUp string :: String
string = IO String -> m String
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ do
Ptr String
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
Ptr String
result <- Ptr String -> IO (Ptr String)
g_string_up Ptr String
string'
Text -> Ptr String -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "stringUp" Ptr String
result
String
result' <- ((ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr String -> String
String) Ptr String
result
String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
string
String -> IO String
forall (m :: * -> *) a. Monad m => a -> m a
return String
result'
#if ENABLE_OVERLOADING
data StringUpMethodInfo
instance (signature ~ (m String), MonadIO m) => O.MethodInfo StringUpMethodInfo String signature where
overloadedMethod _ = stringUp
#endif
#if ENABLE_OVERLOADING
type family ResolveStringMethod (t :: Symbol) (o :: *) :: * where
ResolveStringMethod "append" o = StringAppendMethodInfo
ResolveStringMethod "appendC" o = StringAppendCMethodInfo
ResolveStringMethod "appendLen" o = StringAppendLenMethodInfo
ResolveStringMethod "appendUnichar" o = StringAppendUnicharMethodInfo
ResolveStringMethod "appendUriEscaped" o = StringAppendUriEscapedMethodInfo
ResolveStringMethod "asciiDown" o = StringAsciiDownMethodInfo
ResolveStringMethod "asciiUp" o = StringAsciiUpMethodInfo
ResolveStringMethod "assign" o = StringAssignMethodInfo
ResolveStringMethod "down" o = StringDownMethodInfo
ResolveStringMethod "equal" o = StringEqualMethodInfo
ResolveStringMethod "erase" o = StringEraseMethodInfo
ResolveStringMethod "free" o = StringFreeMethodInfo
ResolveStringMethod "freeToBytes" o = StringFreeToBytesMethodInfo
ResolveStringMethod "hash" o = StringHashMethodInfo
ResolveStringMethod "insert" o = StringInsertMethodInfo
ResolveStringMethod "insertC" o = StringInsertCMethodInfo
ResolveStringMethod "insertLen" o = StringInsertLenMethodInfo
ResolveStringMethod "insertUnichar" o = StringInsertUnicharMethodInfo
ResolveStringMethod "overwrite" o = StringOverwriteMethodInfo
ResolveStringMethod "overwriteLen" o = StringOverwriteLenMethodInfo
ResolveStringMethod "prepend" o = StringPrependMethodInfo
ResolveStringMethod "prependC" o = StringPrependCMethodInfo
ResolveStringMethod "prependLen" o = StringPrependLenMethodInfo
ResolveStringMethod "prependUnichar" o = StringPrependUnicharMethodInfo
ResolveStringMethod "truncate" o = StringTruncateMethodInfo
ResolveStringMethod "up" o = StringUpMethodInfo
ResolveStringMethod "setSize" o = StringSetSizeMethodInfo
ResolveStringMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveStringMethod t String, O.MethodInfo info String p) => O.IsLabelProxy t (String -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveStringMethod t String, O.MethodInfo info String p) => O.IsLabel t (String -> 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