{-# LANGUAGE TypeApplications #-}
#if !defined(__HADDOCK_VERSION__)
#define ENABLE_OVERLOADING
#endif
module GI.GLib.Structs.String
(
String(..) ,
newZeroString ,
#if defined(ENABLE_OVERLOADING)
ResolveStringMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
StringAppendMethodInfo ,
#endif
stringAppend ,
#if defined(ENABLE_OVERLOADING)
StringAppendCMethodInfo ,
#endif
stringAppendC ,
#if defined(ENABLE_OVERLOADING)
StringAppendLenMethodInfo ,
#endif
stringAppendLen ,
#if defined(ENABLE_OVERLOADING)
StringAppendUnicharMethodInfo ,
#endif
stringAppendUnichar ,
#if defined(ENABLE_OVERLOADING)
StringAppendUriEscapedMethodInfo ,
#endif
stringAppendUriEscaped ,
#if defined(ENABLE_OVERLOADING)
StringAsciiDownMethodInfo ,
#endif
stringAsciiDown ,
#if defined(ENABLE_OVERLOADING)
StringAsciiUpMethodInfo ,
#endif
stringAsciiUp ,
#if defined(ENABLE_OVERLOADING)
StringAssignMethodInfo ,
#endif
stringAssign ,
#if defined(ENABLE_OVERLOADING)
StringCopyMethodInfo ,
#endif
stringCopy ,
#if defined(ENABLE_OVERLOADING)
StringDownMethodInfo ,
#endif
stringDown ,
#if defined(ENABLE_OVERLOADING)
StringEqualMethodInfo ,
#endif
stringEqual ,
#if defined(ENABLE_OVERLOADING)
StringEraseMethodInfo ,
#endif
stringErase ,
#if defined(ENABLE_OVERLOADING)
StringFreeMethodInfo ,
#endif
stringFree ,
#if defined(ENABLE_OVERLOADING)
StringFreeAndStealMethodInfo ,
#endif
stringFreeAndSteal ,
#if defined(ENABLE_OVERLOADING)
StringFreeToBytesMethodInfo ,
#endif
stringFreeToBytes ,
#if defined(ENABLE_OVERLOADING)
StringHashMethodInfo ,
#endif
stringHash ,
#if defined(ENABLE_OVERLOADING)
StringInsertMethodInfo ,
#endif
stringInsert ,
#if defined(ENABLE_OVERLOADING)
StringInsertCMethodInfo ,
#endif
stringInsertC ,
#if defined(ENABLE_OVERLOADING)
StringInsertLenMethodInfo ,
#endif
stringInsertLen ,
#if defined(ENABLE_OVERLOADING)
StringInsertUnicharMethodInfo ,
#endif
stringInsertUnichar ,
stringNew ,
stringNewLen ,
stringNewTake ,
#if defined(ENABLE_OVERLOADING)
StringOverwriteMethodInfo ,
#endif
stringOverwrite ,
#if defined(ENABLE_OVERLOADING)
StringOverwriteLenMethodInfo ,
#endif
stringOverwriteLen ,
#if defined(ENABLE_OVERLOADING)
StringPrependMethodInfo ,
#endif
stringPrepend ,
#if defined(ENABLE_OVERLOADING)
StringPrependCMethodInfo ,
#endif
stringPrependC ,
#if defined(ENABLE_OVERLOADING)
StringPrependLenMethodInfo ,
#endif
stringPrependLen ,
#if defined(ENABLE_OVERLOADING)
StringPrependUnicharMethodInfo ,
#endif
stringPrependUnichar ,
#if defined(ENABLE_OVERLOADING)
StringReplaceMethodInfo ,
#endif
stringReplace ,
#if defined(ENABLE_OVERLOADING)
StringSetSizeMethodInfo ,
#endif
stringSetSize ,
stringSizedNew ,
#if defined(ENABLE_OVERLOADING)
StringTruncateMethodInfo ,
#endif
stringTruncate ,
#if defined(ENABLE_OVERLOADING)
StringUpMethodInfo ,
#endif
stringUp ,
getStringAllocatedLen ,
setStringAllocatedLen ,
#if defined(ENABLE_OVERLOADING)
string_allocatedLen ,
#endif
getStringLen ,
setStringLen ,
#if defined(ENABLE_OVERLOADING)
string_len ,
#endif
clearStringStr ,
getStringStr ,
setStringStr ,
#if defined(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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R
import qualified Data.Word as DW
import qualified Data.Int as DI
import qualified System.Posix.Types as SPT
import qualified Foreign.C.Types as FCT
#if MIN_VERSION_base(4,18,0)
import {-# SOURCE #-} qualified GI.GLib.Structs.Bytes as GLib.Bytes
#else
import {-# SOURCE #-} qualified GI.GLib.Structs.Bytes as GLib.Bytes
#endif
newtype String = String (SP.ManagedPtr String)
deriving (String -> String -> Bool
(String -> String -> Bool)
-> (String -> String -> Bool) -> Eq String
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: String -> String -> Bool
== :: String -> String -> Bool
$c/= :: String -> String -> Bool
/= :: String -> String -> Bool
Eq)
instance SP.ManagedPtrNewtype String where
toManagedPtr :: String -> ManagedPtr String
toManagedPtr (String ManagedPtr String
p) = ManagedPtr String
p
foreign import ccall "g_gstring_get_type" c_g_gstring_get_type ::
IO GType
type instance O.ParentTypes String = '[]
instance O.HasParentTypes String
instance B.Types.TypedObject String where
glibType :: IO GType
glibType = IO GType
c_g_gstring_get_type
instance B.Types.GBoxed String
instance B.GValue.IsGValue (Maybe String) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_g_gstring_get_type
gvalueSet_ :: Ptr GValue -> Maybe String -> IO ()
gvalueSet_ Ptr GValue
gv Maybe String
P.Nothing = Ptr GValue -> Ptr String -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv (Ptr String
forall a. Ptr a
FP.nullPtr :: FP.Ptr String)
gvalueSet_ Ptr GValue
gv (P.Just String
obj) = String -> (Ptr String -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr String
obj (Ptr GValue -> Ptr String -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe String)
gvalueGet_ Ptr GValue
gv = do
ptr <- Ptr GValue -> IO (Ptr String)
forall b. Ptr GValue -> IO (Ptr b)
B.GValue.get_boxed Ptr GValue
gv :: IO (Ptr String)
if ptr /= FP.nullPtr
then P.Just <$> B.ManagedPtr.newBoxed String ptr
else return P.Nothing
newZeroString :: MonadIO m => m String
newZeroString :: forall (m :: * -> *). MonadIO m => m String
newZeroString = IO String -> m String
forall a. IO a -> m a
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. GBoxed a => Int -> IO (Ptr a)
callocBoxedBytes Int
24 IO (Ptr String) -> (Ptr String -> IO String) -> IO String
forall a b. IO a -> (a -> IO b) -> IO b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (ManagedPtr String -> String) -> Ptr String -> IO String
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr String -> String
String
instance tag ~ 'AttrSet => Constructible String tag where
new :: forall (m :: * -> *).
MonadIO m =>
(ManagedPtr String -> String) -> [AttrOp String tag] -> m String
new ManagedPtr String -> String
_ [AttrOp String tag]
attrs = do
o <- m String
forall (m :: * -> *). MonadIO m => m String
newZeroString
GI.Attributes.set o attrs
return o
getStringStr :: MonadIO m => String -> m (Maybe T.Text)
getStringStr :: forall (m :: * -> *). MonadIO m => String -> m (Maybe Text)
getStringStr String
s = IO (Maybe Text) -> m (Maybe Text)
forall a. IO a -> m a
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 String
ptr -> do
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` Int
0) :: IO CString
result <- SP.convertIfNonNull val $ \CString
val' -> do
val'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
val'
return val''
return result
setStringStr :: MonadIO m => String -> CString -> m ()
setStringStr :: forall (m :: * -> *). MonadIO m => String -> CString -> m ()
setStringStr String
s CString
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ 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 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` Int
0) (CString
val :: CString)
clearStringStr :: MonadIO m => String -> m ()
clearStringStr :: forall (m :: * -> *). MonadIO m => String -> m ()
clearStringStr String
s = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ 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 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` Int
0) (CString
forall a. Ptr a
FP.nullPtr :: CString)
#if defined(ENABLE_OVERLOADING)
data StringStrFieldInfo
instance AttrInfo StringStrFieldInfo where
type AttrBaseTypeConstraint StringStrFieldInfo = (~) String
type AttrAllowedOps StringStrFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint StringStrFieldInfo = (~) CString
type AttrTransferTypeConstraint StringStrFieldInfo = (~)CString
type AttrTransferType StringStrFieldInfo = CString
type AttrGetType StringStrFieldInfo = Maybe T.Text
type AttrLabel StringStrFieldInfo = "str"
type AttrOrigin StringStrFieldInfo = String
attrGet = getStringStr
attrSet = setStringStr
attrConstruct = undefined
attrClear = clearStringStr
attrTransfer _ v = do
return v
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.str"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#g:attr:str"
})
string_str :: AttrLabelProxy "str"
string_str = AttrLabelProxy
#endif
getStringLen :: MonadIO m => String -> m FCT.CSize
getStringLen :: forall (m :: * -> *). MonadIO m => String -> m CSize
getStringLen String
s = IO CSize -> m CSize
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO CSize -> m CSize) -> IO CSize -> m CSize
forall a b. (a -> b) -> a -> b
$ String -> (Ptr String -> IO CSize) -> IO CSize
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr String
s ((Ptr String -> IO CSize) -> IO CSize)
-> (Ptr String -> IO CSize) -> IO CSize
forall a b. (a -> b) -> a -> b
$ \Ptr String
ptr -> do
val <- Ptr CSize -> IO CSize
forall a. Storable a => Ptr a -> IO a
peek (Ptr String
ptr Ptr String -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8) :: IO FCT.CSize
return val
setStringLen :: MonadIO m => String -> FCT.CSize -> m ()
setStringLen :: forall (m :: * -> *). MonadIO m => String -> CSize -> m ()
setStringLen String
s CSize
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ 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 String
ptr -> do
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr String
ptr Ptr String -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8) (CSize
val :: FCT.CSize)
#if defined(ENABLE_OVERLOADING)
data StringLenFieldInfo
instance AttrInfo StringLenFieldInfo where
type AttrBaseTypeConstraint StringLenFieldInfo = (~) String
type AttrAllowedOps StringLenFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint StringLenFieldInfo = (~) FCT.CSize
type AttrTransferTypeConstraint StringLenFieldInfo = (~)FCT.CSize
type AttrTransferType StringLenFieldInfo = FCT.CSize
type AttrGetType StringLenFieldInfo = FCT.CSize
type AttrLabel StringLenFieldInfo = "len"
type AttrOrigin StringLenFieldInfo = String
attrGet = getStringLen
attrSet = setStringLen
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.len"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#g:attr:len"
})
string_len :: AttrLabelProxy "len"
string_len = AttrLabelProxy
#endif
getStringAllocatedLen :: MonadIO m => String -> m FCT.CSize
getStringAllocatedLen :: forall (m :: * -> *). MonadIO m => String -> m CSize
getStringAllocatedLen String
s = IO CSize -> m CSize
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO CSize -> m CSize) -> IO CSize -> m CSize
forall a b. (a -> b) -> a -> b
$ String -> (Ptr String -> IO CSize) -> IO CSize
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr String
s ((Ptr String -> IO CSize) -> IO CSize)
-> (Ptr String -> IO CSize) -> IO CSize
forall a b. (a -> b) -> a -> b
$ \Ptr String
ptr -> do
val <- Ptr CSize -> IO CSize
forall a. Storable a => Ptr a -> IO a
peek (Ptr String
ptr Ptr String -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16) :: IO FCT.CSize
return val
setStringAllocatedLen :: MonadIO m => String -> FCT.CSize -> m ()
setStringAllocatedLen :: forall (m :: * -> *). MonadIO m => String -> CSize -> m ()
setStringAllocatedLen String
s CSize
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ 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 String
ptr -> do
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr String
ptr Ptr String -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16) (CSize
val :: FCT.CSize)
#if defined(ENABLE_OVERLOADING)
data StringAllocatedLenFieldInfo
instance AttrInfo StringAllocatedLenFieldInfo where
type AttrBaseTypeConstraint StringAllocatedLenFieldInfo = (~) String
type AttrAllowedOps StringAllocatedLenFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint StringAllocatedLenFieldInfo = (~) FCT.CSize
type AttrTransferTypeConstraint StringAllocatedLenFieldInfo = (~)FCT.CSize
type AttrTransferType StringAllocatedLenFieldInfo = FCT.CSize
type AttrGetType StringAllocatedLenFieldInfo = FCT.CSize
type AttrLabel StringAllocatedLenFieldInfo = "allocated_len"
type AttrOrigin StringAllocatedLenFieldInfo = String
attrGet = getStringAllocatedLen
attrSet = setStringAllocatedLen
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.allocatedLen"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#g:attr:allocatedLen"
})
string_allocatedLen :: AttrLabelProxy "allocatedLen"
string_allocatedLen = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList String
type instance O.AttributeList String = StringAttributeList
type StringAttributeList = ('[ '("str", StringStrFieldInfo), '("len", StringLenFieldInfo), '("allocatedLen", StringAllocatedLenFieldInfo)] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "g_string_new" g_string_new ::
CString ->
IO (Ptr String)
stringNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (T.Text)
-> m String
stringNew :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Text -> m String
stringNew Maybe Text
init = IO String -> m String
forall a. IO a -> m a
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
maybeInit <- case Maybe Text
init of
Maybe Text
Nothing -> CString -> IO CString
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CString
forall a. Ptr a
FP.nullPtr
Just Text
jInit -> do
jInit' <- Text -> IO CString
textToCString Text
jInit
return jInit'
result <- g_string_new maybeInit
checkUnexpectedReturnNULL "stringNew" result
result' <- (wrapBoxed String) result
freeMem maybeInit
return result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_string_new_len" g_string_new_len ::
CString ->
DI.Int64 ->
IO (Ptr String)
stringNewLen ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> DI.Int64
-> m String
stringNewLen :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> Int64 -> m String
stringNewLen Text
init Int64
len = IO String -> m String
forall a. IO a -> m a
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
init' <- Text -> IO CString
textToCString Text
init
result <- g_string_new_len init' len
checkUnexpectedReturnNULL "stringNewLen" result
result' <- (wrapBoxed String) result
freeMem init'
return result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_string_new_take" g_string_new_take ::
CString ->
IO (Ptr String)
stringNewTake ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (T.Text)
-> m String
stringNewTake :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Text -> m String
stringNewTake Maybe Text
init = IO String -> m String
forall a. IO a -> m a
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
maybeInit <- case Maybe Text
init of
Maybe Text
Nothing -> CString -> IO CString
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CString
forall a. Ptr a
FP.nullPtr
Just Text
jInit -> do
jInit' <- Text -> IO CString
textToCString Text
jInit
return jInit'
result <- g_string_new_take maybeInit
checkUnexpectedReturnNULL "stringNewTake" result
result' <- (wrapBoxed String) result
return result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_string_sized_new" g_string_sized_new ::
FCT.CSize ->
IO (Ptr String)
stringSizedNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
FCT.CSize
-> m String
stringSizedNew :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
CSize -> m String
stringSizedNew CSize
dflSize = IO String -> m String
forall a. IO a -> m a
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
result <- CSize -> IO (Ptr String)
g_string_sized_new CSize
dflSize
checkUnexpectedReturnNULL "stringSizedNew" result
result' <- (wrapBoxed String) result
return result'
#if defined(ENABLE_OVERLOADING)
#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 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> Text -> m String
stringAppend String
string Text
val = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
val' <- textToCString val
result <- g_string_append string' val'
checkUnexpectedReturnNULL "stringAppend" result
result' <- (newBoxed String) result
touchManagedPtr string
freeMem val'
return result'
#if defined(ENABLE_OVERLOADING)
data StringAppendMethodInfo
instance (signature ~ (T.Text -> m String), MonadIO m) => O.OverloadedMethod StringAppendMethodInfo String signature where
overloadedMethod = stringAppend
instance O.OverloadedMethodInfo StringAppendMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringAppend",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v: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 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> Int8 -> m String
stringAppendC String
string Int8
c = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
result <- g_string_append_c string' c
checkUnexpectedReturnNULL "stringAppendC" result
result' <- (newBoxed String) result
touchManagedPtr string
return result'
#if defined(ENABLE_OVERLOADING)
data StringAppendCMethodInfo
instance (signature ~ (Int8 -> m String), MonadIO m) => O.OverloadedMethod StringAppendCMethodInfo String signature where
overloadedMethod = stringAppendC
instance O.OverloadedMethodInfo StringAppendCMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringAppendC",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v:stringAppendC"
})
#endif
foreign import ccall "g_string_append_len" g_string_append_len ::
Ptr String ->
CString ->
DI.Int64 ->
IO (Ptr String)
stringAppendLen ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> T.Text
-> DI.Int64
-> m String
stringAppendLen :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> Text -> Int64 -> m String
stringAppendLen String
string Text
val Int64
len = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
val' <- textToCString val
result <- g_string_append_len string' val' len
checkUnexpectedReturnNULL "stringAppendLen" result
result' <- (newBoxed String) result
touchManagedPtr string
freeMem val'
return result'
#if defined(ENABLE_OVERLOADING)
data StringAppendLenMethodInfo
instance (signature ~ (T.Text -> DI.Int64 -> m String), MonadIO m) => O.OverloadedMethod StringAppendLenMethodInfo String signature where
overloadedMethod = stringAppendLen
instance O.OverloadedMethodInfo StringAppendLenMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringAppendLen",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v: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 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> Char -> m String
stringAppendUnichar String
string Char
wc = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
let wc' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
P.fromIntegral (Int -> CInt) -> (Char -> Int) -> Char -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> Int
SP.ord) Char
wc
result <- g_string_append_unichar string' wc'
checkUnexpectedReturnNULL "stringAppendUnichar" result
result' <- (newBoxed String) result
touchManagedPtr string
return result'
#if defined(ENABLE_OVERLOADING)
data StringAppendUnicharMethodInfo
instance (signature ~ (Char -> m String), MonadIO m) => O.OverloadedMethod StringAppendUnicharMethodInfo String signature where
overloadedMethod = stringAppendUnichar
instance O.OverloadedMethodInfo StringAppendUnicharMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringAppendUnichar",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v: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 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> Text -> Text -> Bool -> m String
stringAppendUriEscaped String
string Text
unescaped Text
reservedCharsAllowed Bool
allowUtf8 = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
unescaped' <- textToCString unescaped
reservedCharsAllowed' <- textToCString reservedCharsAllowed
let allowUtf8' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
P.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
P.fromEnum) Bool
allowUtf8
result <- g_string_append_uri_escaped string' unescaped' reservedCharsAllowed' allowUtf8'
checkUnexpectedReturnNULL "stringAppendUriEscaped" result
result' <- (newBoxed String) result
touchManagedPtr string
freeMem unescaped'
freeMem reservedCharsAllowed'
return result'
#if defined(ENABLE_OVERLOADING)
data StringAppendUriEscapedMethodInfo
instance (signature ~ (T.Text -> T.Text -> Bool -> m String), MonadIO m) => O.OverloadedMethod StringAppendUriEscapedMethodInfo String signature where
overloadedMethod = stringAppendUriEscaped
instance O.OverloadedMethodInfo StringAppendUriEscapedMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringAppendUriEscaped",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v: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 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> m String
stringAsciiDown String
string = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
result <- g_string_ascii_down string'
checkUnexpectedReturnNULL "stringAsciiDown" result
result' <- (newBoxed String) result
touchManagedPtr string
return result'
#if defined(ENABLE_OVERLOADING)
data StringAsciiDownMethodInfo
instance (signature ~ (m String), MonadIO m) => O.OverloadedMethod StringAsciiDownMethodInfo String signature where
overloadedMethod = stringAsciiDown
instance O.OverloadedMethodInfo StringAsciiDownMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringAsciiDown",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v: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 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> m String
stringAsciiUp String
string = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
result <- g_string_ascii_up string'
checkUnexpectedReturnNULL "stringAsciiUp" result
result' <- (newBoxed String) result
touchManagedPtr string
return result'
#if defined(ENABLE_OVERLOADING)
data StringAsciiUpMethodInfo
instance (signature ~ (m String), MonadIO m) => O.OverloadedMethod StringAsciiUpMethodInfo String signature where
overloadedMethod = stringAsciiUp
instance O.OverloadedMethodInfo StringAsciiUpMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringAsciiUp",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v: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 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> Text -> m String
stringAssign String
string Text
rval = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
rval' <- textToCString rval
result <- g_string_assign string' rval'
checkUnexpectedReturnNULL "stringAssign" result
result' <- (newBoxed String) result
touchManagedPtr string
freeMem rval'
return result'
#if defined(ENABLE_OVERLOADING)
data StringAssignMethodInfo
instance (signature ~ (T.Text -> m String), MonadIO m) => O.OverloadedMethod StringAssignMethodInfo String signature where
overloadedMethod = stringAssign
instance O.OverloadedMethodInfo StringAssignMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringAssign",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v:stringAssign"
})
#endif
foreign import ccall "g_string_copy" g_string_copy ::
Ptr String ->
IO (Ptr String)
stringCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> m String
stringCopy :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> m String
stringCopy String
string = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
result <- g_string_copy string'
checkUnexpectedReturnNULL "stringCopy" result
result' <- (wrapBoxed String) result
touchManagedPtr string
return result'
#if defined(ENABLE_OVERLOADING)
data StringCopyMethodInfo
instance (signature ~ (m String), MonadIO m) => O.OverloadedMethod StringCopyMethodInfo String signature where
overloadedMethod = stringCopy
instance O.OverloadedMethodInfo StringCopyMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringCopy",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v:stringCopy"
})
#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 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> m String
stringDown String
string = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
result <- g_string_down string'
checkUnexpectedReturnNULL "stringDown" result
result' <- (newBoxed String) result
touchManagedPtr string
return result'
#if defined(ENABLE_OVERLOADING)
data StringDownMethodInfo
instance (signature ~ (m String), MonadIO m) => O.OverloadedMethod StringDownMethodInfo String signature where
overloadedMethod = stringDown
instance O.OverloadedMethodInfo StringDownMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringDown",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v: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 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> String -> m Bool
stringEqual String
v String
v2 = IO Bool -> m Bool
forall a. IO a -> m a
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
v' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
v
v2' <- unsafeManagedPtrGetPtr v2
result <- g_string_equal v' v2'
let result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
touchManagedPtr v
touchManagedPtr v2
return result'
#if defined(ENABLE_OVERLOADING)
data StringEqualMethodInfo
instance (signature ~ (String -> m Bool), MonadIO m) => O.OverloadedMethod StringEqualMethodInfo String signature where
overloadedMethod = stringEqual
instance O.OverloadedMethodInfo StringEqualMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringEqual",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v:stringEqual"
})
#endif
foreign import ccall "g_string_erase" g_string_erase ::
Ptr String ->
DI.Int64 ->
DI.Int64 ->
IO (Ptr String)
stringErase ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> DI.Int64
-> DI.Int64
-> m String
stringErase :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> Int64 -> Int64 -> m String
stringErase String
string Int64
pos Int64
len = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
result <- g_string_erase string' pos len
checkUnexpectedReturnNULL "stringErase" result
result' <- (newBoxed String) result
touchManagedPtr string
return result'
#if defined(ENABLE_OVERLOADING)
data StringEraseMethodInfo
instance (signature ~ (DI.Int64 -> DI.Int64 -> m String), MonadIO m) => O.OverloadedMethod StringEraseMethodInfo String signature where
overloadedMethod = stringErase
instance O.OverloadedMethodInfo StringEraseMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringErase",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v: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 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> Bool -> m (Maybe Text)
stringFree String
string Bool
freeSegment = IO (Maybe Text) -> m (Maybe Text)
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, GBoxed a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed String
string
let freeSegment' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
P.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
P.fromEnum) Bool
freeSegment
result <- g_string_free string' freeSegment'
maybeResult <- convertIfNonNull result $ \CString
result' -> do
result'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result'
freeMem result'
return result''
touchManagedPtr string
return maybeResult
#if defined(ENABLE_OVERLOADING)
data StringFreeMethodInfo
instance (signature ~ (Bool -> m (Maybe T.Text)), MonadIO m) => O.OverloadedMethod StringFreeMethodInfo String signature where
overloadedMethod = stringFree
instance O.OverloadedMethodInfo StringFreeMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringFree",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v:stringFree"
})
#endif
foreign import ccall "g_string_free_and_steal" g_string_free_and_steal ::
Ptr String ->
IO CString
stringFreeAndSteal ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> m T.Text
stringFreeAndSteal :: forall (m :: * -> *). (HasCallStack, MonadIO m) => String -> m Text
stringFreeAndSteal String
string = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, GBoxed a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed String
string
result <- g_string_free_and_steal string'
checkUnexpectedReturnNULL "stringFreeAndSteal" result
result' <- cstringToText result
freeMem result
touchManagedPtr string
return result'
#if defined(ENABLE_OVERLOADING)
data StringFreeAndStealMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => O.OverloadedMethod StringFreeAndStealMethodInfo String signature where
overloadedMethod = stringFreeAndSteal
instance O.OverloadedMethodInfo StringFreeAndStealMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringFreeAndSteal",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v:stringFreeAndSteal"
})
#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 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> m Bytes
stringFreeToBytes String
string = IO Bytes -> m Bytes
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bytes -> m Bytes) -> IO Bytes -> m Bytes
forall a b. (a -> b) -> a -> b
$ do
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, GBoxed a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed String
string
result <- g_string_free_to_bytes string'
checkUnexpectedReturnNULL "stringFreeToBytes" result
result' <- (wrapBoxed GLib.Bytes.Bytes) result
touchManagedPtr string
return result'
#if defined(ENABLE_OVERLOADING)
data StringFreeToBytesMethodInfo
instance (signature ~ (m GLib.Bytes.Bytes), MonadIO m) => O.OverloadedMethod StringFreeToBytesMethodInfo String signature where
overloadedMethod = stringFreeToBytes
instance O.OverloadedMethodInfo StringFreeToBytesMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringFreeToBytes",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v: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 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> m Word32
stringHash String
str = IO Word32 -> m Word32
forall a. IO a -> m a
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
str' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
str
result <- g_string_hash str'
touchManagedPtr str
return result
#if defined(ENABLE_OVERLOADING)
data StringHashMethodInfo
instance (signature ~ (m Word32), MonadIO m) => O.OverloadedMethod StringHashMethodInfo String signature where
overloadedMethod = stringHash
instance O.OverloadedMethodInfo StringHashMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringHash",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v:stringHash"
})
#endif
foreign import ccall "g_string_insert" g_string_insert ::
Ptr String ->
DI.Int64 ->
CString ->
IO (Ptr String)
stringInsert ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> DI.Int64
-> T.Text
-> m String
stringInsert :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> Int64 -> Text -> m String
stringInsert String
string Int64
pos Text
val = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
val' <- textToCString val
result <- g_string_insert string' pos val'
checkUnexpectedReturnNULL "stringInsert" result
result' <- (newBoxed String) result
touchManagedPtr string
freeMem val'
return result'
#if defined(ENABLE_OVERLOADING)
data StringInsertMethodInfo
instance (signature ~ (DI.Int64 -> T.Text -> m String), MonadIO m) => O.OverloadedMethod StringInsertMethodInfo String signature where
overloadedMethod = stringInsert
instance O.OverloadedMethodInfo StringInsertMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringInsert",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v:stringInsert"
})
#endif
foreign import ccall "g_string_insert_c" g_string_insert_c ::
Ptr String ->
DI.Int64 ->
Int8 ->
IO (Ptr String)
stringInsertC ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> DI.Int64
-> Int8
-> m String
stringInsertC :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> Int64 -> Int8 -> m String
stringInsertC String
string Int64
pos Int8
c = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
result <- g_string_insert_c string' pos c
checkUnexpectedReturnNULL "stringInsertC" result
result' <- (newBoxed String) result
touchManagedPtr string
return result'
#if defined(ENABLE_OVERLOADING)
data StringInsertCMethodInfo
instance (signature ~ (DI.Int64 -> Int8 -> m String), MonadIO m) => O.OverloadedMethod StringInsertCMethodInfo String signature where
overloadedMethod = stringInsertC
instance O.OverloadedMethodInfo StringInsertCMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringInsertC",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v:stringInsertC"
})
#endif
foreign import ccall "g_string_insert_len" g_string_insert_len ::
Ptr String ->
DI.Int64 ->
CString ->
DI.Int64 ->
IO (Ptr String)
stringInsertLen ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> DI.Int64
-> T.Text
-> DI.Int64
-> m String
stringInsertLen :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> Int64 -> Text -> Int64 -> m String
stringInsertLen String
string Int64
pos Text
val Int64
len = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
val' <- textToCString val
result <- g_string_insert_len string' pos val' len
checkUnexpectedReturnNULL "stringInsertLen" result
result' <- (newBoxed String) result
touchManagedPtr string
freeMem val'
return result'
#if defined(ENABLE_OVERLOADING)
data StringInsertLenMethodInfo
instance (signature ~ (DI.Int64 -> T.Text -> DI.Int64 -> m String), MonadIO m) => O.OverloadedMethod StringInsertLenMethodInfo String signature where
overloadedMethod = stringInsertLen
instance O.OverloadedMethodInfo StringInsertLenMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringInsertLen",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v:stringInsertLen"
})
#endif
foreign import ccall "g_string_insert_unichar" g_string_insert_unichar ::
Ptr String ->
DI.Int64 ->
CInt ->
IO (Ptr String)
stringInsertUnichar ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> DI.Int64
-> Char
-> m String
stringInsertUnichar :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> Int64 -> Char -> m String
stringInsertUnichar String
string Int64
pos Char
wc = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
let wc' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
P.fromIntegral (Int -> CInt) -> (Char -> Int) -> Char -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> Int
SP.ord) Char
wc
result <- g_string_insert_unichar string' pos wc'
checkUnexpectedReturnNULL "stringInsertUnichar" result
result' <- (newBoxed String) result
touchManagedPtr string
return result'
#if defined(ENABLE_OVERLOADING)
data StringInsertUnicharMethodInfo
instance (signature ~ (DI.Int64 -> Char -> m String), MonadIO m) => O.OverloadedMethod StringInsertUnicharMethodInfo String signature where
overloadedMethod = stringInsertUnichar
instance O.OverloadedMethodInfo StringInsertUnicharMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringInsertUnichar",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v:stringInsertUnichar"
})
#endif
foreign import ccall "g_string_overwrite" g_string_overwrite ::
Ptr String ->
FCT.CSize ->
CString ->
IO (Ptr String)
stringOverwrite ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> FCT.CSize
-> T.Text
-> m String
stringOverwrite :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> CSize -> Text -> m String
stringOverwrite String
string CSize
pos Text
val = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
val' <- textToCString val
result <- g_string_overwrite string' pos val'
checkUnexpectedReturnNULL "stringOverwrite" result
result' <- (newBoxed String) result
touchManagedPtr string
freeMem val'
return result'
#if defined(ENABLE_OVERLOADING)
data StringOverwriteMethodInfo
instance (signature ~ (FCT.CSize -> T.Text -> m String), MonadIO m) => O.OverloadedMethod StringOverwriteMethodInfo String signature where
overloadedMethod = stringOverwrite
instance O.OverloadedMethodInfo StringOverwriteMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringOverwrite",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v:stringOverwrite"
})
#endif
foreign import ccall "g_string_overwrite_len" g_string_overwrite_len ::
Ptr String ->
FCT.CSize ->
CString ->
DI.Int64 ->
IO (Ptr String)
stringOverwriteLen ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> FCT.CSize
-> T.Text
-> DI.Int64
-> m String
stringOverwriteLen :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> CSize -> Text -> Int64 -> m String
stringOverwriteLen String
string CSize
pos Text
val Int64
len = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
val' <- textToCString val
result <- g_string_overwrite_len string' pos val' len
checkUnexpectedReturnNULL "stringOverwriteLen" result
result' <- (newBoxed String) result
touchManagedPtr string
freeMem val'
return result'
#if defined(ENABLE_OVERLOADING)
data StringOverwriteLenMethodInfo
instance (signature ~ (FCT.CSize -> T.Text -> DI.Int64 -> m String), MonadIO m) => O.OverloadedMethod StringOverwriteLenMethodInfo String signature where
overloadedMethod = stringOverwriteLen
instance O.OverloadedMethodInfo StringOverwriteLenMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringOverwriteLen",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v: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 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> Text -> m String
stringPrepend String
string Text
val = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
val' <- textToCString val
result <- g_string_prepend string' val'
checkUnexpectedReturnNULL "stringPrepend" result
result' <- (newBoxed String) result
touchManagedPtr string
freeMem val'
return result'
#if defined(ENABLE_OVERLOADING)
data StringPrependMethodInfo
instance (signature ~ (T.Text -> m String), MonadIO m) => O.OverloadedMethod StringPrependMethodInfo String signature where
overloadedMethod = stringPrepend
instance O.OverloadedMethodInfo StringPrependMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringPrepend",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v: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 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> Int8 -> m String
stringPrependC String
string Int8
c = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
result <- g_string_prepend_c string' c
checkUnexpectedReturnNULL "stringPrependC" result
result' <- (newBoxed String) result
touchManagedPtr string
return result'
#if defined(ENABLE_OVERLOADING)
data StringPrependCMethodInfo
instance (signature ~ (Int8 -> m String), MonadIO m) => O.OverloadedMethod StringPrependCMethodInfo String signature where
overloadedMethod = stringPrependC
instance O.OverloadedMethodInfo StringPrependCMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringPrependC",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v:stringPrependC"
})
#endif
foreign import ccall "g_string_prepend_len" g_string_prepend_len ::
Ptr String ->
CString ->
DI.Int64 ->
IO (Ptr String)
stringPrependLen ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> T.Text
-> DI.Int64
-> m String
stringPrependLen :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> Text -> Int64 -> m String
stringPrependLen String
string Text
val Int64
len = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
val' <- textToCString val
result <- g_string_prepend_len string' val' len
checkUnexpectedReturnNULL "stringPrependLen" result
result' <- (newBoxed String) result
touchManagedPtr string
freeMem val'
return result'
#if defined(ENABLE_OVERLOADING)
data StringPrependLenMethodInfo
instance (signature ~ (T.Text -> DI.Int64 -> m String), MonadIO m) => O.OverloadedMethod StringPrependLenMethodInfo String signature where
overloadedMethod = stringPrependLen
instance O.OverloadedMethodInfo StringPrependLenMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringPrependLen",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v: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 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> Char -> m String
stringPrependUnichar String
string Char
wc = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
let wc' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
P.fromIntegral (Int -> CInt) -> (Char -> Int) -> Char -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> Int
SP.ord) Char
wc
result <- g_string_prepend_unichar string' wc'
checkUnexpectedReturnNULL "stringPrependUnichar" result
result' <- (newBoxed String) result
touchManagedPtr string
return result'
#if defined(ENABLE_OVERLOADING)
data StringPrependUnicharMethodInfo
instance (signature ~ (Char -> m String), MonadIO m) => O.OverloadedMethod StringPrependUnicharMethodInfo String signature where
overloadedMethod = stringPrependUnichar
instance O.OverloadedMethodInfo StringPrependUnicharMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringPrependUnichar",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v:stringPrependUnichar"
})
#endif
foreign import ccall "g_string_replace" g_string_replace ::
Ptr String ->
CString ->
CString ->
Word32 ->
IO Word32
stringReplace ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> T.Text
-> T.Text
-> Word32
-> m Word32
stringReplace :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> Text -> Text -> Word32 -> m Word32
stringReplace String
string Text
find Text
replace Word32
limit = IO Word32 -> m Word32
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
find' <- textToCString find
replace' <- textToCString replace
result <- g_string_replace string' find' replace' limit
touchManagedPtr string
freeMem find'
freeMem replace'
return result
#if defined(ENABLE_OVERLOADING)
data StringReplaceMethodInfo
instance (signature ~ (T.Text -> T.Text -> Word32 -> m Word32), MonadIO m) => O.OverloadedMethod StringReplaceMethodInfo String signature where
overloadedMethod = stringReplace
instance O.OverloadedMethodInfo StringReplaceMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringReplace",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v:stringReplace"
})
#endif
foreign import ccall "g_string_set_size" g_string_set_size ::
Ptr String ->
FCT.CSize ->
IO (Ptr String)
stringSetSize ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> FCT.CSize
-> m String
stringSetSize :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> CSize -> m String
stringSetSize String
string CSize
len = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
result <- g_string_set_size string' len
checkUnexpectedReturnNULL "stringSetSize" result
result' <- (newBoxed String) result
touchManagedPtr string
return result'
#if defined(ENABLE_OVERLOADING)
data StringSetSizeMethodInfo
instance (signature ~ (FCT.CSize -> m String), MonadIO m) => O.OverloadedMethod StringSetSizeMethodInfo String signature where
overloadedMethod = stringSetSize
instance O.OverloadedMethodInfo StringSetSizeMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringSetSize",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v:stringSetSize"
})
#endif
foreign import ccall "g_string_truncate" g_string_truncate ::
Ptr String ->
FCT.CSize ->
IO (Ptr String)
stringTruncate ::
(B.CallStack.HasCallStack, MonadIO m) =>
String
-> FCT.CSize
-> m String
stringTruncate :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> CSize -> m String
stringTruncate String
string CSize
len = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
result <- g_string_truncate string' len
checkUnexpectedReturnNULL "stringTruncate" result
result' <- (newBoxed String) result
touchManagedPtr string
return result'
#if defined(ENABLE_OVERLOADING)
data StringTruncateMethodInfo
instance (signature ~ (FCT.CSize -> m String), MonadIO m) => O.OverloadedMethod StringTruncateMethodInfo String signature where
overloadedMethod = stringTruncate
instance O.OverloadedMethodInfo StringTruncateMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringTruncate",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v: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 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
String -> m String
stringUp String
string = IO String -> m String
forall a. IO a -> m a
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
string' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
string
result <- g_string_up string'
checkUnexpectedReturnNULL "stringUp" result
result' <- (newBoxed String) result
touchManagedPtr string
return result'
#if defined(ENABLE_OVERLOADING)
data StringUpMethodInfo
instance (signature ~ (m String), MonadIO m) => O.OverloadedMethod StringUpMethodInfo String signature where
overloadedMethod = stringUp
instance O.OverloadedMethodInfo StringUpMethodInfo String where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.String.stringUp",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.30/docs/GI-GLib-Structs-String.html#v:stringUp"
})
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveStringMethod (t :: Symbol) (o :: DK.Type) :: DK.Type 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 "copy" o = StringCopyMethodInfo
ResolveStringMethod "down" o = StringDownMethodInfo
ResolveStringMethod "equal" o = StringEqualMethodInfo
ResolveStringMethod "erase" o = StringEraseMethodInfo
ResolveStringMethod "free" o = StringFreeMethodInfo
ResolveStringMethod "freeAndSteal" o = StringFreeAndStealMethodInfo
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 "replace" o = StringReplaceMethodInfo
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.OverloadedMethod info String p) => OL.IsLabel t (String -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveStringMethod t String, O.OverloadedMethod info String p, R.HasField t String p) => R.HasField t String p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveStringMethod t String, O.OverloadedMethodInfo info String) => OL.IsLabel t (O.MethodProxy info String) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif