{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.GLib.Structs.TimeZone
(
TimeZone(..) ,
#if defined(ENABLE_OVERLOADING)
ResolveTimeZoneMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
TimeZoneAdjustTimeMethodInfo ,
#endif
timeZoneAdjustTime ,
#if defined(ENABLE_OVERLOADING)
TimeZoneFindIntervalMethodInfo ,
#endif
timeZoneFindInterval ,
#if defined(ENABLE_OVERLOADING)
TimeZoneGetAbbreviationMethodInfo ,
#endif
timeZoneGetAbbreviation ,
#if defined(ENABLE_OVERLOADING)
TimeZoneGetIdentifierMethodInfo ,
#endif
timeZoneGetIdentifier ,
#if defined(ENABLE_OVERLOADING)
TimeZoneGetOffsetMethodInfo ,
#endif
timeZoneGetOffset ,
#if defined(ENABLE_OVERLOADING)
TimeZoneIsDstMethodInfo ,
#endif
timeZoneIsDst ,
timeZoneNew ,
timeZoneNewIdentifier ,
timeZoneNewLocal ,
timeZoneNewOffset ,
timeZoneNewUtc ,
#if defined(ENABLE_OVERLOADING)
TimeZoneRefMethodInfo ,
#endif
timeZoneRef ,
#if defined(ENABLE_OVERLOADING)
TimeZoneUnrefMethodInfo ,
#endif
timeZoneUnref ,
) 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.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 {-# SOURCE #-} qualified GI.GLib.Enums as GLib.Enums
newtype TimeZone = TimeZone (SP.ManagedPtr TimeZone)
deriving (TimeZone -> TimeZone -> Bool
(TimeZone -> TimeZone -> Bool)
-> (TimeZone -> TimeZone -> Bool) -> Eq TimeZone
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TimeZone -> TimeZone -> Bool
$c/= :: TimeZone -> TimeZone -> Bool
== :: TimeZone -> TimeZone -> Bool
$c== :: TimeZone -> TimeZone -> Bool
Eq)
instance SP.ManagedPtrNewtype TimeZone where
toManagedPtr :: TimeZone -> ManagedPtr TimeZone
toManagedPtr (TimeZone ManagedPtr TimeZone
p) = ManagedPtr TimeZone
p
foreign import ccall "g_time_zone_get_type" c_g_time_zone_get_type ::
IO GType
type instance O.ParentTypes TimeZone = '[]
instance O.HasParentTypes TimeZone
instance B.Types.TypedObject TimeZone where
glibType :: IO GType
glibType = IO GType
c_g_time_zone_get_type
instance B.Types.GBoxed TimeZone
instance B.GValue.IsGValue (Maybe TimeZone) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_g_time_zone_get_type
gvalueSet_ :: Ptr GValue -> Maybe TimeZone -> IO ()
gvalueSet_ Ptr GValue
gv Maybe TimeZone
P.Nothing = Ptr GValue -> Ptr TimeZone -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv (Ptr TimeZone
forall a. Ptr a
FP.nullPtr :: FP.Ptr TimeZone)
gvalueSet_ Ptr GValue
gv (P.Just TimeZone
obj) = TimeZone -> (Ptr TimeZone -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr TimeZone
obj (Ptr GValue -> Ptr TimeZone -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe TimeZone)
gvalueGet_ Ptr GValue
gv = do
Ptr TimeZone
ptr <- Ptr GValue -> IO (Ptr TimeZone)
forall b. Ptr GValue -> IO (Ptr b)
B.GValue.get_boxed Ptr GValue
gv :: IO (Ptr TimeZone)
if Ptr TimeZone
ptr Ptr TimeZone -> Ptr TimeZone -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr TimeZone
forall a. Ptr a
FP.nullPtr
then TimeZone -> Maybe TimeZone
forall a. a -> Maybe a
P.Just (TimeZone -> Maybe TimeZone) -> IO TimeZone -> IO (Maybe TimeZone)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr TimeZone -> TimeZone) -> Ptr TimeZone -> IO TimeZone
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.newBoxed ManagedPtr TimeZone -> TimeZone
TimeZone Ptr TimeZone
ptr
else Maybe TimeZone -> IO (Maybe TimeZone)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe TimeZone
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList TimeZone
type instance O.AttributeList TimeZone = TimeZoneAttributeList
type TimeZoneAttributeList = ('[ ] :: [(Symbol, *)])
#endif
foreign import ccall "g_time_zone_new" g_time_zone_new ::
CString ->
IO (Ptr TimeZone)
{-# DEPRECATED timeZoneNew ["(Since version 2.68)","Use 'GI.GLib.Structs.TimeZone.timeZoneNewIdentifier' instead, as it provides"," error reporting. Change your code to handle a potentially 'P.Nothing' return"," value."] #-}
timeZoneNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (T.Text)
-> m TimeZone
timeZoneNew :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Text -> m TimeZone
timeZoneNew Maybe Text
identifier = IO TimeZone -> m TimeZone
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TimeZone -> m TimeZone) -> IO TimeZone -> m TimeZone
forall a b. (a -> b) -> a -> b
$ do
Ptr CChar
maybeIdentifier <- case Maybe Text
identifier of
Maybe Text
Nothing -> Ptr CChar -> IO (Ptr CChar)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
forall a. Ptr a
nullPtr
Just Text
jIdentifier -> do
Ptr CChar
jIdentifier' <- Text -> IO (Ptr CChar)
textToCString Text
jIdentifier
Ptr CChar -> IO (Ptr CChar)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
jIdentifier'
Ptr TimeZone
result <- Ptr CChar -> IO (Ptr TimeZone)
g_time_zone_new Ptr CChar
maybeIdentifier
Text -> Ptr TimeZone -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"timeZoneNew" Ptr TimeZone
result
TimeZone
result' <- ((ManagedPtr TimeZone -> TimeZone) -> Ptr TimeZone -> IO TimeZone
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TimeZone -> TimeZone
TimeZone) Ptr TimeZone
result
Ptr CChar -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CChar
maybeIdentifier
TimeZone -> IO TimeZone
forall (m :: * -> *) a. Monad m => a -> m a
return TimeZone
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_time_zone_new_identifier" g_time_zone_new_identifier ::
CString ->
IO (Ptr TimeZone)
timeZoneNewIdentifier ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (T.Text)
-> m (Maybe TimeZone)
timeZoneNewIdentifier :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Text -> m (Maybe TimeZone)
timeZoneNewIdentifier Maybe Text
identifier = IO (Maybe TimeZone) -> m (Maybe TimeZone)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe TimeZone) -> m (Maybe TimeZone))
-> IO (Maybe TimeZone) -> m (Maybe TimeZone)
forall a b. (a -> b) -> a -> b
$ do
Ptr CChar
maybeIdentifier <- case Maybe Text
identifier of
Maybe Text
Nothing -> Ptr CChar -> IO (Ptr CChar)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
forall a. Ptr a
nullPtr
Just Text
jIdentifier -> do
Ptr CChar
jIdentifier' <- Text -> IO (Ptr CChar)
textToCString Text
jIdentifier
Ptr CChar -> IO (Ptr CChar)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
jIdentifier'
Ptr TimeZone
result <- Ptr CChar -> IO (Ptr TimeZone)
g_time_zone_new_identifier Ptr CChar
maybeIdentifier
Maybe TimeZone
maybeResult <- Ptr TimeZone
-> (Ptr TimeZone -> IO TimeZone) -> IO (Maybe TimeZone)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr TimeZone
result ((Ptr TimeZone -> IO TimeZone) -> IO (Maybe TimeZone))
-> (Ptr TimeZone -> IO TimeZone) -> IO (Maybe TimeZone)
forall a b. (a -> b) -> a -> b
$ \Ptr TimeZone
result' -> do
TimeZone
result'' <- ((ManagedPtr TimeZone -> TimeZone) -> Ptr TimeZone -> IO TimeZone
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TimeZone -> TimeZone
TimeZone) Ptr TimeZone
result'
TimeZone -> IO TimeZone
forall (m :: * -> *) a. Monad m => a -> m a
return TimeZone
result''
Ptr CChar -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CChar
maybeIdentifier
Maybe TimeZone -> IO (Maybe TimeZone)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe TimeZone
maybeResult
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_time_zone_new_local" g_time_zone_new_local ::
IO (Ptr TimeZone)
timeZoneNewLocal ::
(B.CallStack.HasCallStack, MonadIO m) =>
m TimeZone
timeZoneNewLocal :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m TimeZone
timeZoneNewLocal = IO TimeZone -> m TimeZone
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TimeZone -> m TimeZone) -> IO TimeZone -> m TimeZone
forall a b. (a -> b) -> a -> b
$ do
Ptr TimeZone
result <- IO (Ptr TimeZone)
g_time_zone_new_local
Text -> Ptr TimeZone -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"timeZoneNewLocal" Ptr TimeZone
result
TimeZone
result' <- ((ManagedPtr TimeZone -> TimeZone) -> Ptr TimeZone -> IO TimeZone
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TimeZone -> TimeZone
TimeZone) Ptr TimeZone
result
TimeZone -> IO TimeZone
forall (m :: * -> *) a. Monad m => a -> m a
return TimeZone
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_time_zone_new_offset" g_time_zone_new_offset ::
Int32 ->
IO (Ptr TimeZone)
timeZoneNewOffset ::
(B.CallStack.HasCallStack, MonadIO m) =>
Int32
-> m TimeZone
timeZoneNewOffset :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Int32 -> m TimeZone
timeZoneNewOffset Int32
seconds = IO TimeZone -> m TimeZone
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TimeZone -> m TimeZone) -> IO TimeZone -> m TimeZone
forall a b. (a -> b) -> a -> b
$ do
Ptr TimeZone
result <- Int32 -> IO (Ptr TimeZone)
g_time_zone_new_offset Int32
seconds
Text -> Ptr TimeZone -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"timeZoneNewOffset" Ptr TimeZone
result
TimeZone
result' <- ((ManagedPtr TimeZone -> TimeZone) -> Ptr TimeZone -> IO TimeZone
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TimeZone -> TimeZone
TimeZone) Ptr TimeZone
result
TimeZone -> IO TimeZone
forall (m :: * -> *) a. Monad m => a -> m a
return TimeZone
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_time_zone_new_utc" g_time_zone_new_utc ::
IO (Ptr TimeZone)
timeZoneNewUtc ::
(B.CallStack.HasCallStack, MonadIO m) =>
m TimeZone
timeZoneNewUtc :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m TimeZone
timeZoneNewUtc = IO TimeZone -> m TimeZone
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TimeZone -> m TimeZone) -> IO TimeZone -> m TimeZone
forall a b. (a -> b) -> a -> b
$ do
Ptr TimeZone
result <- IO (Ptr TimeZone)
g_time_zone_new_utc
Text -> Ptr TimeZone -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"timeZoneNewUtc" Ptr TimeZone
result
TimeZone
result' <- ((ManagedPtr TimeZone -> TimeZone) -> Ptr TimeZone -> IO TimeZone
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TimeZone -> TimeZone
TimeZone) Ptr TimeZone
result
TimeZone -> IO TimeZone
forall (m :: * -> *) a. Monad m => a -> m a
return TimeZone
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_time_zone_adjust_time" g_time_zone_adjust_time ::
Ptr TimeZone ->
CUInt ->
Int64 ->
IO Int32
timeZoneAdjustTime ::
(B.CallStack.HasCallStack, MonadIO m) =>
TimeZone
-> GLib.Enums.TimeType
-> Int64
-> m Int32
timeZoneAdjustTime :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
TimeZone -> TimeType -> Int64 -> m Int32
timeZoneAdjustTime TimeZone
tz TimeType
type_ Int64
time_ = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
Ptr TimeZone
tz' <- TimeZone -> IO (Ptr TimeZone)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TimeZone
tz
let type_' :: CUInt
type_' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (TimeType -> Int) -> TimeType -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TimeType -> Int
forall a. Enum a => a -> Int
fromEnum) TimeType
type_
Int32
result <- Ptr TimeZone -> CUInt -> Int64 -> IO Int32
g_time_zone_adjust_time Ptr TimeZone
tz' CUInt
type_' Int64
time_
TimeZone -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TimeZone
tz
Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result
#if defined(ENABLE_OVERLOADING)
data TimeZoneAdjustTimeMethodInfo
instance (signature ~ (GLib.Enums.TimeType -> Int64 -> m Int32), MonadIO m) => O.OverloadedMethod TimeZoneAdjustTimeMethodInfo TimeZone signature where
overloadedMethod = timeZoneAdjustTime
instance O.OverloadedMethodInfo TimeZoneAdjustTimeMethodInfo TimeZone where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.TimeZone.timeZoneAdjustTime",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.26/docs/GI-GLib-Structs-TimeZone.html#v:timeZoneAdjustTime"
})
#endif
foreign import ccall "g_time_zone_find_interval" g_time_zone_find_interval ::
Ptr TimeZone ->
CUInt ->
Int64 ->
IO Int32
timeZoneFindInterval ::
(B.CallStack.HasCallStack, MonadIO m) =>
TimeZone
-> GLib.Enums.TimeType
-> Int64
-> m Int32
timeZoneFindInterval :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
TimeZone -> TimeType -> Int64 -> m Int32
timeZoneFindInterval TimeZone
tz TimeType
type_ Int64
time_ = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
Ptr TimeZone
tz' <- TimeZone -> IO (Ptr TimeZone)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TimeZone
tz
let type_' :: CUInt
type_' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (TimeType -> Int) -> TimeType -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TimeType -> Int
forall a. Enum a => a -> Int
fromEnum) TimeType
type_
Int32
result <- Ptr TimeZone -> CUInt -> Int64 -> IO Int32
g_time_zone_find_interval Ptr TimeZone
tz' CUInt
type_' Int64
time_
TimeZone -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TimeZone
tz
Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result
#if defined(ENABLE_OVERLOADING)
data TimeZoneFindIntervalMethodInfo
instance (signature ~ (GLib.Enums.TimeType -> Int64 -> m Int32), MonadIO m) => O.OverloadedMethod TimeZoneFindIntervalMethodInfo TimeZone signature where
overloadedMethod = timeZoneFindInterval
instance O.OverloadedMethodInfo TimeZoneFindIntervalMethodInfo TimeZone where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.TimeZone.timeZoneFindInterval",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.26/docs/GI-GLib-Structs-TimeZone.html#v:timeZoneFindInterval"
})
#endif
foreign import ccall "g_time_zone_get_abbreviation" g_time_zone_get_abbreviation ::
Ptr TimeZone ->
Int32 ->
IO CString
timeZoneGetAbbreviation ::
(B.CallStack.HasCallStack, MonadIO m) =>
TimeZone
-> Int32
-> m T.Text
timeZoneGetAbbreviation :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
TimeZone -> Int32 -> m Text
timeZoneGetAbbreviation TimeZone
tz Int32
interval = IO Text -> m Text
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
Ptr TimeZone
tz' <- TimeZone -> IO (Ptr TimeZone)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TimeZone
tz
Ptr CChar
result <- Ptr TimeZone -> Int32 -> IO (Ptr CChar)
g_time_zone_get_abbreviation Ptr TimeZone
tz' Int32
interval
Text -> Ptr CChar -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"timeZoneGetAbbreviation" Ptr CChar
result
Text
result' <- HasCallStack => Ptr CChar -> IO Text
Ptr CChar -> IO Text
cstringToText Ptr CChar
result
TimeZone -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TimeZone
tz
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if defined(ENABLE_OVERLOADING)
data TimeZoneGetAbbreviationMethodInfo
instance (signature ~ (Int32 -> m T.Text), MonadIO m) => O.OverloadedMethod TimeZoneGetAbbreviationMethodInfo TimeZone signature where
overloadedMethod = timeZoneGetAbbreviation
instance O.OverloadedMethodInfo TimeZoneGetAbbreviationMethodInfo TimeZone where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.TimeZone.timeZoneGetAbbreviation",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.26/docs/GI-GLib-Structs-TimeZone.html#v:timeZoneGetAbbreviation"
})
#endif
foreign import ccall "g_time_zone_get_identifier" g_time_zone_get_identifier ::
Ptr TimeZone ->
IO CString
timeZoneGetIdentifier ::
(B.CallStack.HasCallStack, MonadIO m) =>
TimeZone
-> m T.Text
timeZoneGetIdentifier :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
TimeZone -> m Text
timeZoneGetIdentifier TimeZone
tz = IO Text -> m Text
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
Ptr TimeZone
tz' <- TimeZone -> IO (Ptr TimeZone)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TimeZone
tz
Ptr CChar
result <- Ptr TimeZone -> IO (Ptr CChar)
g_time_zone_get_identifier Ptr TimeZone
tz'
Text -> Ptr CChar -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"timeZoneGetIdentifier" Ptr CChar
result
Text
result' <- HasCallStack => Ptr CChar -> IO Text
Ptr CChar -> IO Text
cstringToText Ptr CChar
result
TimeZone -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TimeZone
tz
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if defined(ENABLE_OVERLOADING)
data TimeZoneGetIdentifierMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => O.OverloadedMethod TimeZoneGetIdentifierMethodInfo TimeZone signature where
overloadedMethod = timeZoneGetIdentifier
instance O.OverloadedMethodInfo TimeZoneGetIdentifierMethodInfo TimeZone where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.TimeZone.timeZoneGetIdentifier",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.26/docs/GI-GLib-Structs-TimeZone.html#v:timeZoneGetIdentifier"
})
#endif
foreign import ccall "g_time_zone_get_offset" g_time_zone_get_offset ::
Ptr TimeZone ->
Int32 ->
IO Int32
timeZoneGetOffset ::
(B.CallStack.HasCallStack, MonadIO m) =>
TimeZone
-> Int32
-> m Int32
timeZoneGetOffset :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
TimeZone -> Int32 -> m Int32
timeZoneGetOffset TimeZone
tz Int32
interval = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
Ptr TimeZone
tz' <- TimeZone -> IO (Ptr TimeZone)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TimeZone
tz
Int32
result <- Ptr TimeZone -> Int32 -> IO Int32
g_time_zone_get_offset Ptr TimeZone
tz' Int32
interval
TimeZone -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TimeZone
tz
Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result
#if defined(ENABLE_OVERLOADING)
data TimeZoneGetOffsetMethodInfo
instance (signature ~ (Int32 -> m Int32), MonadIO m) => O.OverloadedMethod TimeZoneGetOffsetMethodInfo TimeZone signature where
overloadedMethod = timeZoneGetOffset
instance O.OverloadedMethodInfo TimeZoneGetOffsetMethodInfo TimeZone where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.TimeZone.timeZoneGetOffset",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.26/docs/GI-GLib-Structs-TimeZone.html#v:timeZoneGetOffset"
})
#endif
foreign import ccall "g_time_zone_is_dst" g_time_zone_is_dst ::
Ptr TimeZone ->
Int32 ->
IO CInt
timeZoneIsDst ::
(B.CallStack.HasCallStack, MonadIO m) =>
TimeZone
-> Int32
-> m Bool
timeZoneIsDst :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
TimeZone -> Int32 -> m Bool
timeZoneIsDst TimeZone
tz Int32
interval = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr TimeZone
tz' <- TimeZone -> IO (Ptr TimeZone)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TimeZone
tz
CInt
result <- Ptr TimeZone -> Int32 -> IO CInt
g_time_zone_is_dst Ptr TimeZone
tz' Int32
interval
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
TimeZone -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TimeZone
tz
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data TimeZoneIsDstMethodInfo
instance (signature ~ (Int32 -> m Bool), MonadIO m) => O.OverloadedMethod TimeZoneIsDstMethodInfo TimeZone signature where
overloadedMethod = timeZoneIsDst
instance O.OverloadedMethodInfo TimeZoneIsDstMethodInfo TimeZone where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.TimeZone.timeZoneIsDst",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.26/docs/GI-GLib-Structs-TimeZone.html#v:timeZoneIsDst"
})
#endif
foreign import ccall "g_time_zone_ref" g_time_zone_ref ::
Ptr TimeZone ->
IO (Ptr TimeZone)
timeZoneRef ::
(B.CallStack.HasCallStack, MonadIO m) =>
TimeZone
-> m TimeZone
timeZoneRef :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
TimeZone -> m TimeZone
timeZoneRef TimeZone
tz = IO TimeZone -> m TimeZone
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TimeZone -> m TimeZone) -> IO TimeZone -> m TimeZone
forall a b. (a -> b) -> a -> b
$ do
Ptr TimeZone
tz' <- TimeZone -> IO (Ptr TimeZone)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TimeZone
tz
Ptr TimeZone
result <- Ptr TimeZone -> IO (Ptr TimeZone)
g_time_zone_ref Ptr TimeZone
tz'
Text -> Ptr TimeZone -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"timeZoneRef" Ptr TimeZone
result
TimeZone
result' <- ((ManagedPtr TimeZone -> TimeZone) -> Ptr TimeZone -> IO TimeZone
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TimeZone -> TimeZone
TimeZone) Ptr TimeZone
result
TimeZone -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TimeZone
tz
TimeZone -> IO TimeZone
forall (m :: * -> *) a. Monad m => a -> m a
return TimeZone
result'
#if defined(ENABLE_OVERLOADING)
data TimeZoneRefMethodInfo
instance (signature ~ (m TimeZone), MonadIO m) => O.OverloadedMethod TimeZoneRefMethodInfo TimeZone signature where
overloadedMethod = timeZoneRef
instance O.OverloadedMethodInfo TimeZoneRefMethodInfo TimeZone where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.TimeZone.timeZoneRef",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.26/docs/GI-GLib-Structs-TimeZone.html#v:timeZoneRef"
})
#endif
foreign import ccall "g_time_zone_unref" g_time_zone_unref ::
Ptr TimeZone ->
IO ()
timeZoneUnref ::
(B.CallStack.HasCallStack, MonadIO m) =>
TimeZone
-> m ()
timeZoneUnref :: forall (m :: * -> *). (HasCallStack, MonadIO m) => TimeZone -> m ()
timeZoneUnref TimeZone
tz = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr TimeZone
tz' <- TimeZone -> IO (Ptr TimeZone)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TimeZone
tz
Ptr TimeZone -> IO ()
g_time_zone_unref Ptr TimeZone
tz'
TimeZone -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TimeZone
tz
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data TimeZoneUnrefMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.OverloadedMethod TimeZoneUnrefMethodInfo TimeZone signature where
overloadedMethod = timeZoneUnref
instance O.OverloadedMethodInfo TimeZoneUnrefMethodInfo TimeZone where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GLib.Structs.TimeZone.timeZoneUnref",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-glib-2.0.26/docs/GI-GLib-Structs-TimeZone.html#v:timeZoneUnref"
})
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveTimeZoneMethod (t :: Symbol) (o :: *) :: * where
ResolveTimeZoneMethod "adjustTime" o = TimeZoneAdjustTimeMethodInfo
ResolveTimeZoneMethod "findInterval" o = TimeZoneFindIntervalMethodInfo
ResolveTimeZoneMethod "isDst" o = TimeZoneIsDstMethodInfo
ResolveTimeZoneMethod "ref" o = TimeZoneRefMethodInfo
ResolveTimeZoneMethod "unref" o = TimeZoneUnrefMethodInfo
ResolveTimeZoneMethod "getAbbreviation" o = TimeZoneGetAbbreviationMethodInfo
ResolveTimeZoneMethod "getIdentifier" o = TimeZoneGetIdentifierMethodInfo
ResolveTimeZoneMethod "getOffset" o = TimeZoneGetOffsetMethodInfo
ResolveTimeZoneMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveTimeZoneMethod t TimeZone, O.OverloadedMethod info TimeZone p) => OL.IsLabel t (TimeZone -> 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 ~ ResolveTimeZoneMethod t TimeZone, O.OverloadedMethod info TimeZone p, R.HasField t TimeZone p) => R.HasField t TimeZone p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveTimeZoneMethod t TimeZone, O.OverloadedMethodInfo info TimeZone) => OL.IsLabel t (O.MethodProxy info TimeZone) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif