#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.JavaScriptCore.Functions
(
getMajorVersion ,
getMicroVersion ,
getMinorVersion ,
optionsForeach ,
optionsGetBoolean ,
optionsGetDouble ,
optionsGetInt ,
optionsGetOptionGroup ,
optionsGetRangeString ,
optionsGetSize ,
optionsGetString ,
optionsGetUint ,
optionsSetBoolean ,
optionsSetDouble ,
optionsSetInt ,
optionsSetRangeString ,
optionsSetSize ,
optionsSetString ,
optionsSetUint ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R
import qualified GI.GLib.Structs.OptionGroup as GLib.OptionGroup
import qualified GI.JavaScriptCore.Callbacks as JavaScriptCore.Callbacks
foreign import ccall "jsc_options_set_uint" jsc_options_set_uint ::
CString ->
Word32 ->
IO CInt
optionsSetUint ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> Word32
-> m Bool
optionsSetUint :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> Word32 -> m Bool
optionsSetUint Text
option Word32
value = 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
CString
option' <- Text -> IO CString
textToCString Text
option
CInt
result <- CString -> Word32 -> IO CInt
jsc_options_set_uint CString
option' Word32
value
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
option'
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
foreign import ccall "jsc_options_set_string" jsc_options_set_string ::
CString ->
CString ->
IO CInt
optionsSetString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> T.Text
-> m Bool
optionsSetString :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> Text -> m Bool
optionsSetString Text
option Text
value = 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
CString
option' <- Text -> IO CString
textToCString Text
option
CString
value' <- Text -> IO CString
textToCString Text
value
CInt
result <- CString -> CString -> IO CInt
jsc_options_set_string CString
option' CString
value'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
option'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
value'
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
foreign import ccall "jsc_options_set_size" jsc_options_set_size ::
CString ->
Word64 ->
IO CInt
optionsSetSize ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> Word64
-> m Bool
optionsSetSize :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> Word64 -> m Bool
optionsSetSize Text
option Word64
value = 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
CString
option' <- Text -> IO CString
textToCString Text
option
CInt
result <- CString -> Word64 -> IO CInt
jsc_options_set_size CString
option' Word64
value
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
option'
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
foreign import ccall "jsc_options_set_range_string" jsc_options_set_range_string ::
CString ->
CString ->
IO CInt
optionsSetRangeString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> T.Text
-> m Bool
optionsSetRangeString :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> Text -> m Bool
optionsSetRangeString Text
option Text
value = 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
CString
option' <- Text -> IO CString
textToCString Text
option
CString
value' <- Text -> IO CString
textToCString Text
value
CInt
result <- CString -> CString -> IO CInt
jsc_options_set_range_string CString
option' CString
value'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
option'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
value'
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
foreign import ccall "jsc_options_set_int" jsc_options_set_int ::
CString ->
Int32 ->
IO CInt
optionsSetInt ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> Int32
-> m Bool
optionsSetInt :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> Int32 -> m Bool
optionsSetInt Text
option Int32
value = 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
CString
option' <- Text -> IO CString
textToCString Text
option
CInt
result <- CString -> Int32 -> IO CInt
jsc_options_set_int CString
option' Int32
value
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
option'
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
foreign import ccall "jsc_options_set_double" jsc_options_set_double ::
CString ->
CDouble ->
IO CInt
optionsSetDouble ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> Double
-> m Bool
optionsSetDouble :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> Double -> m Bool
optionsSetDouble Text
option Double
value = 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
CString
option' <- Text -> IO CString
textToCString Text
option
let value' :: CDouble
value' = Double -> CDouble
forall a b. (Real a, Fractional b) => a -> b
realToFrac Double
value
CInt
result <- CString -> CDouble -> IO CInt
jsc_options_set_double CString
option' CDouble
value'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
option'
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
foreign import ccall "jsc_options_set_boolean" jsc_options_set_boolean ::
CString ->
CInt ->
IO CInt
optionsSetBoolean ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> Bool
-> m Bool
optionsSetBoolean :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> Bool -> m Bool
optionsSetBoolean Text
option Bool
value = 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
CString
option' <- Text -> IO CString
textToCString Text
option
let value' :: CInt
value' = (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
value
CInt
result <- CString -> CInt -> IO CInt
jsc_options_set_boolean CString
option' CInt
value'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
option'
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
foreign import ccall "jsc_options_get_uint" jsc_options_get_uint ::
CString ->
Ptr Word32 ->
IO CInt
optionsGetUint ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m ((Bool, Word32))
optionsGetUint :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> m (Bool, Word32)
optionsGetUint Text
option = IO (Bool, Word32) -> m (Bool, Word32)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Word32) -> m (Bool, Word32))
-> IO (Bool, Word32) -> m (Bool, Word32)
forall a b. (a -> b) -> a -> b
$ do
CString
option' <- Text -> IO CString
textToCString Text
option
Ptr Word32
value <- IO (Ptr Word32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Word32)
CInt
result <- CString -> Ptr Word32 -> IO CInt
jsc_options_get_uint CString
option' Ptr Word32
value
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
Word32
value' <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek Ptr Word32
value
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
option'
Ptr Word32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word32
value
(Bool, Word32) -> IO (Bool, Word32)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', Word32
value')
foreign import ccall "jsc_options_get_string" jsc_options_get_string ::
CString ->
Ptr CString ->
IO CInt
optionsGetString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m ((Bool, T.Text))
optionsGetString :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> m (Bool, Text)
optionsGetString Text
option = IO (Bool, Text) -> m (Bool, Text)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Text) -> m (Bool, Text))
-> IO (Bool, Text) -> m (Bool, Text)
forall a b. (a -> b) -> a -> b
$ do
CString
option' <- Text -> IO CString
textToCString Text
option
Ptr CString
value <- IO (Ptr CString)
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr CString)
CInt
result <- CString -> Ptr CString -> IO CInt
jsc_options_get_string CString
option' Ptr CString
value
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
CString
value' <- Ptr CString -> IO CString
forall a. Storable a => Ptr a -> IO a
peek Ptr CString
value
Text
value'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
value'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
value'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
option'
Ptr CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
value
(Bool, Text) -> IO (Bool, Text)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', Text
value'')
foreign import ccall "jsc_options_get_size" jsc_options_get_size ::
CString ->
Ptr Word64 ->
IO CInt
optionsGetSize ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m ((Bool, Word64))
optionsGetSize :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> m (Bool, Word64)
optionsGetSize Text
option = IO (Bool, Word64) -> m (Bool, Word64)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Word64) -> m (Bool, Word64))
-> IO (Bool, Word64) -> m (Bool, Word64)
forall a b. (a -> b) -> a -> b
$ do
CString
option' <- Text -> IO CString
textToCString Text
option
Ptr Word64
value <- IO (Ptr Word64)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Word64)
CInt
result <- CString -> Ptr Word64 -> IO CInt
jsc_options_get_size CString
option' Ptr Word64
value
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
Word64
value' <- Ptr Word64 -> IO Word64
forall a. Storable a => Ptr a -> IO a
peek Ptr Word64
value
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
option'
Ptr Word64 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word64
value
(Bool, Word64) -> IO (Bool, Word64)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', Word64
value')
foreign import ccall "jsc_options_get_range_string" jsc_options_get_range_string ::
CString ->
Ptr CString ->
IO CInt
optionsGetRangeString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m ((Bool, T.Text))
optionsGetRangeString :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> m (Bool, Text)
optionsGetRangeString Text
option = IO (Bool, Text) -> m (Bool, Text)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Text) -> m (Bool, Text))
-> IO (Bool, Text) -> m (Bool, Text)
forall a b. (a -> b) -> a -> b
$ do
CString
option' <- Text -> IO CString
textToCString Text
option
Ptr CString
value <- IO (Ptr CString)
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr CString)
CInt
result <- CString -> Ptr CString -> IO CInt
jsc_options_get_range_string CString
option' Ptr CString
value
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
CString
value' <- Ptr CString -> IO CString
forall a. Storable a => Ptr a -> IO a
peek Ptr CString
value
Text
value'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
value'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
value'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
option'
Ptr CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
value
(Bool, Text) -> IO (Bool, Text)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', Text
value'')
foreign import ccall "jsc_options_get_option_group" jsc_options_get_option_group ::
IO (Ptr GLib.OptionGroup.OptionGroup)
optionsGetOptionGroup ::
(B.CallStack.HasCallStack, MonadIO m) =>
m GLib.OptionGroup.OptionGroup
optionsGetOptionGroup :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m OptionGroup
optionsGetOptionGroup = IO OptionGroup -> m OptionGroup
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO OptionGroup -> m OptionGroup)
-> IO OptionGroup -> m OptionGroup
forall a b. (a -> b) -> a -> b
$ do
Ptr OptionGroup
result <- IO (Ptr OptionGroup)
jsc_options_get_option_group
Text -> Ptr OptionGroup -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"optionsGetOptionGroup" Ptr OptionGroup
result
OptionGroup
result' <- ((ManagedPtr OptionGroup -> OptionGroup)
-> Ptr OptionGroup -> IO OptionGroup
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr OptionGroup -> OptionGroup
GLib.OptionGroup.OptionGroup) Ptr OptionGroup
result
OptionGroup -> IO OptionGroup
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return OptionGroup
result'
foreign import ccall "jsc_options_get_int" jsc_options_get_int ::
CString ->
Ptr Int32 ->
IO CInt
optionsGetInt ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m ((Bool, Int32))
optionsGetInt :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> m (Bool, Int32)
optionsGetInt Text
option = IO (Bool, Int32) -> m (Bool, Int32)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Int32) -> m (Bool, Int32))
-> IO (Bool, Int32) -> m (Bool, Int32)
forall a b. (a -> b) -> a -> b
$ do
CString
option' <- Text -> IO CString
textToCString Text
option
Ptr Int32
value <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
CInt
result <- CString -> Ptr Int32 -> IO CInt
jsc_options_get_int CString
option' Ptr Int32
value
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
Int32
value' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
value
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
option'
Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
value
(Bool, Int32) -> IO (Bool, Int32)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', Int32
value')
foreign import ccall "jsc_options_get_double" jsc_options_get_double ::
CString ->
Ptr CDouble ->
IO CInt
optionsGetDouble ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m ((Bool, Double))
optionsGetDouble :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> m (Bool, Double)
optionsGetDouble Text
option = IO (Bool, Double) -> m (Bool, Double)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Double) -> m (Bool, Double))
-> IO (Bool, Double) -> m (Bool, Double)
forall a b. (a -> b) -> a -> b
$ do
CString
option' <- Text -> IO CString
textToCString Text
option
Ptr CDouble
value <- IO (Ptr CDouble)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr CDouble)
CInt
result <- CString -> Ptr CDouble -> IO CInt
jsc_options_get_double CString
option' Ptr CDouble
value
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
CDouble
value' <- Ptr CDouble -> IO CDouble
forall a. Storable a => Ptr a -> IO a
peek Ptr CDouble
value
let value'' :: Double
value'' = CDouble -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac CDouble
value'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
option'
Ptr CDouble -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CDouble
value
(Bool, Double) -> IO (Bool, Double)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', Double
value'')
foreign import ccall "jsc_options_get_boolean" jsc_options_get_boolean ::
CString ->
Ptr CInt ->
IO CInt
optionsGetBoolean ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m ((Bool, Bool))
optionsGetBoolean :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> m (Bool, Bool)
optionsGetBoolean Text
option = IO (Bool, Bool) -> m (Bool, Bool)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Bool) -> m (Bool, Bool))
-> IO (Bool, Bool) -> m (Bool, Bool)
forall a b. (a -> b) -> a -> b
$ do
CString
option' <- Text -> IO CString
textToCString Text
option
Ptr CInt
value <- IO (Ptr CInt)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr CInt)
CInt
result <- CString -> Ptr CInt -> IO CInt
jsc_options_get_boolean CString
option' Ptr CInt
value
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
CInt
value' <- Ptr CInt -> IO CInt
forall a. Storable a => Ptr a -> IO a
peek Ptr CInt
value
let value'' :: Bool
value'' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
value'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
option'
Ptr CInt -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CInt
value
(Bool, Bool) -> IO (Bool, Bool)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', Bool
value'')
foreign import ccall "jsc_options_foreach" jsc_options_foreach ::
FunPtr JavaScriptCore.Callbacks.C_OptionsFunc ->
Ptr () ->
IO ()
optionsForeach ::
(B.CallStack.HasCallStack, MonadIO m) =>
JavaScriptCore.Callbacks.OptionsFunc
-> m ()
optionsForeach :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
OptionsFunc -> m ()
optionsForeach OptionsFunc
function = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
FunPtr C_OptionsFunc
function' <- C_OptionsFunc -> IO (FunPtr C_OptionsFunc)
JavaScriptCore.Callbacks.mk_OptionsFunc (Maybe (Ptr (FunPtr C_OptionsFunc))
-> OptionsFunc_WithClosures -> C_OptionsFunc
JavaScriptCore.Callbacks.wrap_OptionsFunc Maybe (Ptr (FunPtr C_OptionsFunc))
forall a. Maybe a
Nothing (OptionsFunc -> OptionsFunc_WithClosures
JavaScriptCore.Callbacks.drop_closures_OptionsFunc OptionsFunc
function))
let userData :: Ptr a
userData = Ptr a
forall a. Ptr a
nullPtr
FunPtr C_OptionsFunc -> Ptr () -> IO ()
jsc_options_foreach FunPtr C_OptionsFunc
function' Ptr ()
forall a. Ptr a
userData
Ptr Any -> IO ()
forall a. Ptr a -> IO ()
safeFreeFunPtr (Ptr Any -> IO ()) -> Ptr Any -> IO ()
forall a b. (a -> b) -> a -> b
$ FunPtr C_OptionsFunc -> Ptr Any
forall a b. FunPtr a -> Ptr b
castFunPtrToPtr FunPtr C_OptionsFunc
function'
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
foreign import ccall "jsc_get_minor_version" jsc_get_minor_version ::
IO Word32
getMinorVersion ::
(B.CallStack.HasCallStack, MonadIO m) =>
m Word32
getMinorVersion :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m Word32
getMinorVersion = 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
Word32
result <- IO Word32
jsc_get_minor_version
Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result
foreign import ccall "jsc_get_micro_version" jsc_get_micro_version ::
IO Word32
getMicroVersion ::
(B.CallStack.HasCallStack, MonadIO m) =>
m Word32
getMicroVersion :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m Word32
getMicroVersion = 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
Word32
result <- IO Word32
jsc_get_micro_version
Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result
foreign import ccall "jsc_get_major_version" jsc_get_major_version ::
IO Word32
getMajorVersion ::
(B.CallStack.HasCallStack, MonadIO m) =>
m Word32
getMajorVersion :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m Word32
getMajorVersion = 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
Word32
result <- IO Word32
jsc_get_major_version
Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result