{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Json.Objects.Builder
(
Builder(..) ,
IsBuilder ,
toBuilder ,
#if defined(ENABLE_OVERLOADING)
ResolveBuilderMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
BuilderAddBooleanValueMethodInfo ,
#endif
builderAddBooleanValue ,
#if defined(ENABLE_OVERLOADING)
BuilderAddDoubleValueMethodInfo ,
#endif
builderAddDoubleValue ,
#if defined(ENABLE_OVERLOADING)
BuilderAddIntValueMethodInfo ,
#endif
builderAddIntValue ,
#if defined(ENABLE_OVERLOADING)
BuilderAddNullValueMethodInfo ,
#endif
builderAddNullValue ,
#if defined(ENABLE_OVERLOADING)
BuilderAddStringValueMethodInfo ,
#endif
builderAddStringValue ,
#if defined(ENABLE_OVERLOADING)
BuilderAddValueMethodInfo ,
#endif
builderAddValue ,
#if defined(ENABLE_OVERLOADING)
BuilderBeginArrayMethodInfo ,
#endif
builderBeginArray ,
#if defined(ENABLE_OVERLOADING)
BuilderBeginObjectMethodInfo ,
#endif
builderBeginObject ,
#if defined(ENABLE_OVERLOADING)
BuilderEndArrayMethodInfo ,
#endif
builderEndArray ,
#if defined(ENABLE_OVERLOADING)
BuilderEndObjectMethodInfo ,
#endif
builderEndObject ,
#if defined(ENABLE_OVERLOADING)
BuilderGetRootMethodInfo ,
#endif
builderGetRoot ,
builderNew ,
builderNewImmutable ,
#if defined(ENABLE_OVERLOADING)
BuilderResetMethodInfo ,
#endif
builderReset ,
#if defined(ENABLE_OVERLOADING)
BuilderSetMemberNameMethodInfo ,
#endif
builderSetMemberName ,
#if defined(ENABLE_OVERLOADING)
BuilderImmutablePropertyInfo ,
#endif
#if defined(ENABLE_OVERLOADING)
builderImmutable ,
#endif
constructBuilderImmutable ,
getBuilderImmutable ,
) 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.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.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Json.Structs.Node as Json.Node
newtype Builder = Builder (SP.ManagedPtr Builder)
deriving (Builder -> Builder -> Bool
(Builder -> Builder -> Bool)
-> (Builder -> Builder -> Bool) -> Eq Builder
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Builder -> Builder -> Bool
== :: Builder -> Builder -> Bool
$c/= :: Builder -> Builder -> Bool
/= :: Builder -> Builder -> Bool
Eq)
instance SP.ManagedPtrNewtype Builder where
toManagedPtr :: Builder -> ManagedPtr Builder
toManagedPtr (Builder ManagedPtr Builder
p) = ManagedPtr Builder
p
foreign import ccall "json_builder_get_type"
c_json_builder_get_type :: IO B.Types.GType
instance B.Types.TypedObject Builder where
glibType :: IO GType
glibType = IO GType
c_json_builder_get_type
instance B.Types.GObject Builder
class (SP.GObject o, O.IsDescendantOf Builder o) => IsBuilder o
instance (SP.GObject o, O.IsDescendantOf Builder o) => IsBuilder o
instance O.HasParentTypes Builder
type instance O.ParentTypes Builder = '[GObject.Object.Object]
toBuilder :: (MIO.MonadIO m, IsBuilder o) => o -> m Builder
toBuilder :: forall (m :: * -> *) o. (MonadIO m, IsBuilder o) => o -> m Builder
toBuilder = IO Builder -> m Builder
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Builder -> m Builder) -> (o -> IO Builder) -> o -> m Builder
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr Builder -> Builder) -> o -> IO Builder
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr Builder -> Builder
Builder
instance B.GValue.IsGValue (Maybe Builder) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_json_builder_get_type
gvalueSet_ :: Ptr GValue -> Maybe Builder -> IO ()
gvalueSet_ Ptr GValue
gv Maybe Builder
P.Nothing = Ptr GValue -> Ptr Builder -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr Builder
forall a. Ptr a
FP.nullPtr :: FP.Ptr Builder)
gvalueSet_ Ptr GValue
gv (P.Just Builder
obj) = Builder -> (Ptr Builder -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Builder
obj (Ptr GValue -> Ptr Builder -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe Builder)
gvalueGet_ Ptr GValue
gv = do
Ptr Builder
ptr <- Ptr GValue -> IO (Ptr Builder)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr Builder)
if Ptr Builder
ptr Ptr Builder -> Ptr Builder -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr Builder
forall a. Ptr a
FP.nullPtr
then Builder -> Maybe Builder
forall a. a -> Maybe a
P.Just (Builder -> Maybe Builder) -> IO Builder -> IO (Maybe Builder)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr Builder -> Builder) -> Ptr Builder -> IO Builder
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr Builder -> Builder
Builder Ptr Builder
ptr
else Maybe Builder -> IO (Maybe Builder)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Builder
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveBuilderMethod (t :: Symbol) (o :: *) :: * where
ResolveBuilderMethod "addBooleanValue" o = BuilderAddBooleanValueMethodInfo
ResolveBuilderMethod "addDoubleValue" o = BuilderAddDoubleValueMethodInfo
ResolveBuilderMethod "addIntValue" o = BuilderAddIntValueMethodInfo
ResolveBuilderMethod "addNullValue" o = BuilderAddNullValueMethodInfo
ResolveBuilderMethod "addStringValue" o = BuilderAddStringValueMethodInfo
ResolveBuilderMethod "addValue" o = BuilderAddValueMethodInfo
ResolveBuilderMethod "beginArray" o = BuilderBeginArrayMethodInfo
ResolveBuilderMethod "beginObject" o = BuilderBeginObjectMethodInfo
ResolveBuilderMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveBuilderMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveBuilderMethod "endArray" o = BuilderEndArrayMethodInfo
ResolveBuilderMethod "endObject" o = BuilderEndObjectMethodInfo
ResolveBuilderMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveBuilderMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveBuilderMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveBuilderMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveBuilderMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveBuilderMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveBuilderMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveBuilderMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveBuilderMethod "reset" o = BuilderResetMethodInfo
ResolveBuilderMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveBuilderMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveBuilderMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveBuilderMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveBuilderMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveBuilderMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveBuilderMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveBuilderMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveBuilderMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveBuilderMethod "getRoot" o = BuilderGetRootMethodInfo
ResolveBuilderMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveBuilderMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveBuilderMethod "setMemberName" o = BuilderSetMemberNameMethodInfo
ResolveBuilderMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveBuilderMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveBuilderMethod t Builder, O.OverloadedMethod info Builder p) => OL.IsLabel t (Builder -> 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 ~ ResolveBuilderMethod t Builder, O.OverloadedMethod info Builder p, R.HasField t Builder p) => R.HasField t Builder p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveBuilderMethod t Builder, O.OverloadedMethodInfo info Builder) => OL.IsLabel t (O.MethodProxy info Builder) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
getBuilderImmutable :: (MonadIO m, IsBuilder o) => o -> m Bool
getBuilderImmutable :: forall (m :: * -> *) o. (MonadIO m, IsBuilder o) => o -> m Bool
getBuilderImmutable o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"immutable"
constructBuilderImmutable :: (IsBuilder o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructBuilderImmutable :: forall o (m :: * -> *).
(IsBuilder o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructBuilderImmutable Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"immutable" Bool
val
#if defined(ENABLE_OVERLOADING)
data BuilderImmutablePropertyInfo
instance AttrInfo BuilderImmutablePropertyInfo where
type AttrAllowedOps BuilderImmutablePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrBaseTypeConstraint BuilderImmutablePropertyInfo = IsBuilder
type AttrSetTypeConstraint BuilderImmutablePropertyInfo = (~) Bool
type AttrTransferTypeConstraint BuilderImmutablePropertyInfo = (~) Bool
type AttrTransferType BuilderImmutablePropertyInfo = Bool
type AttrGetType BuilderImmutablePropertyInfo = Bool
type AttrLabel BuilderImmutablePropertyInfo = "immutable"
type AttrOrigin BuilderImmutablePropertyInfo = Builder
attrGet = getBuilderImmutable
attrSet = undefined
attrTransfer _ v = do
return v
attrConstruct = constructBuilderImmutable
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Json.Objects.Builder.immutable"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-json-1.0.3/docs/GI-Json-Objects-Builder.html#g:attr:immutable"
})
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Builder
type instance O.AttributeList Builder = BuilderAttributeList
type BuilderAttributeList = ('[ '("immutable", BuilderImmutablePropertyInfo)] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
builderImmutable :: AttrLabelProxy "immutable"
builderImmutable = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList Builder = BuilderSignalList
type BuilderSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "json_builder_new" json_builder_new ::
IO (Ptr Builder)
builderNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
m Builder
builderNew :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m Builder
builderNew = IO Builder -> m Builder
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Builder -> m Builder) -> IO Builder -> m Builder
forall a b. (a -> b) -> a -> b
$ do
Ptr Builder
result <- IO (Ptr Builder)
json_builder_new
Text -> Ptr Builder -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"builderNew" Ptr Builder
result
Builder
result' <- ((ManagedPtr Builder -> Builder) -> Ptr Builder -> IO Builder
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Builder -> Builder
Builder) Ptr Builder
result
Builder -> IO Builder
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Builder
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "json_builder_new_immutable" json_builder_new_immutable ::
IO (Ptr Builder)
builderNewImmutable ::
(B.CallStack.HasCallStack, MonadIO m) =>
m Builder
builderNewImmutable :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m Builder
builderNewImmutable = IO Builder -> m Builder
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Builder -> m Builder) -> IO Builder -> m Builder
forall a b. (a -> b) -> a -> b
$ do
Ptr Builder
result <- IO (Ptr Builder)
json_builder_new_immutable
Text -> Ptr Builder -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"builderNewImmutable" Ptr Builder
result
Builder
result' <- ((ManagedPtr Builder -> Builder) -> Ptr Builder -> IO Builder
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Builder -> Builder
Builder) Ptr Builder
result
Builder -> IO Builder
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Builder
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "json_builder_add_boolean_value" json_builder_add_boolean_value ::
Ptr Builder ->
CInt ->
IO (Ptr Builder)
builderAddBooleanValue ::
(B.CallStack.HasCallStack, MonadIO m, IsBuilder a) =>
a
-> Bool
-> m (Maybe Builder)
builderAddBooleanValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBuilder a) =>
a -> Bool -> m (Maybe Builder)
builderAddBooleanValue a
builder Bool
value = IO (Maybe Builder) -> m (Maybe Builder)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Builder) -> m (Maybe Builder))
-> IO (Maybe Builder) -> m (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ do
Ptr Builder
builder' <- a -> IO (Ptr Builder)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
builder
let value' :: CInt
value' = (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
value
Ptr Builder
result <- Ptr Builder -> CInt -> IO (Ptr Builder)
json_builder_add_boolean_value Ptr Builder
builder' CInt
value'
Maybe Builder
maybeResult <- Ptr Builder -> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Builder
result ((Ptr Builder -> IO Builder) -> IO (Maybe Builder))
-> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ \Ptr Builder
result' -> do
Builder
result'' <- ((ManagedPtr Builder -> Builder) -> Ptr Builder -> IO Builder
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Builder -> Builder
Builder) Ptr Builder
result'
Builder -> IO Builder
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Builder
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
builder
Maybe Builder -> IO (Maybe Builder)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Builder
maybeResult
#if defined(ENABLE_OVERLOADING)
data BuilderAddBooleanValueMethodInfo
instance (signature ~ (Bool -> m (Maybe Builder)), MonadIO m, IsBuilder a) => O.OverloadedMethod BuilderAddBooleanValueMethodInfo a signature where
overloadedMethod = builderAddBooleanValue
instance O.OverloadedMethodInfo BuilderAddBooleanValueMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Json.Objects.Builder.builderAddBooleanValue",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-json-1.0.3/docs/GI-Json-Objects-Builder.html#v:builderAddBooleanValue"
})
#endif
foreign import ccall "json_builder_add_double_value" json_builder_add_double_value ::
Ptr Builder ->
CDouble ->
IO (Ptr Builder)
builderAddDoubleValue ::
(B.CallStack.HasCallStack, MonadIO m, IsBuilder a) =>
a
-> Double
-> m (Maybe Builder)
builderAddDoubleValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBuilder a) =>
a -> Double -> m (Maybe Builder)
builderAddDoubleValue a
builder Double
value = IO (Maybe Builder) -> m (Maybe Builder)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Builder) -> m (Maybe Builder))
-> IO (Maybe Builder) -> m (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ do
Ptr Builder
builder' <- a -> IO (Ptr Builder)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
builder
let value' :: CDouble
value' = Double -> CDouble
forall a b. (Real a, Fractional b) => a -> b
realToFrac Double
value
Ptr Builder
result <- Ptr Builder -> CDouble -> IO (Ptr Builder)
json_builder_add_double_value Ptr Builder
builder' CDouble
value'
Maybe Builder
maybeResult <- Ptr Builder -> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Builder
result ((Ptr Builder -> IO Builder) -> IO (Maybe Builder))
-> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ \Ptr Builder
result' -> do
Builder
result'' <- ((ManagedPtr Builder -> Builder) -> Ptr Builder -> IO Builder
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Builder -> Builder
Builder) Ptr Builder
result'
Builder -> IO Builder
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Builder
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
builder
Maybe Builder -> IO (Maybe Builder)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Builder
maybeResult
#if defined(ENABLE_OVERLOADING)
data BuilderAddDoubleValueMethodInfo
instance (signature ~ (Double -> m (Maybe Builder)), MonadIO m, IsBuilder a) => O.OverloadedMethod BuilderAddDoubleValueMethodInfo a signature where
overloadedMethod = builderAddDoubleValue
instance O.OverloadedMethodInfo BuilderAddDoubleValueMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Json.Objects.Builder.builderAddDoubleValue",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-json-1.0.3/docs/GI-Json-Objects-Builder.html#v:builderAddDoubleValue"
})
#endif
foreign import ccall "json_builder_add_int_value" json_builder_add_int_value ::
Ptr Builder ->
Int64 ->
IO (Ptr Builder)
builderAddIntValue ::
(B.CallStack.HasCallStack, MonadIO m, IsBuilder a) =>
a
-> Int64
-> m (Maybe Builder)
builderAddIntValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBuilder a) =>
a -> Int64 -> m (Maybe Builder)
builderAddIntValue a
builder Int64
value = IO (Maybe Builder) -> m (Maybe Builder)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Builder) -> m (Maybe Builder))
-> IO (Maybe Builder) -> m (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ do
Ptr Builder
builder' <- a -> IO (Ptr Builder)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
builder
Ptr Builder
result <- Ptr Builder -> Int64 -> IO (Ptr Builder)
json_builder_add_int_value Ptr Builder
builder' Int64
value
Maybe Builder
maybeResult <- Ptr Builder -> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Builder
result ((Ptr Builder -> IO Builder) -> IO (Maybe Builder))
-> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ \Ptr Builder
result' -> do
Builder
result'' <- ((ManagedPtr Builder -> Builder) -> Ptr Builder -> IO Builder
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Builder -> Builder
Builder) Ptr Builder
result'
Builder -> IO Builder
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Builder
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
builder
Maybe Builder -> IO (Maybe Builder)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Builder
maybeResult
#if defined(ENABLE_OVERLOADING)
data BuilderAddIntValueMethodInfo
instance (signature ~ (Int64 -> m (Maybe Builder)), MonadIO m, IsBuilder a) => O.OverloadedMethod BuilderAddIntValueMethodInfo a signature where
overloadedMethod = builderAddIntValue
instance O.OverloadedMethodInfo BuilderAddIntValueMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Json.Objects.Builder.builderAddIntValue",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-json-1.0.3/docs/GI-Json-Objects-Builder.html#v:builderAddIntValue"
})
#endif
foreign import ccall "json_builder_add_null_value" json_builder_add_null_value ::
Ptr Builder ->
IO (Ptr Builder)
builderAddNullValue ::
(B.CallStack.HasCallStack, MonadIO m, IsBuilder a) =>
a
-> m (Maybe Builder)
builderAddNullValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBuilder a) =>
a -> m (Maybe Builder)
builderAddNullValue a
builder = IO (Maybe Builder) -> m (Maybe Builder)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Builder) -> m (Maybe Builder))
-> IO (Maybe Builder) -> m (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ do
Ptr Builder
builder' <- a -> IO (Ptr Builder)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
builder
Ptr Builder
result <- Ptr Builder -> IO (Ptr Builder)
json_builder_add_null_value Ptr Builder
builder'
Maybe Builder
maybeResult <- Ptr Builder -> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Builder
result ((Ptr Builder -> IO Builder) -> IO (Maybe Builder))
-> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ \Ptr Builder
result' -> do
Builder
result'' <- ((ManagedPtr Builder -> Builder) -> Ptr Builder -> IO Builder
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Builder -> Builder
Builder) Ptr Builder
result'
Builder -> IO Builder
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Builder
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
builder
Maybe Builder -> IO (Maybe Builder)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Builder
maybeResult
#if defined(ENABLE_OVERLOADING)
data BuilderAddNullValueMethodInfo
instance (signature ~ (m (Maybe Builder)), MonadIO m, IsBuilder a) => O.OverloadedMethod BuilderAddNullValueMethodInfo a signature where
overloadedMethod = builderAddNullValue
instance O.OverloadedMethodInfo BuilderAddNullValueMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Json.Objects.Builder.builderAddNullValue",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-json-1.0.3/docs/GI-Json-Objects-Builder.html#v:builderAddNullValue"
})
#endif
foreign import ccall "json_builder_add_string_value" json_builder_add_string_value ::
Ptr Builder ->
CString ->
IO (Ptr Builder)
builderAddStringValue ::
(B.CallStack.HasCallStack, MonadIO m, IsBuilder a) =>
a
-> T.Text
-> m (Maybe Builder)
builderAddStringValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBuilder a) =>
a -> Text -> m (Maybe Builder)
builderAddStringValue a
builder Text
value = IO (Maybe Builder) -> m (Maybe Builder)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Builder) -> m (Maybe Builder))
-> IO (Maybe Builder) -> m (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ do
Ptr Builder
builder' <- a -> IO (Ptr Builder)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
builder
CString
value' <- Text -> IO CString
textToCString Text
value
Ptr Builder
result <- Ptr Builder -> CString -> IO (Ptr Builder)
json_builder_add_string_value Ptr Builder
builder' CString
value'
Maybe Builder
maybeResult <- Ptr Builder -> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Builder
result ((Ptr Builder -> IO Builder) -> IO (Maybe Builder))
-> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ \Ptr Builder
result' -> do
Builder
result'' <- ((ManagedPtr Builder -> Builder) -> Ptr Builder -> IO Builder
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Builder -> Builder
Builder) Ptr Builder
result'
Builder -> IO Builder
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Builder
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
builder
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
value'
Maybe Builder -> IO (Maybe Builder)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Builder
maybeResult
#if defined(ENABLE_OVERLOADING)
data BuilderAddStringValueMethodInfo
instance (signature ~ (T.Text -> m (Maybe Builder)), MonadIO m, IsBuilder a) => O.OverloadedMethod BuilderAddStringValueMethodInfo a signature where
overloadedMethod = builderAddStringValue
instance O.OverloadedMethodInfo BuilderAddStringValueMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Json.Objects.Builder.builderAddStringValue",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-json-1.0.3/docs/GI-Json-Objects-Builder.html#v:builderAddStringValue"
})
#endif
foreign import ccall "json_builder_add_value" json_builder_add_value ::
Ptr Builder ->
Ptr Json.Node.Node ->
IO (Ptr Builder)
builderAddValue ::
(B.CallStack.HasCallStack, MonadIO m, IsBuilder a) =>
a
-> Json.Node.Node
-> m (Maybe Builder)
builderAddValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBuilder a) =>
a -> Node -> m (Maybe Builder)
builderAddValue a
builder Node
node = IO (Maybe Builder) -> m (Maybe Builder)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Builder) -> m (Maybe Builder))
-> IO (Maybe Builder) -> m (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ do
Ptr Builder
builder' <- a -> IO (Ptr Builder)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
builder
Ptr Node
node' <- Node -> IO (Ptr Node)
forall a. (HasCallStack, GBoxed a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed Node
node
Ptr Builder
result <- Ptr Builder -> Ptr Node -> IO (Ptr Builder)
json_builder_add_value Ptr Builder
builder' Ptr Node
node'
Maybe Builder
maybeResult <- Ptr Builder -> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Builder
result ((Ptr Builder -> IO Builder) -> IO (Maybe Builder))
-> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ \Ptr Builder
result' -> do
Builder
result'' <- ((ManagedPtr Builder -> Builder) -> Ptr Builder -> IO Builder
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Builder -> Builder
Builder) Ptr Builder
result'
Builder -> IO Builder
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Builder
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
builder
Node -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Node
node
Maybe Builder -> IO (Maybe Builder)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Builder
maybeResult
#if defined(ENABLE_OVERLOADING)
data BuilderAddValueMethodInfo
instance (signature ~ (Json.Node.Node -> m (Maybe Builder)), MonadIO m, IsBuilder a) => O.OverloadedMethod BuilderAddValueMethodInfo a signature where
overloadedMethod = builderAddValue
instance O.OverloadedMethodInfo BuilderAddValueMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Json.Objects.Builder.builderAddValue",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-json-1.0.3/docs/GI-Json-Objects-Builder.html#v:builderAddValue"
})
#endif
foreign import ccall "json_builder_begin_array" json_builder_begin_array ::
Ptr Builder ->
IO (Ptr Builder)
builderBeginArray ::
(B.CallStack.HasCallStack, MonadIO m, IsBuilder a) =>
a
-> m (Maybe Builder)
builderBeginArray :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBuilder a) =>
a -> m (Maybe Builder)
builderBeginArray a
builder = IO (Maybe Builder) -> m (Maybe Builder)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Builder) -> m (Maybe Builder))
-> IO (Maybe Builder) -> m (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ do
Ptr Builder
builder' <- a -> IO (Ptr Builder)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
builder
Ptr Builder
result <- Ptr Builder -> IO (Ptr Builder)
json_builder_begin_array Ptr Builder
builder'
Maybe Builder
maybeResult <- Ptr Builder -> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Builder
result ((Ptr Builder -> IO Builder) -> IO (Maybe Builder))
-> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ \Ptr Builder
result' -> do
Builder
result'' <- ((ManagedPtr Builder -> Builder) -> Ptr Builder -> IO Builder
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Builder -> Builder
Builder) Ptr Builder
result'
Builder -> IO Builder
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Builder
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
builder
Maybe Builder -> IO (Maybe Builder)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Builder
maybeResult
#if defined(ENABLE_OVERLOADING)
data BuilderBeginArrayMethodInfo
instance (signature ~ (m (Maybe Builder)), MonadIO m, IsBuilder a) => O.OverloadedMethod BuilderBeginArrayMethodInfo a signature where
overloadedMethod = builderBeginArray
instance O.OverloadedMethodInfo BuilderBeginArrayMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Json.Objects.Builder.builderBeginArray",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-json-1.0.3/docs/GI-Json-Objects-Builder.html#v:builderBeginArray"
})
#endif
foreign import ccall "json_builder_begin_object" json_builder_begin_object ::
Ptr Builder ->
IO (Ptr Builder)
builderBeginObject ::
(B.CallStack.HasCallStack, MonadIO m, IsBuilder a) =>
a
-> m (Maybe Builder)
builderBeginObject :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBuilder a) =>
a -> m (Maybe Builder)
builderBeginObject a
builder = IO (Maybe Builder) -> m (Maybe Builder)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Builder) -> m (Maybe Builder))
-> IO (Maybe Builder) -> m (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ do
Ptr Builder
builder' <- a -> IO (Ptr Builder)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
builder
Ptr Builder
result <- Ptr Builder -> IO (Ptr Builder)
json_builder_begin_object Ptr Builder
builder'
Maybe Builder
maybeResult <- Ptr Builder -> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Builder
result ((Ptr Builder -> IO Builder) -> IO (Maybe Builder))
-> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ \Ptr Builder
result' -> do
Builder
result'' <- ((ManagedPtr Builder -> Builder) -> Ptr Builder -> IO Builder
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Builder -> Builder
Builder) Ptr Builder
result'
Builder -> IO Builder
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Builder
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
builder
Maybe Builder -> IO (Maybe Builder)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Builder
maybeResult
#if defined(ENABLE_OVERLOADING)
data BuilderBeginObjectMethodInfo
instance (signature ~ (m (Maybe Builder)), MonadIO m, IsBuilder a) => O.OverloadedMethod BuilderBeginObjectMethodInfo a signature where
overloadedMethod = builderBeginObject
instance O.OverloadedMethodInfo BuilderBeginObjectMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Json.Objects.Builder.builderBeginObject",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-json-1.0.3/docs/GI-Json-Objects-Builder.html#v:builderBeginObject"
})
#endif
foreign import ccall "json_builder_end_array" json_builder_end_array ::
Ptr Builder ->
IO (Ptr Builder)
builderEndArray ::
(B.CallStack.HasCallStack, MonadIO m, IsBuilder a) =>
a
-> m (Maybe Builder)
builderEndArray :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBuilder a) =>
a -> m (Maybe Builder)
builderEndArray a
builder = IO (Maybe Builder) -> m (Maybe Builder)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Builder) -> m (Maybe Builder))
-> IO (Maybe Builder) -> m (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ do
Ptr Builder
builder' <- a -> IO (Ptr Builder)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
builder
Ptr Builder
result <- Ptr Builder -> IO (Ptr Builder)
json_builder_end_array Ptr Builder
builder'
Maybe Builder
maybeResult <- Ptr Builder -> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Builder
result ((Ptr Builder -> IO Builder) -> IO (Maybe Builder))
-> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ \Ptr Builder
result' -> do
Builder
result'' <- ((ManagedPtr Builder -> Builder) -> Ptr Builder -> IO Builder
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Builder -> Builder
Builder) Ptr Builder
result'
Builder -> IO Builder
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Builder
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
builder
Maybe Builder -> IO (Maybe Builder)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Builder
maybeResult
#if defined(ENABLE_OVERLOADING)
data BuilderEndArrayMethodInfo
instance (signature ~ (m (Maybe Builder)), MonadIO m, IsBuilder a) => O.OverloadedMethod BuilderEndArrayMethodInfo a signature where
overloadedMethod = builderEndArray
instance O.OverloadedMethodInfo BuilderEndArrayMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Json.Objects.Builder.builderEndArray",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-json-1.0.3/docs/GI-Json-Objects-Builder.html#v:builderEndArray"
})
#endif
foreign import ccall "json_builder_end_object" json_builder_end_object ::
Ptr Builder ->
IO (Ptr Builder)
builderEndObject ::
(B.CallStack.HasCallStack, MonadIO m, IsBuilder a) =>
a
-> m (Maybe Builder)
builderEndObject :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBuilder a) =>
a -> m (Maybe Builder)
builderEndObject a
builder = IO (Maybe Builder) -> m (Maybe Builder)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Builder) -> m (Maybe Builder))
-> IO (Maybe Builder) -> m (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ do
Ptr Builder
builder' <- a -> IO (Ptr Builder)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
builder
Ptr Builder
result <- Ptr Builder -> IO (Ptr Builder)
json_builder_end_object Ptr Builder
builder'
Maybe Builder
maybeResult <- Ptr Builder -> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Builder
result ((Ptr Builder -> IO Builder) -> IO (Maybe Builder))
-> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ \Ptr Builder
result' -> do
Builder
result'' <- ((ManagedPtr Builder -> Builder) -> Ptr Builder -> IO Builder
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Builder -> Builder
Builder) Ptr Builder
result'
Builder -> IO Builder
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Builder
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
builder
Maybe Builder -> IO (Maybe Builder)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Builder
maybeResult
#if defined(ENABLE_OVERLOADING)
data BuilderEndObjectMethodInfo
instance (signature ~ (m (Maybe Builder)), MonadIO m, IsBuilder a) => O.OverloadedMethod BuilderEndObjectMethodInfo a signature where
overloadedMethod = builderEndObject
instance O.OverloadedMethodInfo BuilderEndObjectMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Json.Objects.Builder.builderEndObject",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-json-1.0.3/docs/GI-Json-Objects-Builder.html#v:builderEndObject"
})
#endif
foreign import ccall "json_builder_get_root" json_builder_get_root ::
Ptr Builder ->
IO (Ptr Json.Node.Node)
builderGetRoot ::
(B.CallStack.HasCallStack, MonadIO m, IsBuilder a) =>
a
-> m (Maybe Json.Node.Node)
builderGetRoot :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBuilder a) =>
a -> m (Maybe Node)
builderGetRoot a
builder = IO (Maybe Node) -> m (Maybe Node)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Node) -> m (Maybe Node))
-> IO (Maybe Node) -> m (Maybe Node)
forall a b. (a -> b) -> a -> b
$ do
Ptr Builder
builder' <- a -> IO (Ptr Builder)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
builder
Ptr Node
result <- Ptr Builder -> IO (Ptr Node)
json_builder_get_root Ptr Builder
builder'
Maybe Node
maybeResult <- Ptr Node -> (Ptr Node -> IO Node) -> IO (Maybe Node)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Node
result ((Ptr Node -> IO Node) -> IO (Maybe Node))
-> (Ptr Node -> IO Node) -> IO (Maybe Node)
forall a b. (a -> b) -> a -> b
$ \Ptr Node
result' -> do
Node
result'' <- ((ManagedPtr Node -> Node) -> Ptr Node -> IO Node
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Node -> Node
Json.Node.Node) Ptr Node
result'
Node -> IO Node
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Node
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
builder
Maybe Node -> IO (Maybe Node)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Node
maybeResult
#if defined(ENABLE_OVERLOADING)
data BuilderGetRootMethodInfo
instance (signature ~ (m (Maybe Json.Node.Node)), MonadIO m, IsBuilder a) => O.OverloadedMethod BuilderGetRootMethodInfo a signature where
overloadedMethod = builderGetRoot
instance O.OverloadedMethodInfo BuilderGetRootMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Json.Objects.Builder.builderGetRoot",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-json-1.0.3/docs/GI-Json-Objects-Builder.html#v:builderGetRoot"
})
#endif
foreign import ccall "json_builder_reset" json_builder_reset ::
Ptr Builder ->
IO ()
builderReset ::
(B.CallStack.HasCallStack, MonadIO m, IsBuilder a) =>
a
-> m ()
builderReset :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBuilder a) =>
a -> m ()
builderReset a
builder = 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
Ptr Builder
builder' <- a -> IO (Ptr Builder)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
builder
Ptr Builder -> IO ()
json_builder_reset Ptr Builder
builder'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
builder
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data BuilderResetMethodInfo
instance (signature ~ (m ()), MonadIO m, IsBuilder a) => O.OverloadedMethod BuilderResetMethodInfo a signature where
overloadedMethod = builderReset
instance O.OverloadedMethodInfo BuilderResetMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Json.Objects.Builder.builderReset",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-json-1.0.3/docs/GI-Json-Objects-Builder.html#v:builderReset"
})
#endif
foreign import ccall "json_builder_set_member_name" json_builder_set_member_name ::
Ptr Builder ->
CString ->
IO (Ptr Builder)
builderSetMemberName ::
(B.CallStack.HasCallStack, MonadIO m, IsBuilder a) =>
a
-> T.Text
-> m (Maybe Builder)
builderSetMemberName :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBuilder a) =>
a -> Text -> m (Maybe Builder)
builderSetMemberName a
builder Text
memberName = IO (Maybe Builder) -> m (Maybe Builder)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Builder) -> m (Maybe Builder))
-> IO (Maybe Builder) -> m (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ do
Ptr Builder
builder' <- a -> IO (Ptr Builder)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
builder
CString
memberName' <- Text -> IO CString
textToCString Text
memberName
Ptr Builder
result <- Ptr Builder -> CString -> IO (Ptr Builder)
json_builder_set_member_name Ptr Builder
builder' CString
memberName'
Maybe Builder
maybeResult <- Ptr Builder -> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Builder
result ((Ptr Builder -> IO Builder) -> IO (Maybe Builder))
-> (Ptr Builder -> IO Builder) -> IO (Maybe Builder)
forall a b. (a -> b) -> a -> b
$ \Ptr Builder
result' -> do
Builder
result'' <- ((ManagedPtr Builder -> Builder) -> Ptr Builder -> IO Builder
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Builder -> Builder
Builder) Ptr Builder
result'
Builder -> IO Builder
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Builder
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
builder
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
memberName'
Maybe Builder -> IO (Maybe Builder)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Builder
maybeResult
#if defined(ENABLE_OVERLOADING)
data BuilderSetMemberNameMethodInfo
instance (signature ~ (T.Text -> m (Maybe Builder)), MonadIO m, IsBuilder a) => O.OverloadedMethod BuilderSetMemberNameMethodInfo a signature where
overloadedMethod = builderSetMemberName
instance O.OverloadedMethodInfo BuilderSetMemberNameMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Json.Objects.Builder.builderSetMemberName",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-json-1.0.3/docs/GI-Json-Objects-Builder.html#v:builderSetMemberName"
})
#endif