{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.Ggit.Objects.DiffFormatEmailOptions
    ( 

-- * Exported types
    DiffFormatEmailOptions(..)              ,
    IsDiffFormatEmailOptions                ,
    toDiffFormatEmailOptions                ,
    noDiffFormatEmailOptions                ,


 -- * Methods
-- ** getAuthor #method:getAuthor#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsGetAuthorMethodInfo,
#endif
    diffFormatEmailOptionsGetAuthor         ,


-- ** getFlags #method:getFlags#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsGetFlagsMethodInfo,
#endif
    diffFormatEmailOptionsGetFlags          ,


-- ** getId #method:getId#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsGetIdMethodInfo   ,
#endif
    diffFormatEmailOptionsGetId             ,


-- ** getPatchNumber #method:getPatchNumber#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsGetPatchNumberMethodInfo,
#endif
    diffFormatEmailOptionsGetPatchNumber    ,


-- ** getSummary #method:getSummary#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsGetSummaryMethodInfo,
#endif
    diffFormatEmailOptionsGetSummary        ,


-- ** getTotalPatches #method:getTotalPatches#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsGetTotalPatchesMethodInfo,
#endif
    diffFormatEmailOptionsGetTotalPatches   ,


-- ** new #method:new#
    diffFormatEmailOptionsNew               ,


-- ** setAuthor #method:setAuthor#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsSetAuthorMethodInfo,
#endif
    diffFormatEmailOptionsSetAuthor         ,


-- ** setFlags #method:setFlags#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsSetFlagsMethodInfo,
#endif
    diffFormatEmailOptionsSetFlags          ,


-- ** setId #method:setId#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsSetIdMethodInfo   ,
#endif
    diffFormatEmailOptionsSetId             ,


-- ** setPatchNumber #method:setPatchNumber#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsSetPatchNumberMethodInfo,
#endif
    diffFormatEmailOptionsSetPatchNumber    ,


-- ** setSummary #method:setSummary#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsSetSummaryMethodInfo,
#endif
    diffFormatEmailOptionsSetSummary        ,


-- ** setTotalPatches #method:setTotalPatches#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsSetTotalPatchesMethodInfo,
#endif
    diffFormatEmailOptionsSetTotalPatches   ,




 -- * Properties
-- ** author #attr:author#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsAuthorPropertyInfo,
#endif
    clearDiffFormatEmailOptionsAuthor       ,
    constructDiffFormatEmailOptionsAuthor   ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    diffFormatEmailOptionsAuthor            ,
#endif
    getDiffFormatEmailOptionsAuthor         ,
    setDiffFormatEmailOptionsAuthor         ,


-- ** flags #attr:flags#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsFlagsPropertyInfo ,
#endif
    constructDiffFormatEmailOptionsFlags    ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    diffFormatEmailOptionsFlags             ,
#endif
    getDiffFormatEmailOptionsFlags          ,
    setDiffFormatEmailOptionsFlags          ,


-- ** id #attr:id#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsIdPropertyInfo    ,
#endif
    clearDiffFormatEmailOptionsId           ,
    constructDiffFormatEmailOptionsId       ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    diffFormatEmailOptionsId                ,
#endif
    getDiffFormatEmailOptionsId             ,
    setDiffFormatEmailOptionsId             ,


-- ** patchNumber #attr:patchNumber#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsPatchNumberPropertyInfo,
#endif
    constructDiffFormatEmailOptionsPatchNumber,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    diffFormatEmailOptionsPatchNumber       ,
#endif
    getDiffFormatEmailOptionsPatchNumber    ,
    setDiffFormatEmailOptionsPatchNumber    ,


-- ** summary #attr:summary#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsSummaryPropertyInfo,
#endif
    clearDiffFormatEmailOptionsSummary      ,
    constructDiffFormatEmailOptionsSummary  ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    diffFormatEmailOptionsSummary           ,
#endif
    getDiffFormatEmailOptionsSummary        ,
    setDiffFormatEmailOptionsSummary        ,


-- ** totalPatches #attr:totalPatches#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    DiffFormatEmailOptionsTotalPatchesPropertyInfo,
#endif
    constructDiffFormatEmailOptionsTotalPatches,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    diffFormatEmailOptionsTotalPatches      ,
#endif
    getDiffFormatEmailOptionsTotalPatches   ,
    setDiffFormatEmailOptionsTotalPatches   ,




    ) 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.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
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 GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Ggit.Flags as Ggit.Flags
import {-# SOURCE #-} qualified GI.Ggit.Objects.Signature as Ggit.Signature
import {-# SOURCE #-} qualified GI.Ggit.Structs.OId as Ggit.OId

newtype DiffFormatEmailOptions = DiffFormatEmailOptions (ManagedPtr DiffFormatEmailOptions)
foreign import ccall "ggit_diff_format_email_options_get_type"
    c_ggit_diff_format_email_options_get_type :: IO GType

instance GObject DiffFormatEmailOptions where
    gobjectType _ = c_ggit_diff_format_email_options_get_type
    

class GObject o => IsDiffFormatEmailOptions o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError DiffFormatEmailOptions a) =>
    IsDiffFormatEmailOptions a
#endif
instance IsDiffFormatEmailOptions DiffFormatEmailOptions
instance GObject.Object.IsObject DiffFormatEmailOptions

toDiffFormatEmailOptions :: (MonadIO m, IsDiffFormatEmailOptions o) => o -> m DiffFormatEmailOptions
toDiffFormatEmailOptions = liftIO . unsafeCastTo DiffFormatEmailOptions

noDiffFormatEmailOptions :: Maybe DiffFormatEmailOptions
noDiffFormatEmailOptions = Nothing

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
type family ResolveDiffFormatEmailOptionsMethod (t :: Symbol) (o :: *) :: * where
    ResolveDiffFormatEmailOptionsMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDiffFormatEmailOptionsMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDiffFormatEmailOptionsMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDiffFormatEmailOptionsMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDiffFormatEmailOptionsMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDiffFormatEmailOptionsMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDiffFormatEmailOptionsMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDiffFormatEmailOptionsMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDiffFormatEmailOptionsMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDiffFormatEmailOptionsMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveDiffFormatEmailOptionsMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveDiffFormatEmailOptionsMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDiffFormatEmailOptionsMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDiffFormatEmailOptionsMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDiffFormatEmailOptionsMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDiffFormatEmailOptionsMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDiffFormatEmailOptionsMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDiffFormatEmailOptionsMethod "getAuthor" o = DiffFormatEmailOptionsGetAuthorMethodInfo
    ResolveDiffFormatEmailOptionsMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDiffFormatEmailOptionsMethod "getFlags" o = DiffFormatEmailOptionsGetFlagsMethodInfo
    ResolveDiffFormatEmailOptionsMethod "getId" o = DiffFormatEmailOptionsGetIdMethodInfo
    ResolveDiffFormatEmailOptionsMethod "getPatchNumber" o = DiffFormatEmailOptionsGetPatchNumberMethodInfo
    ResolveDiffFormatEmailOptionsMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDiffFormatEmailOptionsMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDiffFormatEmailOptionsMethod "getSummary" o = DiffFormatEmailOptionsGetSummaryMethodInfo
    ResolveDiffFormatEmailOptionsMethod "getTotalPatches" o = DiffFormatEmailOptionsGetTotalPatchesMethodInfo
    ResolveDiffFormatEmailOptionsMethod "setAuthor" o = DiffFormatEmailOptionsSetAuthorMethodInfo
    ResolveDiffFormatEmailOptionsMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDiffFormatEmailOptionsMethod "setFlags" o = DiffFormatEmailOptionsSetFlagsMethodInfo
    ResolveDiffFormatEmailOptionsMethod "setId" o = DiffFormatEmailOptionsSetIdMethodInfo
    ResolveDiffFormatEmailOptionsMethod "setPatchNumber" o = DiffFormatEmailOptionsSetPatchNumberMethodInfo
    ResolveDiffFormatEmailOptionsMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDiffFormatEmailOptionsMethod "setSummary" o = DiffFormatEmailOptionsSetSummaryMethodInfo
    ResolveDiffFormatEmailOptionsMethod "setTotalPatches" o = DiffFormatEmailOptionsSetTotalPatchesMethodInfo
    ResolveDiffFormatEmailOptionsMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveDiffFormatEmailOptionsMethod t DiffFormatEmailOptions, O.MethodInfo info DiffFormatEmailOptions p) => O.IsLabelProxy t (DiffFormatEmailOptions -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveDiffFormatEmailOptionsMethod t DiffFormatEmailOptions, O.MethodInfo info DiffFormatEmailOptions p) => O.IsLabel t (DiffFormatEmailOptions -> 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

#endif

-- VVV Prop "author"
   -- Type: TInterface (Name {namespace = "Ggit", name = "Signature"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just True)

getDiffFormatEmailOptionsAuthor :: (MonadIO m, IsDiffFormatEmailOptions o) => o -> m Ggit.Signature.Signature
getDiffFormatEmailOptionsAuthor obj = liftIO $ checkUnexpectedNothing "getDiffFormatEmailOptionsAuthor" $ getObjectPropertyObject obj "author" Ggit.Signature.Signature

setDiffFormatEmailOptionsAuthor :: (MonadIO m, IsDiffFormatEmailOptions o, Ggit.Signature.IsSignature a) => o -> a -> m ()
setDiffFormatEmailOptionsAuthor obj val = liftIO $ setObjectPropertyObject obj "author" (Just val)

constructDiffFormatEmailOptionsAuthor :: (IsDiffFormatEmailOptions o, Ggit.Signature.IsSignature a) => a -> IO (GValueConstruct o)
constructDiffFormatEmailOptionsAuthor val = constructObjectPropertyObject "author" (Just val)

clearDiffFormatEmailOptionsAuthor :: (MonadIO m, IsDiffFormatEmailOptions o) => o -> m ()
clearDiffFormatEmailOptionsAuthor obj = liftIO $ setObjectPropertyObject obj "author" (Nothing :: Maybe Ggit.Signature.Signature)

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsAuthorPropertyInfo
instance AttrInfo DiffFormatEmailOptionsAuthorPropertyInfo where
    type AttrAllowedOps DiffFormatEmailOptionsAuthorPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DiffFormatEmailOptionsAuthorPropertyInfo = Ggit.Signature.IsSignature
    type AttrBaseTypeConstraint DiffFormatEmailOptionsAuthorPropertyInfo = IsDiffFormatEmailOptions
    type AttrGetType DiffFormatEmailOptionsAuthorPropertyInfo = Ggit.Signature.Signature
    type AttrLabel DiffFormatEmailOptionsAuthorPropertyInfo = "author"
    type AttrOrigin DiffFormatEmailOptionsAuthorPropertyInfo = DiffFormatEmailOptions
    attrGet _ = getDiffFormatEmailOptionsAuthor
    attrSet _ = setDiffFormatEmailOptionsAuthor
    attrConstruct _ = constructDiffFormatEmailOptionsAuthor
    attrClear _ = clearDiffFormatEmailOptionsAuthor
#endif

-- VVV Prop "flags"
   -- Type: TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailFlags"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

getDiffFormatEmailOptionsFlags :: (MonadIO m, IsDiffFormatEmailOptions o) => o -> m [Ggit.Flags.DiffFormatEmailFlags]
getDiffFormatEmailOptionsFlags obj = liftIO $ getObjectPropertyFlags obj "flags"

setDiffFormatEmailOptionsFlags :: (MonadIO m, IsDiffFormatEmailOptions o) => o -> [Ggit.Flags.DiffFormatEmailFlags] -> m ()
setDiffFormatEmailOptionsFlags obj val = liftIO $ setObjectPropertyFlags obj "flags" val

constructDiffFormatEmailOptionsFlags :: (IsDiffFormatEmailOptions o) => [Ggit.Flags.DiffFormatEmailFlags] -> IO (GValueConstruct o)
constructDiffFormatEmailOptionsFlags val = constructObjectPropertyFlags "flags" val

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsFlagsPropertyInfo
instance AttrInfo DiffFormatEmailOptionsFlagsPropertyInfo where
    type AttrAllowedOps DiffFormatEmailOptionsFlagsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DiffFormatEmailOptionsFlagsPropertyInfo = (~) [Ggit.Flags.DiffFormatEmailFlags]
    type AttrBaseTypeConstraint DiffFormatEmailOptionsFlagsPropertyInfo = IsDiffFormatEmailOptions
    type AttrGetType DiffFormatEmailOptionsFlagsPropertyInfo = [Ggit.Flags.DiffFormatEmailFlags]
    type AttrLabel DiffFormatEmailOptionsFlagsPropertyInfo = "flags"
    type AttrOrigin DiffFormatEmailOptionsFlagsPropertyInfo = DiffFormatEmailOptions
    attrGet _ = getDiffFormatEmailOptionsFlags
    attrSet _ = setDiffFormatEmailOptionsFlags
    attrConstruct _ = constructDiffFormatEmailOptionsFlags
    attrClear _ = undefined
#endif

-- VVV Prop "id"
   -- Type: TInterface (Name {namespace = "Ggit", name = "OId"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just True)

getDiffFormatEmailOptionsId :: (MonadIO m, IsDiffFormatEmailOptions o) => o -> m Ggit.OId.OId
getDiffFormatEmailOptionsId obj = liftIO $ checkUnexpectedNothing "getDiffFormatEmailOptionsId" $ getObjectPropertyBoxed obj "id" Ggit.OId.OId

setDiffFormatEmailOptionsId :: (MonadIO m, IsDiffFormatEmailOptions o) => o -> Ggit.OId.OId -> m ()
setDiffFormatEmailOptionsId obj val = liftIO $ setObjectPropertyBoxed obj "id" (Just val)

constructDiffFormatEmailOptionsId :: (IsDiffFormatEmailOptions o) => Ggit.OId.OId -> IO (GValueConstruct o)
constructDiffFormatEmailOptionsId val = constructObjectPropertyBoxed "id" (Just val)

clearDiffFormatEmailOptionsId :: (MonadIO m, IsDiffFormatEmailOptions o) => o -> m ()
clearDiffFormatEmailOptionsId obj = liftIO $ setObjectPropertyBoxed obj "id" (Nothing :: Maybe Ggit.OId.OId)

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsIdPropertyInfo
instance AttrInfo DiffFormatEmailOptionsIdPropertyInfo where
    type AttrAllowedOps DiffFormatEmailOptionsIdPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DiffFormatEmailOptionsIdPropertyInfo = (~) Ggit.OId.OId
    type AttrBaseTypeConstraint DiffFormatEmailOptionsIdPropertyInfo = IsDiffFormatEmailOptions
    type AttrGetType DiffFormatEmailOptionsIdPropertyInfo = Ggit.OId.OId
    type AttrLabel DiffFormatEmailOptionsIdPropertyInfo = "id"
    type AttrOrigin DiffFormatEmailOptionsIdPropertyInfo = DiffFormatEmailOptions
    attrGet _ = getDiffFormatEmailOptionsId
    attrSet _ = setDiffFormatEmailOptionsId
    attrConstruct _ = constructDiffFormatEmailOptionsId
    attrClear _ = clearDiffFormatEmailOptionsId
#endif

-- VVV Prop "patch-number"
   -- Type: TBasicType TUInt64
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

getDiffFormatEmailOptionsPatchNumber :: (MonadIO m, IsDiffFormatEmailOptions o) => o -> m Word64
getDiffFormatEmailOptionsPatchNumber obj = liftIO $ getObjectPropertyUInt64 obj "patch-number"

setDiffFormatEmailOptionsPatchNumber :: (MonadIO m, IsDiffFormatEmailOptions o) => o -> Word64 -> m ()
setDiffFormatEmailOptionsPatchNumber obj val = liftIO $ setObjectPropertyUInt64 obj "patch-number" val

constructDiffFormatEmailOptionsPatchNumber :: (IsDiffFormatEmailOptions o) => Word64 -> IO (GValueConstruct o)
constructDiffFormatEmailOptionsPatchNumber val = constructObjectPropertyUInt64 "patch-number" val

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsPatchNumberPropertyInfo
instance AttrInfo DiffFormatEmailOptionsPatchNumberPropertyInfo where
    type AttrAllowedOps DiffFormatEmailOptionsPatchNumberPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DiffFormatEmailOptionsPatchNumberPropertyInfo = (~) Word64
    type AttrBaseTypeConstraint DiffFormatEmailOptionsPatchNumberPropertyInfo = IsDiffFormatEmailOptions
    type AttrGetType DiffFormatEmailOptionsPatchNumberPropertyInfo = Word64
    type AttrLabel DiffFormatEmailOptionsPatchNumberPropertyInfo = "patch-number"
    type AttrOrigin DiffFormatEmailOptionsPatchNumberPropertyInfo = DiffFormatEmailOptions
    attrGet _ = getDiffFormatEmailOptionsPatchNumber
    attrSet _ = setDiffFormatEmailOptionsPatchNumber
    attrConstruct _ = constructDiffFormatEmailOptionsPatchNumber
    attrClear _ = undefined
#endif

-- VVV Prop "summary"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just True)

getDiffFormatEmailOptionsSummary :: (MonadIO m, IsDiffFormatEmailOptions o) => o -> m T.Text
getDiffFormatEmailOptionsSummary obj = liftIO $ checkUnexpectedNothing "getDiffFormatEmailOptionsSummary" $ getObjectPropertyString obj "summary"

setDiffFormatEmailOptionsSummary :: (MonadIO m, IsDiffFormatEmailOptions o) => o -> T.Text -> m ()
setDiffFormatEmailOptionsSummary obj val = liftIO $ setObjectPropertyString obj "summary" (Just val)

constructDiffFormatEmailOptionsSummary :: (IsDiffFormatEmailOptions o) => T.Text -> IO (GValueConstruct o)
constructDiffFormatEmailOptionsSummary val = constructObjectPropertyString "summary" (Just val)

clearDiffFormatEmailOptionsSummary :: (MonadIO m, IsDiffFormatEmailOptions o) => o -> m ()
clearDiffFormatEmailOptionsSummary obj = liftIO $ setObjectPropertyString obj "summary" (Nothing :: Maybe T.Text)

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsSummaryPropertyInfo
instance AttrInfo DiffFormatEmailOptionsSummaryPropertyInfo where
    type AttrAllowedOps DiffFormatEmailOptionsSummaryPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DiffFormatEmailOptionsSummaryPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DiffFormatEmailOptionsSummaryPropertyInfo = IsDiffFormatEmailOptions
    type AttrGetType DiffFormatEmailOptionsSummaryPropertyInfo = T.Text
    type AttrLabel DiffFormatEmailOptionsSummaryPropertyInfo = "summary"
    type AttrOrigin DiffFormatEmailOptionsSummaryPropertyInfo = DiffFormatEmailOptions
    attrGet _ = getDiffFormatEmailOptionsSummary
    attrSet _ = setDiffFormatEmailOptionsSummary
    attrConstruct _ = constructDiffFormatEmailOptionsSummary
    attrClear _ = clearDiffFormatEmailOptionsSummary
#endif

-- VVV Prop "total-patches"
   -- Type: TBasicType TUInt64
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

getDiffFormatEmailOptionsTotalPatches :: (MonadIO m, IsDiffFormatEmailOptions o) => o -> m Word64
getDiffFormatEmailOptionsTotalPatches obj = liftIO $ getObjectPropertyUInt64 obj "total-patches"

setDiffFormatEmailOptionsTotalPatches :: (MonadIO m, IsDiffFormatEmailOptions o) => o -> Word64 -> m ()
setDiffFormatEmailOptionsTotalPatches obj val = liftIO $ setObjectPropertyUInt64 obj "total-patches" val

constructDiffFormatEmailOptionsTotalPatches :: (IsDiffFormatEmailOptions o) => Word64 -> IO (GValueConstruct o)
constructDiffFormatEmailOptionsTotalPatches val = constructObjectPropertyUInt64 "total-patches" val

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsTotalPatchesPropertyInfo
instance AttrInfo DiffFormatEmailOptionsTotalPatchesPropertyInfo where
    type AttrAllowedOps DiffFormatEmailOptionsTotalPatchesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DiffFormatEmailOptionsTotalPatchesPropertyInfo = (~) Word64
    type AttrBaseTypeConstraint DiffFormatEmailOptionsTotalPatchesPropertyInfo = IsDiffFormatEmailOptions
    type AttrGetType DiffFormatEmailOptionsTotalPatchesPropertyInfo = Word64
    type AttrLabel DiffFormatEmailOptionsTotalPatchesPropertyInfo = "total-patches"
    type AttrOrigin DiffFormatEmailOptionsTotalPatchesPropertyInfo = DiffFormatEmailOptions
    attrGet _ = getDiffFormatEmailOptionsTotalPatches
    attrSet _ = setDiffFormatEmailOptionsTotalPatches
    attrConstruct _ = constructDiffFormatEmailOptionsTotalPatches
    attrClear _ = undefined
#endif

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
instance O.HasAttributeList DiffFormatEmailOptions
type instance O.AttributeList DiffFormatEmailOptions = DiffFormatEmailOptionsAttributeList
type DiffFormatEmailOptionsAttributeList = ('[ '("author", DiffFormatEmailOptionsAuthorPropertyInfo), '("flags", DiffFormatEmailOptionsFlagsPropertyInfo), '("id", DiffFormatEmailOptionsIdPropertyInfo), '("patchNumber", DiffFormatEmailOptionsPatchNumberPropertyInfo), '("summary", DiffFormatEmailOptionsSummaryPropertyInfo), '("totalPatches", DiffFormatEmailOptionsTotalPatchesPropertyInfo)] :: [(Symbol, *)])
#endif

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
diffFormatEmailOptionsAuthor :: AttrLabelProxy "author"
diffFormatEmailOptionsAuthor = AttrLabelProxy

diffFormatEmailOptionsFlags :: AttrLabelProxy "flags"
diffFormatEmailOptionsFlags = AttrLabelProxy

diffFormatEmailOptionsId :: AttrLabelProxy "id"
diffFormatEmailOptionsId = AttrLabelProxy

diffFormatEmailOptionsPatchNumber :: AttrLabelProxy "patchNumber"
diffFormatEmailOptionsPatchNumber = AttrLabelProxy

diffFormatEmailOptionsSummary :: AttrLabelProxy "summary"
diffFormatEmailOptionsSummary = AttrLabelProxy

diffFormatEmailOptionsTotalPatches :: AttrLabelProxy "totalPatches"
diffFormatEmailOptionsTotalPatches = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
type instance O.SignalList DiffFormatEmailOptions = DiffFormatEmailOptionsSignalList
type DiffFormatEmailOptionsSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])

#endif

-- method DiffFormatEmailOptions::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"}))
-- throws : False
-- Skip return : False

foreign import ccall "ggit_diff_format_email_options_new" ggit_diff_format_email_options_new :: 
    IO (Ptr DiffFormatEmailOptions)

{- |
Create a new checkout options object.
-}
diffFormatEmailOptionsNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m DiffFormatEmailOptions
    {- ^ __Returns:__ a 'GI.Ggit.Objects.DiffFormatEmailOptions.DiffFormatEmailOptions'. -}
diffFormatEmailOptionsNew  = liftIO $ do
    result <- ggit_diff_format_email_options_new
    checkUnexpectedReturnNULL "diffFormatEmailOptionsNew" result
    result' <- (wrapObject DiffFormatEmailOptions) result
    return result'

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
#endif

-- method DiffFormatEmailOptions::get_author
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "options", argType = TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffFormatEmailOptions.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Ggit", name = "Signature"}))
-- throws : False
-- Skip return : False

foreign import ccall "ggit_diff_format_email_options_get_author" ggit_diff_format_email_options_get_author :: 
    Ptr DiffFormatEmailOptions ->           -- options : TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"})
    IO (Ptr Ggit.Signature.Signature)

{- |
Get the author.
-}
diffFormatEmailOptionsGetAuthor ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiffFormatEmailOptions a) =>
    a
    {- ^ /@options@/: a 'GI.Ggit.Objects.DiffFormatEmailOptions.DiffFormatEmailOptions'. -}
    -> m Ggit.Signature.Signature
    {- ^ __Returns:__ a 'GI.Ggit.Objects.Signature.Signature'. -}
diffFormatEmailOptionsGetAuthor options = liftIO $ do
    options' <- unsafeManagedPtrCastPtr options
    result <- ggit_diff_format_email_options_get_author options'
    checkUnexpectedReturnNULL "diffFormatEmailOptionsGetAuthor" result
    result' <- (newObject Ggit.Signature.Signature) result
    touchManagedPtr options
    return result'

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsGetAuthorMethodInfo
instance (signature ~ (m Ggit.Signature.Signature), MonadIO m, IsDiffFormatEmailOptions a) => O.MethodInfo DiffFormatEmailOptionsGetAuthorMethodInfo a signature where
    overloadedMethod _ = diffFormatEmailOptionsGetAuthor

#endif

-- method DiffFormatEmailOptions::get_flags
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "options", argType = TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffFormatEmailOptions.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailFlags"}))
-- throws : False
-- Skip return : False

foreign import ccall "ggit_diff_format_email_options_get_flags" ggit_diff_format_email_options_get_flags :: 
    Ptr DiffFormatEmailOptions ->           -- options : TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"})
    IO CUInt

{- |
Get the flags.
-}
diffFormatEmailOptionsGetFlags ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiffFormatEmailOptions a) =>
    a
    {- ^ /@options@/: a 'GI.Ggit.Objects.DiffFormatEmailOptions.DiffFormatEmailOptions'. -}
    -> m [Ggit.Flags.DiffFormatEmailFlags]
    {- ^ __Returns:__ a 'GI.Ggit.Flags.DiffFormatEmailFlags'. -}
diffFormatEmailOptionsGetFlags options = liftIO $ do
    options' <- unsafeManagedPtrCastPtr options
    result <- ggit_diff_format_email_options_get_flags options'
    let result' = wordToGFlags result
    touchManagedPtr options
    return result'

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsGetFlagsMethodInfo
instance (signature ~ (m [Ggit.Flags.DiffFormatEmailFlags]), MonadIO m, IsDiffFormatEmailOptions a) => O.MethodInfo DiffFormatEmailOptionsGetFlagsMethodInfo a signature where
    overloadedMethod _ = diffFormatEmailOptionsGetFlags

#endif

-- method DiffFormatEmailOptions::get_id
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "options", argType = TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffFormatEmailOptions.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Ggit", name = "OId"}))
-- throws : False
-- Skip return : False

foreign import ccall "ggit_diff_format_email_options_get_id" ggit_diff_format_email_options_get_id :: 
    Ptr DiffFormatEmailOptions ->           -- options : TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"})
    IO (Ptr Ggit.OId.OId)

{- |
Get the object id.
-}
diffFormatEmailOptionsGetId ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiffFormatEmailOptions a) =>
    a
    {- ^ /@options@/: a 'GI.Ggit.Objects.DiffFormatEmailOptions.DiffFormatEmailOptions'. -}
    -> m Ggit.OId.OId
    {- ^ __Returns:__ a 'GI.Ggit.Structs.OId.OId'. -}
diffFormatEmailOptionsGetId options = liftIO $ do
    options' <- unsafeManagedPtrCastPtr options
    result <- ggit_diff_format_email_options_get_id options'
    checkUnexpectedReturnNULL "diffFormatEmailOptionsGetId" result
    result' <- (newBoxed Ggit.OId.OId) result
    touchManagedPtr options
    return result'

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsGetIdMethodInfo
instance (signature ~ (m Ggit.OId.OId), MonadIO m, IsDiffFormatEmailOptions a) => O.MethodInfo DiffFormatEmailOptionsGetIdMethodInfo a signature where
    overloadedMethod _ = diffFormatEmailOptionsGetId

#endif

-- method DiffFormatEmailOptions::get_patch_number
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "options", argType = TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffFormatEmailOptions.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUInt64)
-- throws : False
-- Skip return : False

foreign import ccall "ggit_diff_format_email_options_get_patch_number" ggit_diff_format_email_options_get_patch_number :: 
    Ptr DiffFormatEmailOptions ->           -- options : TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"})
    IO Word64

{- |
Get the patch number.
-}
diffFormatEmailOptionsGetPatchNumber ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiffFormatEmailOptions a) =>
    a
    {- ^ /@options@/: a 'GI.Ggit.Objects.DiffFormatEmailOptions.DiffFormatEmailOptions'. -}
    -> m Word64
    {- ^ __Returns:__ the patch number. -}
diffFormatEmailOptionsGetPatchNumber options = liftIO $ do
    options' <- unsafeManagedPtrCastPtr options
    result <- ggit_diff_format_email_options_get_patch_number options'
    touchManagedPtr options
    return result

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsGetPatchNumberMethodInfo
instance (signature ~ (m Word64), MonadIO m, IsDiffFormatEmailOptions a) => O.MethodInfo DiffFormatEmailOptionsGetPatchNumberMethodInfo a signature where
    overloadedMethod _ = diffFormatEmailOptionsGetPatchNumber

#endif

-- method DiffFormatEmailOptions::get_summary
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "options", argType = TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffFormatEmailOptions.", 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 "ggit_diff_format_email_options_get_summary" ggit_diff_format_email_options_get_summary :: 
    Ptr DiffFormatEmailOptions ->           -- options : TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"})
    IO CString

{- |
Get the summary.
-}
diffFormatEmailOptionsGetSummary ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiffFormatEmailOptions a) =>
    a
    {- ^ /@options@/: a 'GI.Ggit.Objects.DiffFormatEmailOptions.DiffFormatEmailOptions'. -}
    -> m T.Text
    {- ^ __Returns:__ the summary. -}
diffFormatEmailOptionsGetSummary options = liftIO $ do
    options' <- unsafeManagedPtrCastPtr options
    result <- ggit_diff_format_email_options_get_summary options'
    checkUnexpectedReturnNULL "diffFormatEmailOptionsGetSummary" result
    result' <- cstringToText result
    touchManagedPtr options
    return result'

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsGetSummaryMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDiffFormatEmailOptions a) => O.MethodInfo DiffFormatEmailOptionsGetSummaryMethodInfo a signature where
    overloadedMethod _ = diffFormatEmailOptionsGetSummary

#endif

-- method DiffFormatEmailOptions::get_total_patches
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "options", argType = TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffFormatEmailOptions.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUInt64)
-- throws : False
-- Skip return : False

foreign import ccall "ggit_diff_format_email_options_get_total_patches" ggit_diff_format_email_options_get_total_patches :: 
    Ptr DiffFormatEmailOptions ->           -- options : TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"})
    IO Word64

{- |
Get the total number of patches.
-}
diffFormatEmailOptionsGetTotalPatches ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiffFormatEmailOptions a) =>
    a
    {- ^ /@options@/: a 'GI.Ggit.Objects.DiffFormatEmailOptions.DiffFormatEmailOptions'. -}
    -> m Word64
    {- ^ __Returns:__ the total number of patches. -}
diffFormatEmailOptionsGetTotalPatches options = liftIO $ do
    options' <- unsafeManagedPtrCastPtr options
    result <- ggit_diff_format_email_options_get_total_patches options'
    touchManagedPtr options
    return result

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsGetTotalPatchesMethodInfo
instance (signature ~ (m Word64), MonadIO m, IsDiffFormatEmailOptions a) => O.MethodInfo DiffFormatEmailOptionsGetTotalPatchesMethodInfo a signature where
    overloadedMethod _ = diffFormatEmailOptionsGetTotalPatches

#endif

-- method DiffFormatEmailOptions::set_author
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "options", argType = TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffFormatEmailOptions.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "author", argType = TInterface (Name {namespace = "Ggit", name = "Signature"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GgitSignature.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "ggit_diff_format_email_options_set_author" ggit_diff_format_email_options_set_author :: 
    Ptr DiffFormatEmailOptions ->           -- options : TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"})
    Ptr Ggit.Signature.Signature ->         -- author : TInterface (Name {namespace = "Ggit", name = "Signature"})
    IO ()

{- |
Set the author.
-}
diffFormatEmailOptionsSetAuthor ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiffFormatEmailOptions a, Ggit.Signature.IsSignature b) =>
    a
    {- ^ /@options@/: a 'GI.Ggit.Objects.DiffFormatEmailOptions.DiffFormatEmailOptions'. -}
    -> Maybe (b)
    {- ^ /@author@/: a 'GI.Ggit.Objects.Signature.Signature'. -}
    -> m ()
diffFormatEmailOptionsSetAuthor options author = liftIO $ do
    options' <- unsafeManagedPtrCastPtr options
    maybeAuthor <- case author of
        Nothing -> return nullPtr
        Just jAuthor -> do
            jAuthor' <- unsafeManagedPtrCastPtr jAuthor
            return jAuthor'
    ggit_diff_format_email_options_set_author options' maybeAuthor
    touchManagedPtr options
    whenJust author touchManagedPtr
    return ()

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsSetAuthorMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsDiffFormatEmailOptions a, Ggit.Signature.IsSignature b) => O.MethodInfo DiffFormatEmailOptionsSetAuthorMethodInfo a signature where
    overloadedMethod _ = diffFormatEmailOptionsSetAuthor

#endif

-- method DiffFormatEmailOptions::set_flags
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "options", argType = TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffFormatEmailOptions.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffFormatEmailFlags.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "ggit_diff_format_email_options_set_flags" ggit_diff_format_email_options_set_flags :: 
    Ptr DiffFormatEmailOptions ->           -- options : TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"})
    CUInt ->                                -- flags : TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailFlags"})
    IO ()

{- |
Set the flags.
-}
diffFormatEmailOptionsSetFlags ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiffFormatEmailOptions a) =>
    a
    {- ^ /@options@/: a 'GI.Ggit.Objects.DiffFormatEmailOptions.DiffFormatEmailOptions'. -}
    -> [Ggit.Flags.DiffFormatEmailFlags]
    {- ^ /@flags@/: a 'GI.Ggit.Flags.DiffFormatEmailFlags'. -}
    -> m ()
diffFormatEmailOptionsSetFlags options flags = liftIO $ do
    options' <- unsafeManagedPtrCastPtr options
    let flags' = gflagsToWord flags
    ggit_diff_format_email_options_set_flags options' flags'
    touchManagedPtr options
    return ()

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsSetFlagsMethodInfo
instance (signature ~ ([Ggit.Flags.DiffFormatEmailFlags] -> m ()), MonadIO m, IsDiffFormatEmailOptions a) => O.MethodInfo DiffFormatEmailOptionsSetFlagsMethodInfo a signature where
    overloadedMethod _ = diffFormatEmailOptionsSetFlags

#endif

-- method DiffFormatEmailOptions::set_id
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "options", argType = TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffFormatEmailOptions.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "id", argType = TInterface (Name {namespace = "Ggit", name = "OId"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GgitOId.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "ggit_diff_format_email_options_set_id" ggit_diff_format_email_options_set_id :: 
    Ptr DiffFormatEmailOptions ->           -- options : TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"})
    Ptr Ggit.OId.OId ->                     -- id : TInterface (Name {namespace = "Ggit", name = "OId"})
    IO ()

{- |
Set the object id.
-}
diffFormatEmailOptionsSetId ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiffFormatEmailOptions a) =>
    a
    {- ^ /@options@/: a 'GI.Ggit.Objects.DiffFormatEmailOptions.DiffFormatEmailOptions'. -}
    -> Maybe (Ggit.OId.OId)
    {- ^ /@id@/: a 'GI.Ggit.Structs.OId.OId'. -}
    -> m ()
diffFormatEmailOptionsSetId options id = liftIO $ do
    options' <- unsafeManagedPtrCastPtr options
    maybeId <- case id of
        Nothing -> return nullPtr
        Just jId -> do
            jId' <- unsafeManagedPtrGetPtr jId
            return jId'
    ggit_diff_format_email_options_set_id options' maybeId
    touchManagedPtr options
    whenJust id touchManagedPtr
    return ()

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsSetIdMethodInfo
instance (signature ~ (Maybe (Ggit.OId.OId) -> m ()), MonadIO m, IsDiffFormatEmailOptions a) => O.MethodInfo DiffFormatEmailOptionsSetIdMethodInfo a signature where
    overloadedMethod _ = diffFormatEmailOptionsSetId

#endif

-- method DiffFormatEmailOptions::set_patch_number
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "options", argType = TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffFormatEmailOptions.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "number", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the patch number.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "ggit_diff_format_email_options_set_patch_number" ggit_diff_format_email_options_set_patch_number :: 
    Ptr DiffFormatEmailOptions ->           -- options : TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"})
    Word64 ->                               -- number : TBasicType TUInt64
    IO ()

{- |
Set the patch number.
-}
diffFormatEmailOptionsSetPatchNumber ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiffFormatEmailOptions a) =>
    a
    {- ^ /@options@/: a 'GI.Ggit.Objects.DiffFormatEmailOptions.DiffFormatEmailOptions'. -}
    -> Word64
    {- ^ /@number@/: the patch number. -}
    -> m ()
diffFormatEmailOptionsSetPatchNumber options number = liftIO $ do
    options' <- unsafeManagedPtrCastPtr options
    ggit_diff_format_email_options_set_patch_number options' number
    touchManagedPtr options
    return ()

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsSetPatchNumberMethodInfo
instance (signature ~ (Word64 -> m ()), MonadIO m, IsDiffFormatEmailOptions a) => O.MethodInfo DiffFormatEmailOptionsSetPatchNumberMethodInfo a signature where
    overloadedMethod _ = diffFormatEmailOptionsSetPatchNumber

#endif

-- method DiffFormatEmailOptions::set_summary
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "options", argType = TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffFormatEmailOptions.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "summary", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the summary.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "ggit_diff_format_email_options_set_summary" ggit_diff_format_email_options_set_summary :: 
    Ptr DiffFormatEmailOptions ->           -- options : TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"})
    CString ->                              -- summary : TBasicType TUTF8
    IO ()

{- |
Set the summary.
-}
diffFormatEmailOptionsSetSummary ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiffFormatEmailOptions a) =>
    a
    {- ^ /@options@/: a 'GI.Ggit.Objects.DiffFormatEmailOptions.DiffFormatEmailOptions'. -}
    -> Maybe (T.Text)
    {- ^ /@summary@/: the summary. -}
    -> m ()
diffFormatEmailOptionsSetSummary options summary = liftIO $ do
    options' <- unsafeManagedPtrCastPtr options
    maybeSummary <- case summary of
        Nothing -> return nullPtr
        Just jSummary -> do
            jSummary' <- textToCString jSummary
            return jSummary'
    ggit_diff_format_email_options_set_summary options' maybeSummary
    touchManagedPtr options
    freeMem maybeSummary
    return ()

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsSetSummaryMethodInfo
instance (signature ~ (Maybe (T.Text) -> m ()), MonadIO m, IsDiffFormatEmailOptions a) => O.MethodInfo DiffFormatEmailOptionsSetSummaryMethodInfo a signature where
    overloadedMethod _ = diffFormatEmailOptionsSetSummary

#endif

-- method DiffFormatEmailOptions::set_total_patches
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "options", argType = TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffFormatEmailOptions.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "patches", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the total number of patches.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "ggit_diff_format_email_options_set_total_patches" ggit_diff_format_email_options_set_total_patches :: 
    Ptr DiffFormatEmailOptions ->           -- options : TInterface (Name {namespace = "Ggit", name = "DiffFormatEmailOptions"})
    Word64 ->                               -- patches : TBasicType TUInt64
    IO ()

{- |
Set the total number of patches.
-}
diffFormatEmailOptionsSetTotalPatches ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiffFormatEmailOptions a) =>
    a
    {- ^ /@options@/: a 'GI.Ggit.Objects.DiffFormatEmailOptions.DiffFormatEmailOptions'. -}
    -> Word64
    {- ^ /@patches@/: the total number of patches. -}
    -> m ()
diffFormatEmailOptionsSetTotalPatches options patches = liftIO $ do
    options' <- unsafeManagedPtrCastPtr options
    ggit_diff_format_email_options_set_total_patches options' patches
    touchManagedPtr options
    return ()

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data DiffFormatEmailOptionsSetTotalPatchesMethodInfo
instance (signature ~ (Word64 -> m ()), MonadIO m, IsDiffFormatEmailOptions a) => O.MethodInfo DiffFormatEmailOptionsSetTotalPatchesMethodInfo a signature where
    overloadedMethod _ = diffFormatEmailOptionsSetTotalPatches

#endif