gi-soup-2.4.18: GI/Soup/Structs/Date.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)
A date and time. The date is assumed to be in the (proleptic)
Gregorian calendar. The time is in UTC if /@utc@/ is 'True'. Otherwise,
the time is a local time, and /@offset@/ gives the offset from UTC in
minutes (such that adding /@offset@/ to the time would give the
correct UTC time). If /@utc@/ is 'False' and /@offset@/ is 0, then the
@/SoupDate/@ represents a \"floating\" time with no associated timezone
information.
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Soup.Structs.Date
(
-- * Exported types
Date(..) ,
newZeroDate ,
noDate ,
-- * Methods
-- ** copy #method:copy#
#if ENABLE_OVERLOADING
DateCopyMethodInfo ,
#endif
dateCopy ,
-- ** free #method:free#
#if ENABLE_OVERLOADING
DateFreeMethodInfo ,
#endif
dateFree ,
-- ** getDay #method:getDay#
#if ENABLE_OVERLOADING
DateGetDayMethodInfo ,
#endif
dateGetDay ,
-- ** getHour #method:getHour#
#if ENABLE_OVERLOADING
DateGetHourMethodInfo ,
#endif
dateGetHour ,
-- ** getMinute #method:getMinute#
#if ENABLE_OVERLOADING
DateGetMinuteMethodInfo ,
#endif
dateGetMinute ,
-- ** getMonth #method:getMonth#
#if ENABLE_OVERLOADING
DateGetMonthMethodInfo ,
#endif
dateGetMonth ,
-- ** getOffset #method:getOffset#
#if ENABLE_OVERLOADING
DateGetOffsetMethodInfo ,
#endif
dateGetOffset ,
-- ** getSecond #method:getSecond#
#if ENABLE_OVERLOADING
DateGetSecondMethodInfo ,
#endif
dateGetSecond ,
-- ** getUtc #method:getUtc#
#if ENABLE_OVERLOADING
DateGetUtcMethodInfo ,
#endif
dateGetUtc ,
-- ** getYear #method:getYear#
#if ENABLE_OVERLOADING
DateGetYearMethodInfo ,
#endif
dateGetYear ,
-- ** isPast #method:isPast#
#if ENABLE_OVERLOADING
DateIsPastMethodInfo ,
#endif
dateIsPast ,
-- ** new #method:new#
dateNew ,
-- ** newFromNow #method:newFromNow#
dateNewFromNow ,
-- ** newFromString #method:newFromString#
dateNewFromString ,
-- ** newFromTimeT #method:newFromTimeT#
dateNewFromTimeT ,
-- ** toString #method:toString#
#if ENABLE_OVERLOADING
DateToStringMethodInfo ,
#endif
dateToString ,
-- ** toTimeT #method:toTimeT#
#if ENABLE_OVERLOADING
DateToTimeTMethodInfo ,
#endif
dateToTimeT ,
-- ** toTimeval #method:toTimeval#
#if ENABLE_OVERLOADING
DateToTimevalMethodInfo ,
#endif
dateToTimeval ,
-- * Properties
-- ** day #attr:day#
{- | day of the month, 1 to 31
-}
#if ENABLE_OVERLOADING
date_day ,
#endif
getDateDay ,
setDateDay ,
-- ** hour #attr:hour#
{- | hour of the day, 0 to 23
-}
#if ENABLE_OVERLOADING
date_hour ,
#endif
getDateHour ,
setDateHour ,
-- ** minute #attr:minute#
{- | minute, 0 to 59
-}
#if ENABLE_OVERLOADING
date_minute ,
#endif
getDateMinute ,
setDateMinute ,
-- ** month #attr:month#
{- | the month, 1 to 12
-}
#if ENABLE_OVERLOADING
date_month ,
#endif
getDateMonth ,
setDateMonth ,
-- ** offset #attr:offset#
{- | offset from UTC
-}
#if ENABLE_OVERLOADING
date_offset ,
#endif
getDateOffset ,
setDateOffset ,
-- ** second #attr:second#
{- | second, 0 to 59 (or up to 61 in the case of leap seconds)
-}
#if ENABLE_OVERLOADING
date_second ,
#endif
getDateSecond ,
setDateSecond ,
-- ** utc #attr:utc#
{- | 'True' if the date is in UTC
-}
#if ENABLE_OVERLOADING
date_utc ,
#endif
getDateUtc ,
setDateUtc ,
-- ** year #attr:year#
{- | the year, 1 to 9999
-}
#if ENABLE_OVERLOADING
date_year ,
#endif
getDateYear ,
setDateYear ,
) 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.ManagedPtr as B.ManagedPtr
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.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 GI.GLib.Structs.TimeVal as GLib.TimeVal
import {-# SOURCE #-} qualified GI.Soup.Enums as Soup.Enums
-- | Memory-managed wrapper type.
newtype Date = Date (ManagedPtr Date)
foreign import ccall "soup_date_get_type" c_soup_date_get_type ::
IO GType
instance BoxedObject Date where
boxedType _ = c_soup_date_get_type
-- | Construct a `Date` struct initialized to zero.
newZeroDate :: MonadIO m => m Date
newZeroDate = liftIO $ callocBoxedBytes 32 >>= wrapBoxed Date
instance tag ~ 'AttrSet => Constructible Date tag where
new _ attrs = do
o <- newZeroDate
GI.Attributes.set o attrs
return o
-- | A convenience alias for `Nothing` :: `Maybe` `Date`.
noDate :: Maybe Date
noDate = Nothing
{- |
Get the value of the “@year@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' date #year
@
-}
getDateYear :: MonadIO m => Date -> m Int32
getDateYear s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Int32
return val
{- |
Set the value of the “@year@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' date [ #year 'Data.GI.Base.Attributes.:=' value ]
@
-}
setDateYear :: MonadIO m => Date -> Int32 -> m ()
setDateYear s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: Int32)
#if ENABLE_OVERLOADING
data DateYearFieldInfo
instance AttrInfo DateYearFieldInfo where
type AttrAllowedOps DateYearFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DateYearFieldInfo = (~) Int32
type AttrBaseTypeConstraint DateYearFieldInfo = (~) Date
type AttrGetType DateYearFieldInfo = Int32
type AttrLabel DateYearFieldInfo = "year"
type AttrOrigin DateYearFieldInfo = Date
attrGet _ = getDateYear
attrSet _ = setDateYear
attrConstruct = undefined
attrClear _ = undefined
date_year :: AttrLabelProxy "year"
date_year = AttrLabelProxy
#endif
{- |
Get the value of the “@month@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' date #month
@
-}
getDateMonth :: MonadIO m => Date -> m Int32
getDateMonth s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 4) :: IO Int32
return val
{- |
Set the value of the “@month@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' date [ #month 'Data.GI.Base.Attributes.:=' value ]
@
-}
setDateMonth :: MonadIO m => Date -> Int32 -> m ()
setDateMonth s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 4) (val :: Int32)
#if ENABLE_OVERLOADING
data DateMonthFieldInfo
instance AttrInfo DateMonthFieldInfo where
type AttrAllowedOps DateMonthFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DateMonthFieldInfo = (~) Int32
type AttrBaseTypeConstraint DateMonthFieldInfo = (~) Date
type AttrGetType DateMonthFieldInfo = Int32
type AttrLabel DateMonthFieldInfo = "month"
type AttrOrigin DateMonthFieldInfo = Date
attrGet _ = getDateMonth
attrSet _ = setDateMonth
attrConstruct = undefined
attrClear _ = undefined
date_month :: AttrLabelProxy "month"
date_month = AttrLabelProxy
#endif
{- |
Get the value of the “@day@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' date #day
@
-}
getDateDay :: MonadIO m => Date -> m Int32
getDateDay s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO Int32
return val
{- |
Set the value of the “@day@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' date [ #day 'Data.GI.Base.Attributes.:=' value ]
@
-}
setDateDay :: MonadIO m => Date -> Int32 -> m ()
setDateDay s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: Int32)
#if ENABLE_OVERLOADING
data DateDayFieldInfo
instance AttrInfo DateDayFieldInfo where
type AttrAllowedOps DateDayFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DateDayFieldInfo = (~) Int32
type AttrBaseTypeConstraint DateDayFieldInfo = (~) Date
type AttrGetType DateDayFieldInfo = Int32
type AttrLabel DateDayFieldInfo = "day"
type AttrOrigin DateDayFieldInfo = Date
attrGet _ = getDateDay
attrSet _ = setDateDay
attrConstruct = undefined
attrClear _ = undefined
date_day :: AttrLabelProxy "day"
date_day = AttrLabelProxy
#endif
{- |
Get the value of the “@hour@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' date #hour
@
-}
getDateHour :: MonadIO m => Date -> m Int32
getDateHour s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 12) :: IO Int32
return val
{- |
Set the value of the “@hour@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' date [ #hour 'Data.GI.Base.Attributes.:=' value ]
@
-}
setDateHour :: MonadIO m => Date -> Int32 -> m ()
setDateHour s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 12) (val :: Int32)
#if ENABLE_OVERLOADING
data DateHourFieldInfo
instance AttrInfo DateHourFieldInfo where
type AttrAllowedOps DateHourFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DateHourFieldInfo = (~) Int32
type AttrBaseTypeConstraint DateHourFieldInfo = (~) Date
type AttrGetType DateHourFieldInfo = Int32
type AttrLabel DateHourFieldInfo = "hour"
type AttrOrigin DateHourFieldInfo = Date
attrGet _ = getDateHour
attrSet _ = setDateHour
attrConstruct = undefined
attrClear _ = undefined
date_hour :: AttrLabelProxy "hour"
date_hour = AttrLabelProxy
#endif
{- |
Get the value of the “@minute@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' date #minute
@
-}
getDateMinute :: MonadIO m => Date -> m Int32
getDateMinute s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO Int32
return val
{- |
Set the value of the “@minute@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' date [ #minute 'Data.GI.Base.Attributes.:=' value ]
@
-}
setDateMinute :: MonadIO m => Date -> Int32 -> m ()
setDateMinute s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: Int32)
#if ENABLE_OVERLOADING
data DateMinuteFieldInfo
instance AttrInfo DateMinuteFieldInfo where
type AttrAllowedOps DateMinuteFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DateMinuteFieldInfo = (~) Int32
type AttrBaseTypeConstraint DateMinuteFieldInfo = (~) Date
type AttrGetType DateMinuteFieldInfo = Int32
type AttrLabel DateMinuteFieldInfo = "minute"
type AttrOrigin DateMinuteFieldInfo = Date
attrGet _ = getDateMinute
attrSet _ = setDateMinute
attrConstruct = undefined
attrClear _ = undefined
date_minute :: AttrLabelProxy "minute"
date_minute = AttrLabelProxy
#endif
{- |
Get the value of the “@second@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' date #second
@
-}
getDateSecond :: MonadIO m => Date -> m Int32
getDateSecond s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 20) :: IO Int32
return val
{- |
Set the value of the “@second@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' date [ #second 'Data.GI.Base.Attributes.:=' value ]
@
-}
setDateSecond :: MonadIO m => Date -> Int32 -> m ()
setDateSecond s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 20) (val :: Int32)
#if ENABLE_OVERLOADING
data DateSecondFieldInfo
instance AttrInfo DateSecondFieldInfo where
type AttrAllowedOps DateSecondFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DateSecondFieldInfo = (~) Int32
type AttrBaseTypeConstraint DateSecondFieldInfo = (~) Date
type AttrGetType DateSecondFieldInfo = Int32
type AttrLabel DateSecondFieldInfo = "second"
type AttrOrigin DateSecondFieldInfo = Date
attrGet _ = getDateSecond
attrSet _ = setDateSecond
attrConstruct = undefined
attrClear _ = undefined
date_second :: AttrLabelProxy "second"
date_second = AttrLabelProxy
#endif
{- |
Get the value of the “@utc@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' date #utc
@
-}
getDateUtc :: MonadIO m => Date -> m Bool
getDateUtc s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 24) :: IO CInt
let val' = (/= 0) val
return val'
{- |
Set the value of the “@utc@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' date [ #utc 'Data.GI.Base.Attributes.:=' value ]
@
-}
setDateUtc :: MonadIO m => Date -> Bool -> m ()
setDateUtc s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 24) (val' :: CInt)
#if ENABLE_OVERLOADING
data DateUtcFieldInfo
instance AttrInfo DateUtcFieldInfo where
type AttrAllowedOps DateUtcFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DateUtcFieldInfo = (~) Bool
type AttrBaseTypeConstraint DateUtcFieldInfo = (~) Date
type AttrGetType DateUtcFieldInfo = Bool
type AttrLabel DateUtcFieldInfo = "utc"
type AttrOrigin DateUtcFieldInfo = Date
attrGet _ = getDateUtc
attrSet _ = setDateUtc
attrConstruct = undefined
attrClear _ = undefined
date_utc :: AttrLabelProxy "utc"
date_utc = AttrLabelProxy
#endif
{- |
Get the value of the “@offset@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' date #offset
@
-}
getDateOffset :: MonadIO m => Date -> m Int32
getDateOffset s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 28) :: IO Int32
return val
{- |
Set the value of the “@offset@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' date [ #offset 'Data.GI.Base.Attributes.:=' value ]
@
-}
setDateOffset :: MonadIO m => Date -> Int32 -> m ()
setDateOffset s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 28) (val :: Int32)
#if ENABLE_OVERLOADING
data DateOffsetFieldInfo
instance AttrInfo DateOffsetFieldInfo where
type AttrAllowedOps DateOffsetFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DateOffsetFieldInfo = (~) Int32
type AttrBaseTypeConstraint DateOffsetFieldInfo = (~) Date
type AttrGetType DateOffsetFieldInfo = Int32
type AttrLabel DateOffsetFieldInfo = "offset"
type AttrOrigin DateOffsetFieldInfo = Date
attrGet _ = getDateOffset
attrSet _ = setDateOffset
attrConstruct = undefined
attrClear _ = undefined
date_offset :: AttrLabelProxy "offset"
date_offset = AttrLabelProxy
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList Date
type instance O.AttributeList Date = DateAttributeList
type DateAttributeList = ('[ '("year", DateYearFieldInfo), '("month", DateMonthFieldInfo), '("day", DateDayFieldInfo), '("hour", DateHourFieldInfo), '("minute", DateMinuteFieldInfo), '("second", DateSecondFieldInfo), '("utc", DateUtcFieldInfo), '("offset", DateOffsetFieldInfo)] :: [(Symbol, *)])
#endif
-- method Date::new
-- method type : Constructor
-- Args : [Arg {argCName = "year", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the year (1-9999)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "month", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the month (1-12)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "day", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the day of the month (1-31, as appropriate for @month)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hour", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the hour (0-23)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minute", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the minute (0-59)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "second", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the second (0-59, or up to 61 for leap seconds)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Soup", name = "Date"}))
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_new" soup_date_new ::
Int32 -> -- year : TBasicType TInt
Int32 -> -- month : TBasicType TInt
Int32 -> -- day : TBasicType TInt
Int32 -> -- hour : TBasicType TInt
Int32 -> -- minute : TBasicType TInt
Int32 -> -- second : TBasicType TInt
IO (Ptr Date)
{- |
Creates a 'GI.Soup.Structs.Date.Date' representing the indicated time, UTC.
-}
dateNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
Int32
{- ^ /@year@/: the year (1-9999) -}
-> Int32
{- ^ /@month@/: the month (1-12) -}
-> Int32
{- ^ /@day@/: the day of the month (1-31, as appropriate for /@month@/) -}
-> Int32
{- ^ /@hour@/: the hour (0-23) -}
-> Int32
{- ^ /@minute@/: the minute (0-59) -}
-> Int32
{- ^ /@second@/: the second (0-59, or up to 61 for leap seconds) -}
-> m Date
{- ^ __Returns:__ a new 'GI.Soup.Structs.Date.Date' -}
dateNew year month day hour minute second = liftIO $ do
result <- soup_date_new year month day hour minute second
checkUnexpectedReturnNULL "dateNew" result
result' <- (wrapBoxed Date) result
return result'
#if ENABLE_OVERLOADING
#endif
-- method Date::new_from_now
-- method type : Constructor
-- Args : [Arg {argCName = "offset_seconds", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "offset from current time", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Soup", name = "Date"}))
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_new_from_now" soup_date_new_from_now ::
Int32 -> -- offset_seconds : TBasicType TInt
IO (Ptr Date)
{- |
Creates a 'GI.Soup.Structs.Date.Date' representing a time /@offsetSeconds@/ after the
current time (or before it, if /@offsetSeconds@/ is negative). If
offset_seconds is 0, returns the current time.
If /@offsetSeconds@/ would indicate a time not expressible as a
\<type>time_t\<\/type>, the return value will be clamped into range.
-}
dateNewFromNow ::
(B.CallStack.HasCallStack, MonadIO m) =>
Int32
{- ^ /@offsetSeconds@/: offset from current time -}
-> m Date
{- ^ __Returns:__ a new 'GI.Soup.Structs.Date.Date' -}
dateNewFromNow offsetSeconds = liftIO $ do
result <- soup_date_new_from_now offsetSeconds
checkUnexpectedReturnNULL "dateNewFromNow" result
result' <- (wrapBoxed Date) result
return result'
#if ENABLE_OVERLOADING
#endif
-- method Date::new_from_string
-- method type : Constructor
-- Args : [Arg {argCName = "date_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the date in some plausible format", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Soup", name = "Date"}))
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_new_from_string" soup_date_new_from_string ::
CString -> -- date_string : TBasicType TUTF8
IO (Ptr Date)
{- |
Parses /@dateString@/ and tries to extract a date from it. This
recognizes all of the \"HTTP-date\" formats from RFC 2616, all ISO
8601 formats containing both a time and a date, RFC 2822 dates,
and reasonable approximations thereof. (Eg, it is lenient about
whitespace, leading \"0\"s, etc.)
-}
dateNewFromString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@dateString@/: the date in some plausible format -}
-> m (Maybe Date)
{- ^ __Returns:__ a new 'GI.Soup.Structs.Date.Date', or 'Nothing' if /@dateString@/
could not be parsed. -}
dateNewFromString dateString = liftIO $ do
dateString' <- textToCString dateString
result <- soup_date_new_from_string dateString'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed Date) result'
return result''
freeMem dateString'
return maybeResult
#if ENABLE_OVERLOADING
#endif
-- method Date::new_from_time_t
-- method type : Constructor
-- Args : [Arg {argCName = "when", argType = TBasicType TLong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a <type>time_t</type>", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Soup", name = "Date"}))
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_new_from_time_t" soup_date_new_from_time_t ::
CLong -> -- when : TBasicType TLong
IO (Ptr Date)
{- |
Creates a 'GI.Soup.Structs.Date.Date' corresponding to /@when@/
-}
dateNewFromTimeT ::
(B.CallStack.HasCallStack, MonadIO m) =>
CLong
{- ^ /@when@/: a \<type>time_t\<\/type> -}
-> m Date
{- ^ __Returns:__ a new 'GI.Soup.Structs.Date.Date' -}
dateNewFromTimeT when_ = liftIO $ do
result <- soup_date_new_from_time_t when_
checkUnexpectedReturnNULL "dateNewFromTimeT" result
result' <- (wrapBoxed Date) result
return result'
#if ENABLE_OVERLOADING
#endif
-- method Date::copy
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "date", argType = TInterface (Name {namespace = "Soup", name = "Date"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #SoupDate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Soup", name = "Date"}))
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_copy" soup_date_copy ::
Ptr Date -> -- date : TInterface (Name {namespace = "Soup", name = "Date"})
IO (Ptr Date)
{- |
Copies /@date@/.
/Since: 2.24/
-}
dateCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
{- ^ /@date@/: a 'GI.Soup.Structs.Date.Date' -}
-> m Date
dateCopy date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_copy date'
checkUnexpectedReturnNULL "dateCopy" result
result' <- (wrapBoxed Date) result
touchManagedPtr date
return result'
#if ENABLE_OVERLOADING
data DateCopyMethodInfo
instance (signature ~ (m Date), MonadIO m) => O.MethodInfo DateCopyMethodInfo Date signature where
overloadedMethod _ = dateCopy
#endif
-- method Date::free
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "date", argType = TInterface (Name {namespace = "Soup", name = "Date"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #SoupDate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_free" soup_date_free ::
Ptr Date -> -- date : TInterface (Name {namespace = "Soup", name = "Date"})
IO ()
{- |
Frees /@date@/.
/Since: 2.24/
-}
dateFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
{- ^ /@date@/: a 'GI.Soup.Structs.Date.Date' -}
-> m ()
dateFree date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
soup_date_free date'
touchManagedPtr date
return ()
#if ENABLE_OVERLOADING
data DateFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo DateFreeMethodInfo Date signature where
overloadedMethod _ = dateFree
#endif
-- method Date::get_day
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "date", argType = TInterface (Name {namespace = "Soup", name = "Date"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #SoupDate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_get_day" soup_date_get_day ::
Ptr Date -> -- date : TInterface (Name {namespace = "Soup", name = "Date"})
IO Int32
{- |
Gets /@date@/\'s day.
/Since: 2.32/
-}
dateGetDay ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
{- ^ /@date@/: a 'GI.Soup.Structs.Date.Date' -}
-> m Int32
{- ^ __Returns:__ /@date@/\'s day -}
dateGetDay date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_get_day date'
touchManagedPtr date
return result
#if ENABLE_OVERLOADING
data DateGetDayMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo DateGetDayMethodInfo Date signature where
overloadedMethod _ = dateGetDay
#endif
-- method Date::get_hour
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "date", argType = TInterface (Name {namespace = "Soup", name = "Date"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #SoupDate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_get_hour" soup_date_get_hour ::
Ptr Date -> -- date : TInterface (Name {namespace = "Soup", name = "Date"})
IO Int32
{- |
Gets /@date@/\'s hour.
/Since: 2.32/
-}
dateGetHour ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
{- ^ /@date@/: a 'GI.Soup.Structs.Date.Date' -}
-> m Int32
{- ^ __Returns:__ /@date@/\'s hour -}
dateGetHour date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_get_hour date'
touchManagedPtr date
return result
#if ENABLE_OVERLOADING
data DateGetHourMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo DateGetHourMethodInfo Date signature where
overloadedMethod _ = dateGetHour
#endif
-- method Date::get_minute
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "date", argType = TInterface (Name {namespace = "Soup", name = "Date"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #SoupDate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_get_minute" soup_date_get_minute ::
Ptr Date -> -- date : TInterface (Name {namespace = "Soup", name = "Date"})
IO Int32
{- |
Gets /@date@/\'s minute.
/Since: 2.32/
-}
dateGetMinute ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
{- ^ /@date@/: a 'GI.Soup.Structs.Date.Date' -}
-> m Int32
{- ^ __Returns:__ /@date@/\'s minute -}
dateGetMinute date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_get_minute date'
touchManagedPtr date
return result
#if ENABLE_OVERLOADING
data DateGetMinuteMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo DateGetMinuteMethodInfo Date signature where
overloadedMethod _ = dateGetMinute
#endif
-- method Date::get_month
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "date", argType = TInterface (Name {namespace = "Soup", name = "Date"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #SoupDate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_get_month" soup_date_get_month ::
Ptr Date -> -- date : TInterface (Name {namespace = "Soup", name = "Date"})
IO Int32
{- |
Gets /@date@/\'s month.
/Since: 2.32/
-}
dateGetMonth ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
{- ^ /@date@/: a 'GI.Soup.Structs.Date.Date' -}
-> m Int32
{- ^ __Returns:__ /@date@/\'s month -}
dateGetMonth date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_get_month date'
touchManagedPtr date
return result
#if ENABLE_OVERLOADING
data DateGetMonthMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo DateGetMonthMethodInfo Date signature where
overloadedMethod _ = dateGetMonth
#endif
-- method Date::get_offset
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "date", argType = TInterface (Name {namespace = "Soup", name = "Date"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #SoupDate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_get_offset" soup_date_get_offset ::
Ptr Date -> -- date : TInterface (Name {namespace = "Soup", name = "Date"})
IO Int32
{- |
Gets /@date@/\'s offset from UTC.
/Since: 2.32/
-}
dateGetOffset ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
{- ^ /@date@/: a 'GI.Soup.Structs.Date.Date' -}
-> m Int32
{- ^ __Returns:__ /@date@/\'s offset from UTC. If 'GI.Soup.Structs.Date.dateGetUtc'
returns 'False' but 'GI.Soup.Structs.Date.dateGetOffset' returns 0, that means the
date is a \"floating\" time with no associated offset information. -}
dateGetOffset date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_get_offset date'
touchManagedPtr date
return result
#if ENABLE_OVERLOADING
data DateGetOffsetMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo DateGetOffsetMethodInfo Date signature where
overloadedMethod _ = dateGetOffset
#endif
-- method Date::get_second
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "date", argType = TInterface (Name {namespace = "Soup", name = "Date"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #SoupDate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_get_second" soup_date_get_second ::
Ptr Date -> -- date : TInterface (Name {namespace = "Soup", name = "Date"})
IO Int32
{- |
Gets /@date@/\'s second.
/Since: 2.32/
-}
dateGetSecond ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
{- ^ /@date@/: a 'GI.Soup.Structs.Date.Date' -}
-> m Int32
{- ^ __Returns:__ /@date@/\'s second -}
dateGetSecond date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_get_second date'
touchManagedPtr date
return result
#if ENABLE_OVERLOADING
data DateGetSecondMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo DateGetSecondMethodInfo Date signature where
overloadedMethod _ = dateGetSecond
#endif
-- method Date::get_utc
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "date", argType = TInterface (Name {namespace = "Soup", name = "Date"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #SoupDate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_get_utc" soup_date_get_utc ::
Ptr Date -> -- date : TInterface (Name {namespace = "Soup", name = "Date"})
IO Int32
{- |
Gets /@date@/\'s UTC flag
/Since: 2.32/
-}
dateGetUtc ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
{- ^ /@date@/: a 'GI.Soup.Structs.Date.Date' -}
-> m Int32
{- ^ __Returns:__ 'True' if /@date@/ is UTC. -}
dateGetUtc date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_get_utc date'
touchManagedPtr date
return result
#if ENABLE_OVERLOADING
data DateGetUtcMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo DateGetUtcMethodInfo Date signature where
overloadedMethod _ = dateGetUtc
#endif
-- method Date::get_year
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "date", argType = TInterface (Name {namespace = "Soup", name = "Date"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #SoupDate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_get_year" soup_date_get_year ::
Ptr Date -> -- date : TInterface (Name {namespace = "Soup", name = "Date"})
IO Int32
{- |
Gets /@date@/\'s year.
/Since: 2.32/
-}
dateGetYear ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
{- ^ /@date@/: a 'GI.Soup.Structs.Date.Date' -}
-> m Int32
{- ^ __Returns:__ /@date@/\'s year -}
dateGetYear date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_get_year date'
touchManagedPtr date
return result
#if ENABLE_OVERLOADING
data DateGetYearMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo DateGetYearMethodInfo Date signature where
overloadedMethod _ = dateGetYear
#endif
-- method Date::is_past
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "date", argType = TInterface (Name {namespace = "Soup", name = "Date"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #SoupDate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_is_past" soup_date_is_past ::
Ptr Date -> -- date : TInterface (Name {namespace = "Soup", name = "Date"})
IO CInt
{- |
Determines if /@date@/ is in the past.
/Since: 2.24/
-}
dateIsPast ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
{- ^ /@date@/: a 'GI.Soup.Structs.Date.Date' -}
-> m Bool
{- ^ __Returns:__ 'True' if /@date@/ is in the past -}
dateIsPast date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_is_past date'
let result' = (/= 0) result
touchManagedPtr date
return result'
#if ENABLE_OVERLOADING
data DateIsPastMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo DateIsPastMethodInfo Date signature where
overloadedMethod _ = dateIsPast
#endif
-- method Date::to_string
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "date", argType = TInterface (Name {namespace = "Soup", name = "Date"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #SoupDate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface (Name {namespace = "Soup", name = "DateFormat"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the format to generate the date in", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_to_string" soup_date_to_string ::
Ptr Date -> -- date : TInterface (Name {namespace = "Soup", name = "Date"})
CUInt -> -- format : TInterface (Name {namespace = "Soup", name = "DateFormat"})
IO CString
{- |
Converts /@date@/ to a string in the format described by /@format@/.
-}
dateToString ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
{- ^ /@date@/: a 'GI.Soup.Structs.Date.Date' -}
-> Soup.Enums.DateFormat
{- ^ /@format@/: the format to generate the date in -}
-> m T.Text
{- ^ __Returns:__ /@date@/ as a string -}
dateToString date format = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
let format' = (fromIntegral . fromEnum) format
result <- soup_date_to_string date' format'
checkUnexpectedReturnNULL "dateToString" result
result' <- cstringToText result
freeMem result
touchManagedPtr date
return result'
#if ENABLE_OVERLOADING
data DateToStringMethodInfo
instance (signature ~ (Soup.Enums.DateFormat -> m T.Text), MonadIO m) => O.MethodInfo DateToStringMethodInfo Date signature where
overloadedMethod _ = dateToString
#endif
-- method Date::to_time_t
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "date", argType = TInterface (Name {namespace = "Soup", name = "Date"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #SoupDate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TLong)
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_to_time_t" soup_date_to_time_t ::
Ptr Date -> -- date : TInterface (Name {namespace = "Soup", name = "Date"})
IO CLong
{- |
Converts /@date@/ to a \<type>time_t\<\/type>.
If /@date@/ is not representable as a \<type>time_t\<\/type>, it will be
clamped into range. (In particular, some HTTP cookies have
expiration dates after \"Y2.038k\" (2038-01-19T03:14:07Z).)
-}
dateToTimeT ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
{- ^ /@date@/: a 'GI.Soup.Structs.Date.Date' -}
-> m CLong
{- ^ __Returns:__ /@date@/ as a \<type>time_t\<\/type> -}
dateToTimeT date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_to_time_t date'
touchManagedPtr date
return result
#if ENABLE_OVERLOADING
data DateToTimeTMethodInfo
instance (signature ~ (m CLong), MonadIO m) => O.MethodInfo DateToTimeTMethodInfo Date signature where
overloadedMethod _ = dateToTimeT
#endif
-- method Date::to_timeval
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "date", argType = TInterface (Name {namespace = "Soup", name = "Date"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #SoupDate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time", argType = TInterface (Name {namespace = "GLib", name = "TimeVal"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GTimeVal structure in which to store the converted time.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "soup_date_to_timeval" soup_date_to_timeval ::
Ptr Date -> -- date : TInterface (Name {namespace = "Soup", name = "Date"})
Ptr GLib.TimeVal.TimeVal -> -- time : TInterface (Name {namespace = "GLib", name = "TimeVal"})
IO ()
{- |
Converts /@date@/ to a 'GI.GLib.Structs.TimeVal.TimeVal'.
/Since: 2.24/
-}
dateToTimeval ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
{- ^ /@date@/: a 'GI.Soup.Structs.Date.Date' -}
-> m (GLib.TimeVal.TimeVal)
dateToTimeval date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
time <- callocBytes 16 :: IO (Ptr GLib.TimeVal.TimeVal)
soup_date_to_timeval date' time
time' <- (wrapPtr GLib.TimeVal.TimeVal) time
touchManagedPtr date
return time'
#if ENABLE_OVERLOADING
data DateToTimevalMethodInfo
instance (signature ~ (m (GLib.TimeVal.TimeVal)), MonadIO m) => O.MethodInfo DateToTimevalMethodInfo Date signature where
overloadedMethod _ = dateToTimeval
#endif
#if ENABLE_OVERLOADING
type family ResolveDateMethod (t :: Symbol) (o :: *) :: * where
ResolveDateMethod "copy" o = DateCopyMethodInfo
ResolveDateMethod "free" o = DateFreeMethodInfo
ResolveDateMethod "isPast" o = DateIsPastMethodInfo
ResolveDateMethod "toString" o = DateToStringMethodInfo
ResolveDateMethod "toTimeT" o = DateToTimeTMethodInfo
ResolveDateMethod "toTimeval" o = DateToTimevalMethodInfo
ResolveDateMethod "getDay" o = DateGetDayMethodInfo
ResolveDateMethod "getHour" o = DateGetHourMethodInfo
ResolveDateMethod "getMinute" o = DateGetMinuteMethodInfo
ResolveDateMethod "getMonth" o = DateGetMonthMethodInfo
ResolveDateMethod "getOffset" o = DateGetOffsetMethodInfo
ResolveDateMethod "getSecond" o = DateGetSecondMethodInfo
ResolveDateMethod "getUtc" o = DateGetUtcMethodInfo
ResolveDateMethod "getYear" o = DateGetYearMethodInfo
ResolveDateMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveDateMethod t Date, O.MethodInfo info Date p) => OL.IsLabel t (Date -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif