{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gst.Objects.FlagSet
(
FlagSet(..) ,
IsFlagSet ,
toFlagSet ,
#if defined(ENABLE_OVERLOADING)
ResolveFlagSetMethod ,
#endif
flagSetRegister ,
) 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
newtype FlagSet = FlagSet (SP.ManagedPtr FlagSet)
deriving (FlagSet -> FlagSet -> Bool
(FlagSet -> FlagSet -> Bool)
-> (FlagSet -> FlagSet -> Bool) -> Eq FlagSet
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FlagSet -> FlagSet -> Bool
== :: FlagSet -> FlagSet -> Bool
$c/= :: FlagSet -> FlagSet -> Bool
/= :: FlagSet -> FlagSet -> Bool
Eq)
instance SP.ManagedPtrNewtype FlagSet where
toManagedPtr :: FlagSet -> ManagedPtr FlagSet
toManagedPtr (FlagSet ManagedPtr FlagSet
p) = ManagedPtr FlagSet
p
foreign import ccall "gst_flagset_get_type"
c_gst_flagset_get_type :: IO B.Types.GType
instance B.Types.TypedObject FlagSet where
glibType :: IO GType
glibType = IO GType
c_gst_flagset_get_type
class (SP.BoxedPtr o, SP.TypedObject o, O.IsDescendantOf FlagSet o) => IsFlagSet o
instance (SP.BoxedPtr o, SP.TypedObject o, O.IsDescendantOf FlagSet o) => IsFlagSet o
instance O.HasParentTypes FlagSet
type instance O.ParentTypes FlagSet = '[]
toFlagSet :: (MIO.MonadIO m, IsFlagSet o) => o -> m FlagSet
toFlagSet :: forall (m :: * -> *) o. (MonadIO m, IsFlagSet o) => o -> m FlagSet
toFlagSet = IO FlagSet -> m FlagSet
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO FlagSet -> m FlagSet) -> (o -> IO FlagSet) -> o -> m FlagSet
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr FlagSet -> FlagSet) -> o -> IO FlagSet
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr FlagSet -> FlagSet
FlagSet
#if defined(ENABLE_OVERLOADING)
type family ResolveFlagSetMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveFlagSetMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveFlagSetMethod t FlagSet, O.OverloadedMethod info FlagSet p) => OL.IsLabel t (FlagSet -> 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 ~ ResolveFlagSetMethod t FlagSet, O.OverloadedMethod info FlagSet p, R.HasField t FlagSet p) => R.HasField t FlagSet p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveFlagSetMethod t FlagSet, O.OverloadedMethodInfo info FlagSet) => OL.IsLabel t (O.MethodProxy info FlagSet) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
instance BoxedPtr FlagSet where
boxedPtrCopy :: FlagSet -> IO FlagSet
boxedPtrCopy = FlagSet -> IO FlagSet
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return
boxedPtrFree :: FlagSet -> IO ()
boxedPtrFree = \FlagSet
_x -> () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
foreign import ccall "gst_flagset_register" gst_flagset_register ::
CGType ->
IO CGType
flagSetRegister ::
(B.CallStack.HasCallStack, MonadIO m) =>
GType
-> m GType
flagSetRegister :: forall (m :: * -> *). (HasCallStack, MonadIO m) => GType -> m GType
flagSetRegister GType
flagsType = IO GType -> m GType
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO GType -> m GType) -> IO GType -> m GType
forall a b. (a -> b) -> a -> b
$ do
let flagsType' :: CGType
flagsType' = GType -> CGType
gtypeToCGType GType
flagsType
CGType
result <- CGType -> IO CGType
gst_flagset_register CGType
flagsType'
let result' :: GType
result' = CGType -> GType
GType CGType
result
GType -> IO GType
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return GType
result'
#if defined(ENABLE_OVERLOADING)
#endif