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

    Functionality for manipulating basic metadata for files. 'GI.Gio.Objects.FileInfo.FileInfo'
    implements methods for getting information that all files should
    contain, and allows for manipulation of extended attributes.

    See [GFileAttribute][gio-GFileAttribute] for more information on how
    GIO handles file attributes.

    To obtain a 'GI.Gio.Objects.FileInfo.FileInfo' for a 'GI.Gio.Interfaces.File.File', use 'GI.Gio.Interfaces.File.fileQueryInfo' (or its
    async variant). To obtain a 'GI.Gio.Objects.FileInfo.FileInfo' for a file input or output
    stream, use 'GI.Gio.Objects.FileInputStream.fileInputStreamQueryInfo' or
    'GI.Gio.Objects.FileOutputStream.fileOutputStreamQueryInfo' (or their async variants).

    To change the actual attributes of a file, you should then set the
    attribute in the 'GI.Gio.Objects.FileInfo.FileInfo' and call 'GI.Gio.Interfaces.File.fileSetAttributesFromInfo'
    or 'GI.Gio.Interfaces.File.fileSetAttributesAsync' on a GFile.

    However, not all attributes can be changed in the file. For instance,
    the actual size of a file cannot be changed via 'GI.Gio.Objects.FileInfo.fileInfoSetSize'.
    You may call 'GI.Gio.Interfaces.File.fileQuerySettableAttributes' and
    'GI.Gio.Interfaces.File.fileQueryWritableNamespaces' to discover the settable attributes
    of a particular file at runtime.

    'GI.Gio.Structs.FileAttributeMatcher.FileAttributeMatcher' allows for searching through a 'GI.Gio.Objects.FileInfo.FileInfo' for
    attributes.
    -}

    #define ENABLE_OVERLOADING \
           (!defined(__HADDOCK_VERSION__))

    module GI.Gio.Objects.FileInfo
        (

    -- * Exported types
        FileInfo(..)                            ,
        IsFileInfo                              ,
        toFileInfo                              ,
        noFileInfo                              ,

     -- * Methods
    -- ** clearStatus #method:clearStatus#

    #if ENABLE_OVERLOADING
        FileInfoClearStatusMethodInfo           ,
    #endif
        fileInfoClearStatus                     ,

    -- ** copyInto #method:copyInto#

    #if ENABLE_OVERLOADING
        FileInfoCopyIntoMethodInfo              ,
    #endif
        fileInfoCopyInto                        ,

    -- ** dup #method:dup#

    #if ENABLE_OVERLOADING
        FileInfoDupMethodInfo                   ,
    #endif
        fileInfoDup                             ,

    -- ** getAttributeAsString #method:getAttributeAsString#

    #if ENABLE_OVERLOADING
        FileInfoGetAttributeAsStringMethodInfo  ,
    #endif
        fileInfoGetAttributeAsString            ,

    -- ** getAttributeBoolean #method:getAttributeBoolean#

    #if ENABLE_OVERLOADING
        FileInfoGetAttributeBooleanMethodInfo   ,
    #endif
        fileInfoGetAttributeBoolean             ,

    -- ** getAttributeByteString #method:getAttributeByteString#

    #if ENABLE_OVERLOADING
        FileInfoGetAttributeByteStringMethodInfo,
    #endif
        fileInfoGetAttributeByteString          ,

    -- ** getAttributeData #method:getAttributeData#

    #if ENABLE_OVERLOADING
        FileInfoGetAttributeDataMethodInfo      ,
    #endif
        fileInfoGetAttributeData                ,

    -- ** getAttributeInt32 #method:getAttributeInt32#

    #if ENABLE_OVERLOADING
        FileInfoGetAttributeInt32MethodInfo     ,
    #endif
        fileInfoGetAttributeInt32               ,

    -- ** getAttributeInt64 #method:getAttributeInt64#

    #if ENABLE_OVERLOADING
        FileInfoGetAttributeInt64MethodInfo     ,
    #endif
        fileInfoGetAttributeInt64               ,

    -- ** getAttributeObject #method:getAttributeObject#

    #if ENABLE_OVERLOADING
        FileInfoGetAttributeObjectMethodInfo    ,
    #endif
        fileInfoGetAttributeObject              ,

    -- ** getAttributeStatus #method:getAttributeStatus#

    #if ENABLE_OVERLOADING
        FileInfoGetAttributeStatusMethodInfo    ,
    #endif
        fileInfoGetAttributeStatus              ,

    -- ** getAttributeString #method:getAttributeString#

    #if ENABLE_OVERLOADING
        FileInfoGetAttributeStringMethodInfo    ,
    #endif
        fileInfoGetAttributeString              ,

    -- ** getAttributeStringv #method:getAttributeStringv#

    #if ENABLE_OVERLOADING
        FileInfoGetAttributeStringvMethodInfo   ,
    #endif
        fileInfoGetAttributeStringv             ,

    -- ** getAttributeType #method:getAttributeType#

    #if ENABLE_OVERLOADING
        FileInfoGetAttributeTypeMethodInfo      ,
    #endif
        fileInfoGetAttributeType                ,

    -- ** getAttributeUint32 #method:getAttributeUint32#

    #if ENABLE_OVERLOADING
        FileInfoGetAttributeUint32MethodInfo    ,
    #endif
        fileInfoGetAttributeUint32              ,

    -- ** getAttributeUint64 #method:getAttributeUint64#

    #if ENABLE_OVERLOADING
        FileInfoGetAttributeUint64MethodInfo    ,
    #endif
        fileInfoGetAttributeUint64              ,

    -- ** getContentType #method:getContentType#

    #if ENABLE_OVERLOADING
        FileInfoGetContentTypeMethodInfo        ,
    #endif
        fileInfoGetContentType                  ,

    -- ** getDeletionDate #method:getDeletionDate#

    #if ENABLE_OVERLOADING
        FileInfoGetDeletionDateMethodInfo       ,
    #endif
        fileInfoGetDeletionDate                 ,

    -- ** getDisplayName #method:getDisplayName#

    #if ENABLE_OVERLOADING
        FileInfoGetDisplayNameMethodInfo        ,
    #endif
        fileInfoGetDisplayName                  ,

    -- ** getEditName #method:getEditName#

    #if ENABLE_OVERLOADING
        FileInfoGetEditNameMethodInfo           ,
    #endif
        fileInfoGetEditName                     ,

    -- ** getEtag #method:getEtag#

    #if ENABLE_OVERLOADING
        FileInfoGetEtagMethodInfo               ,
    #endif
        fileInfoGetEtag                         ,

    -- ** getFileType #method:getFileType#

    #if ENABLE_OVERLOADING
        FileInfoGetFileTypeMethodInfo           ,
    #endif
        fileInfoGetFileType                     ,

    -- ** getIcon #method:getIcon#

    #if ENABLE_OVERLOADING
        FileInfoGetIconMethodInfo               ,
    #endif
        fileInfoGetIcon                         ,

    -- ** getIsBackup #method:getIsBackup#

    #if ENABLE_OVERLOADING
        FileInfoGetIsBackupMethodInfo           ,
    #endif
        fileInfoGetIsBackup                     ,

    -- ** getIsHidden #method:getIsHidden#

    #if ENABLE_OVERLOADING
        FileInfoGetIsHiddenMethodInfo           ,
    #endif
        fileInfoGetIsHidden                     ,

    -- ** getIsSymlink #method:getIsSymlink#

    #if ENABLE_OVERLOADING
        FileInfoGetIsSymlinkMethodInfo          ,
    #endif
        fileInfoGetIsSymlink                    ,

    -- ** getModificationTime #method:getModificationTime#

    #if ENABLE_OVERLOADING
        FileInfoGetModificationTimeMethodInfo   ,
    #endif
        fileInfoGetModificationTime             ,

    -- ** getName #method:getName#

    #if ENABLE_OVERLOADING
        FileInfoGetNameMethodInfo               ,
    #endif
        fileInfoGetName                         ,

    -- ** getSize #method:getSize#

    #if ENABLE_OVERLOADING
        FileInfoGetSizeMethodInfo               ,
    #endif
        fileInfoGetSize                         ,

    -- ** getSortOrder #method:getSortOrder#

    #if ENABLE_OVERLOADING
        FileInfoGetSortOrderMethodInfo          ,
    #endif
        fileInfoGetSortOrder                    ,

    -- ** getSymbolicIcon #method:getSymbolicIcon#

    #if ENABLE_OVERLOADING
        FileInfoGetSymbolicIconMethodInfo       ,
    #endif
        fileInfoGetSymbolicIcon                 ,

    -- ** getSymlinkTarget #method:getSymlinkTarget#

    #if ENABLE_OVERLOADING
        FileInfoGetSymlinkTargetMethodInfo      ,
    #endif
        fileInfoGetSymlinkTarget                ,

    -- ** hasAttribute #method:hasAttribute#

    #if ENABLE_OVERLOADING
        FileInfoHasAttributeMethodInfo          ,
    #endif
        fileInfoHasAttribute                    ,

    -- ** hasNamespace #method:hasNamespace#

    #if ENABLE_OVERLOADING
        FileInfoHasNamespaceMethodInfo          ,
    #endif
        fileInfoHasNamespace                    ,

    -- ** listAttributes #method:listAttributes#

    #if ENABLE_OVERLOADING
        FileInfoListAttributesMethodInfo        ,
    #endif
        fileInfoListAttributes                  ,

    -- ** new #method:new#

        fileInfoNew                             ,

    -- ** removeAttribute #method:removeAttribute#

    #if ENABLE_OVERLOADING
        FileInfoRemoveAttributeMethodInfo       ,
    #endif
        fileInfoRemoveAttribute                 ,

    -- ** setAttribute #method:setAttribute#

    #if ENABLE_OVERLOADING
        FileInfoSetAttributeMethodInfo          ,
    #endif
        fileInfoSetAttribute                    ,

    -- ** setAttributeBoolean #method:setAttributeBoolean#

    #if ENABLE_OVERLOADING
        FileInfoSetAttributeBooleanMethodInfo   ,
    #endif
        fileInfoSetAttributeBoolean             ,

    -- ** setAttributeByteString #method:setAttributeByteString#

    #if ENABLE_OVERLOADING
        FileInfoSetAttributeByteStringMethodInfo,
    #endif
        fileInfoSetAttributeByteString          ,

    -- ** setAttributeInt32 #method:setAttributeInt32#

    #if ENABLE_OVERLOADING
        FileInfoSetAttributeInt32MethodInfo     ,
    #endif
        fileInfoSetAttributeInt32               ,

    -- ** setAttributeInt64 #method:setAttributeInt64#

    #if ENABLE_OVERLOADING
        FileInfoSetAttributeInt64MethodInfo     ,
    #endif
        fileInfoSetAttributeInt64               ,

    -- ** setAttributeMask #method:setAttributeMask#

    #if ENABLE_OVERLOADING
        FileInfoSetAttributeMaskMethodInfo      ,
    #endif
        fileInfoSetAttributeMask                ,

    -- ** setAttributeObject #method:setAttributeObject#

    #if ENABLE_OVERLOADING
        FileInfoSetAttributeObjectMethodInfo    ,
    #endif
        fileInfoSetAttributeObject              ,

    -- ** setAttributeStatus #method:setAttributeStatus#

    #if ENABLE_OVERLOADING
        FileInfoSetAttributeStatusMethodInfo    ,
    #endif
        fileInfoSetAttributeStatus              ,

    -- ** setAttributeString #method:setAttributeString#

    #if ENABLE_OVERLOADING
        FileInfoSetAttributeStringMethodInfo    ,
    #endif
        fileInfoSetAttributeString              ,

    -- ** setAttributeStringv #method:setAttributeStringv#

    #if ENABLE_OVERLOADING
        FileInfoSetAttributeStringvMethodInfo   ,
    #endif
        fileInfoSetAttributeStringv             ,

    -- ** setAttributeUint32 #method:setAttributeUint32#

    #if ENABLE_OVERLOADING
        FileInfoSetAttributeUint32MethodInfo    ,
    #endif
        fileInfoSetAttributeUint32              ,

    -- ** setAttributeUint64 #method:setAttributeUint64#

    #if ENABLE_OVERLOADING
        FileInfoSetAttributeUint64MethodInfo    ,
    #endif
        fileInfoSetAttributeUint64              ,

    -- ** setContentType #method:setContentType#

    #if ENABLE_OVERLOADING
        FileInfoSetContentTypeMethodInfo        ,
    #endif
        fileInfoSetContentType                  ,

    -- ** setDisplayName #method:setDisplayName#

    #if ENABLE_OVERLOADING
        FileInfoSetDisplayNameMethodInfo        ,
    #endif
        fileInfoSetDisplayName                  ,

    -- ** setEditName #method:setEditName#

    #if ENABLE_OVERLOADING
        FileInfoSetEditNameMethodInfo           ,
    #endif
        fileInfoSetEditName                     ,

    -- ** setFileType #method:setFileType#

    #if ENABLE_OVERLOADING
        FileInfoSetFileTypeMethodInfo           ,
    #endif
        fileInfoSetFileType                     ,

    -- ** setIcon #method:setIcon#

    #if ENABLE_OVERLOADING
        FileInfoSetIconMethodInfo               ,
    #endif
        fileInfoSetIcon                         ,

    -- ** setIsHidden #method:setIsHidden#

    #if ENABLE_OVERLOADING
        FileInfoSetIsHiddenMethodInfo           ,
    #endif
        fileInfoSetIsHidden                     ,

    -- ** setIsSymlink #method:setIsSymlink#

    #if ENABLE_OVERLOADING
        FileInfoSetIsSymlinkMethodInfo          ,
    #endif
        fileInfoSetIsSymlink                    ,

    -- ** setModificationTime #method:setModificationTime#

    #if ENABLE_OVERLOADING
        FileInfoSetModificationTimeMethodInfo   ,
    #endif
        fileInfoSetModificationTime             ,

    -- ** setName #method:setName#

    #if ENABLE_OVERLOADING
        FileInfoSetNameMethodInfo               ,
    #endif
        fileInfoSetName                         ,

    -- ** setSize #method:setSize#

    #if ENABLE_OVERLOADING
        FileInfoSetSizeMethodInfo               ,
    #endif
        fileInfoSetSize                         ,

    -- ** setSortOrder #method:setSortOrder#

    #if ENABLE_OVERLOADING
        FileInfoSetSortOrderMethodInfo          ,
    #endif
        fileInfoSetSortOrder                    ,

    -- ** setSymbolicIcon #method:setSymbolicIcon#

    #if ENABLE_OVERLOADING
        FileInfoSetSymbolicIconMethodInfo       ,
    #endif
        fileInfoSetSymbolicIcon                 ,

    -- ** setSymlinkTarget #method:setSymlinkTarget#

    #if ENABLE_OVERLOADING
        FileInfoSetSymlinkTargetMethodInfo      ,
    #endif
        fileInfoSetSymlinkTarget                ,

    -- ** unsetAttributeMask #method:unsetAttributeMask#

    #if ENABLE_OVERLOADING
        FileInfoUnsetAttributeMaskMethodInfo    ,
    #endif
        fileInfoUnsetAttributeMask              ,

        ) 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.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.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.GLib.Structs.DateTime as GLib.DateTime
    import qualified GI.GLib.Structs.TimeVal as GLib.TimeVal
    import qualified GI.GObject.Objects.Object as GObject.Object
    import {-# SOURCE #-} qualified GI.Gio.Enums as Gio.Enums
    import {-# SOURCE #-} qualified GI.Gio.Interfaces.Icon as Gio.Icon
    import {-# SOURCE #-} qualified GI.Gio.Structs.FileAttributeMatcher as Gio.FileAttributeMatcher

    -- | Memory-managed wrapper type.
    newtype FileInfo = FileInfo (ManagedPtr FileInfo)
    foreign import ccall "g_file_info_get_type"
        c_g_file_info_get_type :: IO GType

    instance GObject FileInfo where
        gobjectType _ = c_g_file_info_get_type

    -- | Type class for types which can be safely cast to `FileInfo`, for instance with `toFileInfo`.
    class GObject o => IsFileInfo o
    #if MIN_VERSION_base(4,9,0)
    instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError FileInfo a) =>
        IsFileInfo a
    #endif
    instance IsFileInfo FileInfo
    instance GObject.Object.IsObject FileInfo

    -- | Cast to `FileInfo`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
    toFileInfo :: (MonadIO m, IsFileInfo o) => o -> m FileInfo
    toFileInfo = liftIO . unsafeCastTo FileInfo

    -- | A convenience alias for `Nothing` :: `Maybe` `FileInfo`.
    noFileInfo :: Maybe FileInfo
    noFileInfo = Nothing

    #if ENABLE_OVERLOADING
    type family ResolveFileInfoMethod (t :: Symbol) (o :: *) :: * where
        ResolveFileInfoMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
        ResolveFileInfoMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
        ResolveFileInfoMethod "clearStatus" o = FileInfoClearStatusMethodInfo
        ResolveFileInfoMethod "copyInto" o = FileInfoCopyIntoMethodInfo
        ResolveFileInfoMethod "dup" o = FileInfoDupMethodInfo
        ResolveFileInfoMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
        ResolveFileInfoMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
        ResolveFileInfoMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
        ResolveFileInfoMethod "hasAttribute" o = FileInfoHasAttributeMethodInfo
        ResolveFileInfoMethod "hasNamespace" o = FileInfoHasNamespaceMethodInfo
        ResolveFileInfoMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
        ResolveFileInfoMethod "listAttributes" o = FileInfoListAttributesMethodInfo
        ResolveFileInfoMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
        ResolveFileInfoMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
        ResolveFileInfoMethod "ref" o = GObject.Object.ObjectRefMethodInfo
        ResolveFileInfoMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
        ResolveFileInfoMethod "removeAttribute" o = FileInfoRemoveAttributeMethodInfo
        ResolveFileInfoMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
        ResolveFileInfoMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
        ResolveFileInfoMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
        ResolveFileInfoMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
        ResolveFileInfoMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
        ResolveFileInfoMethod "unsetAttributeMask" o = FileInfoUnsetAttributeMaskMethodInfo
        ResolveFileInfoMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
        ResolveFileInfoMethod "getAttributeAsString" o = FileInfoGetAttributeAsStringMethodInfo
        ResolveFileInfoMethod "getAttributeBoolean" o = FileInfoGetAttributeBooleanMethodInfo
        ResolveFileInfoMethod "getAttributeByteString" o = FileInfoGetAttributeByteStringMethodInfo
        ResolveFileInfoMethod "getAttributeData" o = FileInfoGetAttributeDataMethodInfo
        ResolveFileInfoMethod "getAttributeInt32" o = FileInfoGetAttributeInt32MethodInfo
        ResolveFileInfoMethod "getAttributeInt64" o = FileInfoGetAttributeInt64MethodInfo
        ResolveFileInfoMethod "getAttributeObject" o = FileInfoGetAttributeObjectMethodInfo
        ResolveFileInfoMethod "getAttributeStatus" o = FileInfoGetAttributeStatusMethodInfo
        ResolveFileInfoMethod "getAttributeString" o = FileInfoGetAttributeStringMethodInfo
        ResolveFileInfoMethod "getAttributeStringv" o = FileInfoGetAttributeStringvMethodInfo
        ResolveFileInfoMethod "getAttributeType" o = FileInfoGetAttributeTypeMethodInfo
        ResolveFileInfoMethod "getAttributeUint32" o = FileInfoGetAttributeUint32MethodInfo
        ResolveFileInfoMethod "getAttributeUint64" o = FileInfoGetAttributeUint64MethodInfo
        ResolveFileInfoMethod "getContentType" o = FileInfoGetContentTypeMethodInfo
        ResolveFileInfoMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
        ResolveFileInfoMethod "getDeletionDate" o = FileInfoGetDeletionDateMethodInfo
        ResolveFileInfoMethod "getDisplayName" o = FileInfoGetDisplayNameMethodInfo
        ResolveFileInfoMethod "getEditName" o = FileInfoGetEditNameMethodInfo
        ResolveFileInfoMethod "getEtag" o = FileInfoGetEtagMethodInfo
        ResolveFileInfoMethod "getFileType" o = FileInfoGetFileTypeMethodInfo
        ResolveFileInfoMethod "getIcon" o = FileInfoGetIconMethodInfo
        ResolveFileInfoMethod "getIsBackup" o = FileInfoGetIsBackupMethodInfo
        ResolveFileInfoMethod "getIsHidden" o = FileInfoGetIsHiddenMethodInfo
        ResolveFileInfoMethod "getIsSymlink" o = FileInfoGetIsSymlinkMethodInfo
        ResolveFileInfoMethod "getModificationTime" o = FileInfoGetModificationTimeMethodInfo
        ResolveFileInfoMethod "getName" o = FileInfoGetNameMethodInfo
        ResolveFileInfoMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
        ResolveFileInfoMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
        ResolveFileInfoMethod "getSize" o = FileInfoGetSizeMethodInfo
        ResolveFileInfoMethod "getSortOrder" o = FileInfoGetSortOrderMethodInfo
        ResolveFileInfoMethod "getSymbolicIcon" o = FileInfoGetSymbolicIconMethodInfo
        ResolveFileInfoMethod "getSymlinkTarget" o = FileInfoGetSymlinkTargetMethodInfo
        ResolveFileInfoMethod "setAttribute" o = FileInfoSetAttributeMethodInfo
        ResolveFileInfoMethod "setAttributeBoolean" o = FileInfoSetAttributeBooleanMethodInfo
        ResolveFileInfoMethod "setAttributeByteString" o = FileInfoSetAttributeByteStringMethodInfo
        ResolveFileInfoMethod "setAttributeInt32" o = FileInfoSetAttributeInt32MethodInfo
        ResolveFileInfoMethod "setAttributeInt64" o = FileInfoSetAttributeInt64MethodInfo
        ResolveFileInfoMethod "setAttributeMask" o = FileInfoSetAttributeMaskMethodInfo
        ResolveFileInfoMethod "setAttributeObject" o = FileInfoSetAttributeObjectMethodInfo
        ResolveFileInfoMethod "setAttributeStatus" o = FileInfoSetAttributeStatusMethodInfo
        ResolveFileInfoMethod "setAttributeString" o = FileInfoSetAttributeStringMethodInfo
        ResolveFileInfoMethod "setAttributeStringv" o = FileInfoSetAttributeStringvMethodInfo
        ResolveFileInfoMethod "setAttributeUint32" o = FileInfoSetAttributeUint32MethodInfo
        ResolveFileInfoMethod "setAttributeUint64" o = FileInfoSetAttributeUint64MethodInfo
        ResolveFileInfoMethod "setContentType" o = FileInfoSetContentTypeMethodInfo
        ResolveFileInfoMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
        ResolveFileInfoMethod "setDisplayName" o = FileInfoSetDisplayNameMethodInfo
        ResolveFileInfoMethod "setEditName" o = FileInfoSetEditNameMethodInfo
        ResolveFileInfoMethod "setFileType" o = FileInfoSetFileTypeMethodInfo
        ResolveFileInfoMethod "setIcon" o = FileInfoSetIconMethodInfo
        ResolveFileInfoMethod "setIsHidden" o = FileInfoSetIsHiddenMethodInfo
        ResolveFileInfoMethod "setIsSymlink" o = FileInfoSetIsSymlinkMethodInfo
        ResolveFileInfoMethod "setModificationTime" o = FileInfoSetModificationTimeMethodInfo
        ResolveFileInfoMethod "setName" o = FileInfoSetNameMethodInfo
        ResolveFileInfoMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
        ResolveFileInfoMethod "setSize" o = FileInfoSetSizeMethodInfo
        ResolveFileInfoMethod "setSortOrder" o = FileInfoSetSortOrderMethodInfo
        ResolveFileInfoMethod "setSymbolicIcon" o = FileInfoSetSymbolicIconMethodInfo
        ResolveFileInfoMethod "setSymlinkTarget" o = FileInfoSetSymlinkTargetMethodInfo
        ResolveFileInfoMethod l o = O.MethodResolutionFailed l o

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

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

    #if ENABLE_OVERLOADING
    instance O.HasAttributeList FileInfo
    type instance O.AttributeList FileInfo = FileInfoAttributeList
    type FileInfoAttributeList = ('[ ] :: [(Symbol, *)])
    #endif

    #if ENABLE_OVERLOADING
    #endif

    #if ENABLE_OVERLOADING
    type instance O.SignalList FileInfo = FileInfoSignalList
    type FileInfoSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])

    #endif

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

    foreign import ccall "g_file_info_new" g_file_info_new ::
        IO (Ptr FileInfo)

    {- |
    Creates a new file info structure.
    -}
    fileInfoNew ::
        (B.CallStack.HasCallStack, MonadIO m) =>
        m FileInfo
        {- ^ __Returns:__ a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
    fileInfoNew  = liftIO $ do
        result <- g_file_info_new
        checkUnexpectedReturnNULL "fileInfoNew" result
        result' <- (wrapObject FileInfo) result
        return result'

    #if ENABLE_OVERLOADING
    #endif

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

    foreign import ccall "g_file_info_clear_status" g_file_info_clear_status ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO ()

    {- |
    Clears the status information from /@info@/.
    -}
    fileInfoClearStatus ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m ()
    fileInfoClearStatus info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        g_file_info_clear_status info'
        touchManagedPtr info
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoClearStatusMethodInfo
    instance (signature ~ (m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoClearStatusMethodInfo a signature where
        overloadedMethod _ = fileInfoClearStatus

    #endif

    -- method FileInfo::copy_into
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "src_info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "source to copy attributes from.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "destination to copy attributes to.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_copy_into" g_file_info_copy_into ::
        Ptr FileInfo ->                         -- src_info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        Ptr FileInfo ->                         -- dest_info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO ()

    {- |
    First clears all of the [GFileAttribute][gio-GFileAttribute] of /@destInfo@/,
    and then copies all of the file attributes from /@srcInfo@/ to /@destInfo@/.
    -}
    fileInfoCopyInto ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a, IsFileInfo b) =>
        a
        {- ^ /@srcInfo@/: source to copy attributes from. -}
        -> b
        {- ^ /@destInfo@/: destination to copy attributes to. -}
        -> m ()
    fileInfoCopyInto srcInfo destInfo = liftIO $ do
        srcInfo' <- unsafeManagedPtrCastPtr srcInfo
        destInfo' <- unsafeManagedPtrCastPtr destInfo
        g_file_info_copy_into srcInfo' destInfo'
        touchManagedPtr srcInfo
        touchManagedPtr destInfo
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoCopyIntoMethodInfo
    instance (signature ~ (b -> m ()), MonadIO m, IsFileInfo a, IsFileInfo b) => O.MethodInfo FileInfoCopyIntoMethodInfo a signature where
        overloadedMethod _ = fileInfoCopyInto

    #endif

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

    foreign import ccall "g_file_info_dup" g_file_info_dup ::
        Ptr FileInfo ->                         -- other : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO (Ptr FileInfo)

    {- |
    Duplicates a file info structure.
    -}
    fileInfoDup ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@other@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m FileInfo
        {- ^ __Returns:__ a duplicate 'GI.Gio.Objects.FileInfo.FileInfo' of /@other@/. -}
    fileInfoDup other = liftIO $ do
        other' <- unsafeManagedPtrCastPtr other
        result <- g_file_info_dup other'
        checkUnexpectedReturnNULL "fileInfoDup" result
        result' <- (wrapObject FileInfo) result
        touchManagedPtr other
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoDupMethodInfo
    instance (signature ~ (m FileInfo), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoDupMethodInfo a signature where
        overloadedMethod _ = fileInfoDup

    #endif

    -- method FileInfo::get_attribute_as_string
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", 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 "g_file_info_get_attribute_as_string" g_file_info_get_attribute_as_string ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        IO CString

    {- |
    Gets the value of a attribute, formated as a string.
    This escapes things as needed to make the string valid
    utf8.
    -}
    fileInfoGetAttributeAsString ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> m T.Text
        {- ^ __Returns:__ a UTF-8 string associated with the given /@attribute@/.
       When you\'re done with the string it must be freed with 'GI.GLib.Functions.free'. -}
    fileInfoGetAttributeAsString info attribute = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        result <- g_file_info_get_attribute_as_string info' attribute'
        checkUnexpectedReturnNULL "fileInfoGetAttributeAsString" result
        result' <- cstringToText result
        freeMem result
        touchManagedPtr info
        freeMem attribute'
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetAttributeAsStringMethodInfo
    instance (signature ~ (T.Text -> m T.Text), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetAttributeAsStringMethodInfo a signature where
        overloadedMethod _ = fileInfoGetAttributeAsString

    #endif

    -- method FileInfo::get_attribute_boolean
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", 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 "g_file_info_get_attribute_boolean" g_file_info_get_attribute_boolean ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        IO CInt

    {- |
    Gets the value of a boolean attribute. If the attribute does not
    contain a boolean value, 'False' will be returned.
    -}
    fileInfoGetAttributeBoolean ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> m Bool
        {- ^ __Returns:__ the boolean value contained within the attribute. -}
    fileInfoGetAttributeBoolean info attribute = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        result <- g_file_info_get_attribute_boolean info' attribute'
        let result' = (/= 0) result
        touchManagedPtr info
        freeMem attribute'
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetAttributeBooleanMethodInfo
    instance (signature ~ (T.Text -> m Bool), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetAttributeBooleanMethodInfo a signature where
        overloadedMethod _ = fileInfoGetAttributeBoolean

    #endif

    -- method FileInfo::get_attribute_byte_string
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", 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 "g_file_info_get_attribute_byte_string" g_file_info_get_attribute_byte_string ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        IO CString

    {- |
    Gets the value of a byte string attribute. If the attribute does
    not contain a byte string, 'Nothing' will be returned.
    -}
    fileInfoGetAttributeByteString ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> m T.Text
        {- ^ __Returns:__ the contents of the /@attribute@/ value as a byte string, or
    'Nothing' otherwise. -}
    fileInfoGetAttributeByteString info attribute = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        result <- g_file_info_get_attribute_byte_string info' attribute'
        checkUnexpectedReturnNULL "fileInfoGetAttributeByteString" result
        result' <- cstringToText result
        touchManagedPtr info
        freeMem attribute'
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetAttributeByteStringMethodInfo
    instance (signature ~ (T.Text -> m T.Text), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetAttributeByteStringMethodInfo a signature where
        overloadedMethod _ = fileInfoGetAttributeByteString

    #endif

    -- method FileInfo::get_attribute_data
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface (Name {namespace = "Gio", name = "FileAttributeType"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for the attribute type, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "value_pp", argType = TBasicType TPtr, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for the\n   attribute value, or %NULL; the attribute value will not be %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "status", argType = TInterface (Name {namespace = "Gio", name = "FileAttributeStatus"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for the attribute status, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
    -- Lengths : []
    -- returnType : Just (TBasicType TBoolean)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_get_attribute_data" g_file_info_get_attribute_data ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        Ptr CUInt ->                            -- type : TInterface (Name {namespace = "Gio", name = "FileAttributeType"})
        Ptr (Ptr ()) ->                         -- value_pp : TBasicType TPtr
        Ptr CUInt ->                            -- status : TInterface (Name {namespace = "Gio", name = "FileAttributeStatus"})
        IO CInt

    {- |
    Gets the attribute type, value and status for an attribute key.
    -}
    fileInfoGetAttributeData ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo' -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key -}
        -> m ((Bool, Gio.Enums.FileAttributeType, Ptr (), Gio.Enums.FileAttributeStatus))
        {- ^ __Returns:__ 'True' if /@info@/ has an attribute named /@attribute@/,
         'False' otherwise. -}
    fileInfoGetAttributeData info attribute = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        type_ <- allocMem :: IO (Ptr CUInt)
        valuePp <- allocMem :: IO (Ptr (Ptr ()))
        status <- allocMem :: IO (Ptr CUInt)
        result <- g_file_info_get_attribute_data info' attribute' type_ valuePp status
        let result' = (/= 0) result
        type_' <- peek type_
        let type_'' = (toEnum . fromIntegral) type_'
        valuePp' <- peek valuePp
        status' <- peek status
        let status'' = (toEnum . fromIntegral) status'
        touchManagedPtr info
        freeMem attribute'
        freeMem type_
        freeMem valuePp
        freeMem status
        return (result', type_'', valuePp', status'')

    #if ENABLE_OVERLOADING
    data FileInfoGetAttributeDataMethodInfo
    instance (signature ~ (T.Text -> m ((Bool, Gio.Enums.FileAttributeType, Ptr (), Gio.Enums.FileAttributeStatus))), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetAttributeDataMethodInfo a signature where
        overloadedMethod _ = fileInfoGetAttributeData

    #endif

    -- method FileInfo::get_attribute_int32
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Just (TBasicType TInt32)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_get_attribute_int32" g_file_info_get_attribute_int32 ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        IO Int32

    {- |
    Gets a signed 32-bit integer contained within the attribute. If the
    attribute does not contain a signed 32-bit integer, or is invalid,
    0 will be returned.
    -}
    fileInfoGetAttributeInt32 ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> m Int32
        {- ^ __Returns:__ a signed 32-bit integer from the attribute. -}
    fileInfoGetAttributeInt32 info attribute = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        result <- g_file_info_get_attribute_int32 info' attribute'
        touchManagedPtr info
        freeMem attribute'
        return result

    #if ENABLE_OVERLOADING
    data FileInfoGetAttributeInt32MethodInfo
    instance (signature ~ (T.Text -> m Int32), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetAttributeInt32MethodInfo a signature where
        overloadedMethod _ = fileInfoGetAttributeInt32

    #endif

    -- method FileInfo::get_attribute_int64
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Just (TBasicType TInt64)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_get_attribute_int64" g_file_info_get_attribute_int64 ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        IO Int64

    {- |
    Gets a signed 64-bit integer contained within the attribute. If the
    attribute does not contain an signed 64-bit integer, or is invalid,
    0 will be returned.
    -}
    fileInfoGetAttributeInt64 ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> m Int64
        {- ^ __Returns:__ a signed 64-bit integer from the attribute. -}
    fileInfoGetAttributeInt64 info attribute = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        result <- g_file_info_get_attribute_int64 info' attribute'
        touchManagedPtr info
        freeMem attribute'
        return result

    #if ENABLE_OVERLOADING
    data FileInfoGetAttributeInt64MethodInfo
    instance (signature ~ (T.Text -> m Int64), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetAttributeInt64MethodInfo a signature where
        overloadedMethod _ = fileInfoGetAttributeInt64

    #endif

    -- method FileInfo::get_attribute_object
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Just (TInterface (Name {namespace = "GObject", name = "Object"}))
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_get_attribute_object" g_file_info_get_attribute_object ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        IO (Ptr GObject.Object.Object)

    {- |
    Gets the value of a 'GI.GObject.Objects.Object.Object' attribute. If the attribute does
    not contain a 'GI.GObject.Objects.Object.Object', 'Nothing' will be returned.
    -}
    fileInfoGetAttributeObject ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> m GObject.Object.Object
        {- ^ __Returns:__ a 'GI.GObject.Objects.Object.Object' associated with the given /@attribute@/, or
    'Nothing' otherwise. -}
    fileInfoGetAttributeObject info attribute = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        result <- g_file_info_get_attribute_object info' attribute'
        checkUnexpectedReturnNULL "fileInfoGetAttributeObject" result
        result' <- (newObject GObject.Object.Object) result
        touchManagedPtr info
        freeMem attribute'
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetAttributeObjectMethodInfo
    instance (signature ~ (T.Text -> m GObject.Object.Object), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetAttributeObjectMethodInfo a signature where
        overloadedMethod _ = fileInfoGetAttributeObject

    #endif

    -- method FileInfo::get_attribute_status
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Just (TInterface (Name {namespace = "Gio", name = "FileAttributeStatus"}))
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_get_attribute_status" g_file_info_get_attribute_status ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        IO CUInt

    {- |
    Gets the attribute status for an attribute key.
    -}
    fileInfoGetAttributeStatus ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo' -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key -}
        -> m Gio.Enums.FileAttributeStatus
        {- ^ __Returns:__ a 'GI.Gio.Enums.FileAttributeStatus' for the given /@attribute@/, or
       'GI.Gio.Enums.FileAttributeStatusUnset' if the key is invalid. -}
    fileInfoGetAttributeStatus info attribute = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        result <- g_file_info_get_attribute_status info' attribute'
        let result' = (toEnum . fromIntegral) result
        touchManagedPtr info
        freeMem attribute'
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetAttributeStatusMethodInfo
    instance (signature ~ (T.Text -> m Gio.Enums.FileAttributeStatus), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetAttributeStatusMethodInfo a signature where
        overloadedMethod _ = fileInfoGetAttributeStatus

    #endif

    -- method FileInfo::get_attribute_string
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", 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 "g_file_info_get_attribute_string" g_file_info_get_attribute_string ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        IO CString

    {- |
    Gets the value of a string attribute. If the attribute does
    not contain a string, 'Nothing' will be returned.
    -}
    fileInfoGetAttributeString ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> m T.Text
        {- ^ __Returns:__ the contents of the /@attribute@/ value as a UTF-8 string, or
    'Nothing' otherwise. -}
    fileInfoGetAttributeString info attribute = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        result <- g_file_info_get_attribute_string info' attribute'
        checkUnexpectedReturnNULL "fileInfoGetAttributeString" result
        result' <- cstringToText result
        touchManagedPtr info
        freeMem attribute'
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetAttributeStringMethodInfo
    instance (signature ~ (T.Text -> m T.Text), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetAttributeStringMethodInfo a signature where
        overloadedMethod _ = fileInfoGetAttributeString

    #endif

    -- method FileInfo::get_attribute_stringv
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_get_attribute_stringv" g_file_info_get_attribute_stringv ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        IO (Ptr CString)

    {- |
    Gets the value of a stringv attribute. If the attribute does
    not contain a stringv, 'Nothing' will be returned.

    /Since: 2.22/
    -}
    fileInfoGetAttributeStringv ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> m [T.Text]
        {- ^ __Returns:__ the contents of the /@attribute@/ value as a stringv, or
    'Nothing' otherwise. Do not free. These returned strings are UTF-8. -}
    fileInfoGetAttributeStringv info attribute = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        result <- g_file_info_get_attribute_stringv info' attribute'
        checkUnexpectedReturnNULL "fileInfoGetAttributeStringv" result
        result' <- unpackZeroTerminatedUTF8CArray result
        touchManagedPtr info
        freeMem attribute'
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetAttributeStringvMethodInfo
    instance (signature ~ (T.Text -> m [T.Text]), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetAttributeStringvMethodInfo a signature where
        overloadedMethod _ = fileInfoGetAttributeStringv

    #endif

    -- method FileInfo::get_attribute_type
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Just (TInterface (Name {namespace = "Gio", name = "FileAttributeType"}))
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_get_attribute_type" g_file_info_get_attribute_type ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        IO CUInt

    {- |
    Gets the attribute type for an attribute key.
    -}
    fileInfoGetAttributeType ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> m Gio.Enums.FileAttributeType
        {- ^ __Returns:__ a 'GI.Gio.Enums.FileAttributeType' for the given /@attribute@/, or
    'GI.Gio.Enums.FileAttributeTypeInvalid' if the key is not set. -}
    fileInfoGetAttributeType info attribute = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        result <- g_file_info_get_attribute_type info' attribute'
        let result' = (toEnum . fromIntegral) result
        touchManagedPtr info
        freeMem attribute'
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetAttributeTypeMethodInfo
    instance (signature ~ (T.Text -> m Gio.Enums.FileAttributeType), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetAttributeTypeMethodInfo a signature where
        overloadedMethod _ = fileInfoGetAttributeType

    #endif

    -- method FileInfo::get_attribute_uint32
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Just (TBasicType TUInt32)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_get_attribute_uint32" g_file_info_get_attribute_uint32 ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        IO Word32

    {- |
    Gets an unsigned 32-bit integer contained within the attribute. If the
    attribute does not contain an unsigned 32-bit integer, or is invalid,
    0 will be returned.
    -}
    fileInfoGetAttributeUint32 ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> m Word32
        {- ^ __Returns:__ an unsigned 32-bit integer from the attribute. -}
    fileInfoGetAttributeUint32 info attribute = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        result <- g_file_info_get_attribute_uint32 info' attribute'
        touchManagedPtr info
        freeMem attribute'
        return result

    #if ENABLE_OVERLOADING
    data FileInfoGetAttributeUint32MethodInfo
    instance (signature ~ (T.Text -> m Word32), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetAttributeUint32MethodInfo a signature where
        overloadedMethod _ = fileInfoGetAttributeUint32

    #endif

    -- method FileInfo::get_attribute_uint64
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", 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 "g_file_info_get_attribute_uint64" g_file_info_get_attribute_uint64 ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        IO Word64

    {- |
    Gets a unsigned 64-bit integer contained within the attribute. If the
    attribute does not contain an unsigned 64-bit integer, or is invalid,
    0 will be returned.
    -}
    fileInfoGetAttributeUint64 ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> m Word64
        {- ^ __Returns:__ a unsigned 64-bit integer from the attribute. -}
    fileInfoGetAttributeUint64 info attribute = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        result <- g_file_info_get_attribute_uint64 info' attribute'
        touchManagedPtr info
        freeMem attribute'
        return result

    #if ENABLE_OVERLOADING
    data FileInfoGetAttributeUint64MethodInfo
    instance (signature ~ (T.Text -> m Word64), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetAttributeUint64MethodInfo a signature where
        overloadedMethod _ = fileInfoGetAttributeUint64

    #endif

    -- method FileInfo::get_content_type
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", 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 "g_file_info_get_content_type" g_file_info_get_content_type ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO CString

    {- |
    Gets the file\'s content type.
    -}
    fileInfoGetContentType ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m T.Text
        {- ^ __Returns:__ a string containing the file\'s content type. -}
    fileInfoGetContentType info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        result <- g_file_info_get_content_type info'
        checkUnexpectedReturnNULL "fileInfoGetContentType" result
        result' <- cstringToText result
        touchManagedPtr info
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetContentTypeMethodInfo
    instance (signature ~ (m T.Text), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetContentTypeMethodInfo a signature where
        overloadedMethod _ = fileInfoGetContentType

    #endif

    -- method FileInfo::get_deletion_date
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Just (TInterface (Name {namespace = "GLib", name = "DateTime"}))
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_get_deletion_date" g_file_info_get_deletion_date ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO (Ptr GLib.DateTime.DateTime)

    {- |
    Returns the 'GI.GLib.Structs.DateTime.DateTime' representing the deletion date of the file, as
    available in G_FILE_ATTRIBUTE_TRASH_DELETION_DATE. If the
    G_FILE_ATTRIBUTE_TRASH_DELETION_DATE attribute is unset, 'Nothing' is returned.

    /Since: 2.36/
    -}
    fileInfoGetDeletionDate ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m GLib.DateTime.DateTime
        {- ^ __Returns:__ a 'GI.GLib.Structs.DateTime.DateTime', or 'Nothing'. -}
    fileInfoGetDeletionDate info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        result <- g_file_info_get_deletion_date info'
        checkUnexpectedReturnNULL "fileInfoGetDeletionDate" result
        result' <- (wrapBoxed GLib.DateTime.DateTime) result
        touchManagedPtr info
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetDeletionDateMethodInfo
    instance (signature ~ (m GLib.DateTime.DateTime), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetDeletionDateMethodInfo a signature where
        overloadedMethod _ = fileInfoGetDeletionDate

    #endif

    -- method FileInfo::get_display_name
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", 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 "g_file_info_get_display_name" g_file_info_get_display_name ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO CString

    {- |
    Gets a display name for a file.
    -}
    fileInfoGetDisplayName ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m T.Text
        {- ^ __Returns:__ a string containing the display name. -}
    fileInfoGetDisplayName info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        result <- g_file_info_get_display_name info'
        checkUnexpectedReturnNULL "fileInfoGetDisplayName" result
        result' <- cstringToText result
        touchManagedPtr info
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetDisplayNameMethodInfo
    instance (signature ~ (m T.Text), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetDisplayNameMethodInfo a signature where
        overloadedMethod _ = fileInfoGetDisplayName

    #endif

    -- method FileInfo::get_edit_name
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", 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 "g_file_info_get_edit_name" g_file_info_get_edit_name ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO CString

    {- |
    Gets the edit name for a file.
    -}
    fileInfoGetEditName ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m T.Text
        {- ^ __Returns:__ a string containing the edit name. -}
    fileInfoGetEditName info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        result <- g_file_info_get_edit_name info'
        checkUnexpectedReturnNULL "fileInfoGetEditName" result
        result' <- cstringToText result
        touchManagedPtr info
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetEditNameMethodInfo
    instance (signature ~ (m T.Text), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetEditNameMethodInfo a signature where
        overloadedMethod _ = fileInfoGetEditName

    #endif

    -- method FileInfo::get_etag
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", 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 "g_file_info_get_etag" g_file_info_get_etag ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO CString

    {- |
    Gets the [entity tag][gfile-etag] for a given
    'GI.Gio.Objects.FileInfo.FileInfo'. See 'GI.Gio.Constants.FILE_ATTRIBUTE_ETAG_VALUE'.
    -}
    fileInfoGetEtag ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m T.Text
        {- ^ __Returns:__ a string containing the value of the \"etag:value\" attribute. -}
    fileInfoGetEtag info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        result <- g_file_info_get_etag info'
        checkUnexpectedReturnNULL "fileInfoGetEtag" result
        result' <- cstringToText result
        touchManagedPtr info
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetEtagMethodInfo
    instance (signature ~ (m T.Text), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetEtagMethodInfo a signature where
        overloadedMethod _ = fileInfoGetEtag

    #endif

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

    foreign import ccall "g_file_info_get_file_type" g_file_info_get_file_type ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO CUInt

    {- |
    Gets a file\'s type (whether it is a regular file, symlink, etc).
    This is different from the file\'s content type, see 'GI.Gio.Objects.FileInfo.fileInfoGetContentType'.
    -}
    fileInfoGetFileType ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m Gio.Enums.FileType
        {- ^ __Returns:__ a 'GI.Gio.Enums.FileType' for the given file. -}
    fileInfoGetFileType info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        result <- g_file_info_get_file_type info'
        let result' = (toEnum . fromIntegral) result
        touchManagedPtr info
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetFileTypeMethodInfo
    instance (signature ~ (m Gio.Enums.FileType), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetFileTypeMethodInfo a signature where
        overloadedMethod _ = fileInfoGetFileType

    #endif

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

    foreign import ccall "g_file_info_get_icon" g_file_info_get_icon ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO (Ptr Gio.Icon.Icon)

    {- |
    Gets the icon for a file.
    -}
    fileInfoGetIcon ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m Gio.Icon.Icon
        {- ^ __Returns:__ 'GI.Gio.Interfaces.Icon.Icon' for the given /@info@/. -}
    fileInfoGetIcon info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        result <- g_file_info_get_icon info'
        checkUnexpectedReturnNULL "fileInfoGetIcon" result
        result' <- (newObject Gio.Icon.Icon) result
        touchManagedPtr info
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetIconMethodInfo
    instance (signature ~ (m Gio.Icon.Icon), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetIconMethodInfo a signature where
        overloadedMethod _ = fileInfoGetIcon

    #endif

    -- method FileInfo::get_is_backup
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", 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 "g_file_info_get_is_backup" g_file_info_get_is_backup ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO CInt

    {- |
    Checks if a file is a backup file.
    -}
    fileInfoGetIsBackup ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m Bool
        {- ^ __Returns:__ 'True' if file is a backup file, 'False' otherwise. -}
    fileInfoGetIsBackup info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        result <- g_file_info_get_is_backup info'
        let result' = (/= 0) result
        touchManagedPtr info
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetIsBackupMethodInfo
    instance (signature ~ (m Bool), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetIsBackupMethodInfo a signature where
        overloadedMethod _ = fileInfoGetIsBackup

    #endif

    -- method FileInfo::get_is_hidden
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", 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 "g_file_info_get_is_hidden" g_file_info_get_is_hidden ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO CInt

    {- |
    Checks if a file is hidden.
    -}
    fileInfoGetIsHidden ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m Bool
        {- ^ __Returns:__ 'True' if the file is a hidden file, 'False' otherwise. -}
    fileInfoGetIsHidden info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        result <- g_file_info_get_is_hidden info'
        let result' = (/= 0) result
        touchManagedPtr info
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetIsHiddenMethodInfo
    instance (signature ~ (m Bool), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetIsHiddenMethodInfo a signature where
        overloadedMethod _ = fileInfoGetIsHidden

    #endif

    -- method FileInfo::get_is_symlink
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", 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 "g_file_info_get_is_symlink" g_file_info_get_is_symlink ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO CInt

    {- |
    Checks if a file is a symlink.
    -}
    fileInfoGetIsSymlink ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m Bool
        {- ^ __Returns:__ 'True' if the given /@info@/ is a symlink. -}
    fileInfoGetIsSymlink info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        result <- g_file_info_get_is_symlink info'
        let result' = (/= 0) result
        touchManagedPtr info
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetIsSymlinkMethodInfo
    instance (signature ~ (m Bool), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetIsSymlinkMethodInfo a signature where
        overloadedMethod _ = fileInfoGetIsSymlink

    #endif

    -- method FileInfo::get_modification_time
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TInterface (Name {namespace = "GLib", name = "TimeVal"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GTimeVal.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_get_modification_time" g_file_info_get_modification_time ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        Ptr GLib.TimeVal.TimeVal ->             -- result : TInterface (Name {namespace = "GLib", name = "TimeVal"})
        IO ()

    {- |
    Gets the modification time of the current /@info@/ and sets it
    in /@result@/.
    -}
    fileInfoGetModificationTime ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m (GLib.TimeVal.TimeVal)
    fileInfoGetModificationTime info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        result_ <- callocBytes 16 :: IO (Ptr GLib.TimeVal.TimeVal)
        g_file_info_get_modification_time info' result_
        result_' <- (wrapPtr GLib.TimeVal.TimeVal) result_
        touchManagedPtr info
        return result_'

    #if ENABLE_OVERLOADING
    data FileInfoGetModificationTimeMethodInfo
    instance (signature ~ (m (GLib.TimeVal.TimeVal)), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetModificationTimeMethodInfo a signature where
        overloadedMethod _ = fileInfoGetModificationTime

    #endif

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

    foreign import ccall "g_file_info_get_name" g_file_info_get_name ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO CString

    {- |
    Gets the name for a file.
    -}
    fileInfoGetName ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m [Char]
        {- ^ __Returns:__ a string containing the file name. -}
    fileInfoGetName info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        result <- g_file_info_get_name info'
        checkUnexpectedReturnNULL "fileInfoGetName" result
        result' <- cstringToString result
        touchManagedPtr info
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetNameMethodInfo
    instance (signature ~ (m [Char]), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetNameMethodInfo a signature where
        overloadedMethod _ = fileInfoGetName

    #endif

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

    foreign import ccall "g_file_info_get_size" g_file_info_get_size ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO Int64

    {- |
    Gets the file\'s size.
    -}
    fileInfoGetSize ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m Int64
        {- ^ __Returns:__ a @/goffset/@ containing the file\'s size. -}
    fileInfoGetSize info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        result <- g_file_info_get_size info'
        touchManagedPtr info
        return result

    #if ENABLE_OVERLOADING
    data FileInfoGetSizeMethodInfo
    instance (signature ~ (m Int64), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetSizeMethodInfo a signature where
        overloadedMethod _ = fileInfoGetSize

    #endif

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

    foreign import ccall "g_file_info_get_sort_order" g_file_info_get_sort_order ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO Int32

    {- |
    Gets the value of the sort_order attribute from the 'GI.Gio.Objects.FileInfo.FileInfo'.
    See 'GI.Gio.Constants.FILE_ATTRIBUTE_STANDARD_SORT_ORDER'.
    -}
    fileInfoGetSortOrder ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m Int32
        {- ^ __Returns:__ a @/gint32/@ containing the value of the \"standard::sort_order\" attribute. -}
    fileInfoGetSortOrder info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        result <- g_file_info_get_sort_order info'
        touchManagedPtr info
        return result

    #if ENABLE_OVERLOADING
    data FileInfoGetSortOrderMethodInfo
    instance (signature ~ (m Int32), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetSortOrderMethodInfo a signature where
        overloadedMethod _ = fileInfoGetSortOrder

    #endif

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

    foreign import ccall "g_file_info_get_symbolic_icon" g_file_info_get_symbolic_icon ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO (Ptr Gio.Icon.Icon)

    {- |
    Gets the symbolic icon for a file.

    /Since: 2.34/
    -}
    fileInfoGetSymbolicIcon ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m Gio.Icon.Icon
        {- ^ __Returns:__ 'GI.Gio.Interfaces.Icon.Icon' for the given /@info@/. -}
    fileInfoGetSymbolicIcon info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        result <- g_file_info_get_symbolic_icon info'
        checkUnexpectedReturnNULL "fileInfoGetSymbolicIcon" result
        result' <- (newObject Gio.Icon.Icon) result
        touchManagedPtr info
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetSymbolicIconMethodInfo
    instance (signature ~ (m Gio.Icon.Icon), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetSymbolicIconMethodInfo a signature where
        overloadedMethod _ = fileInfoGetSymbolicIcon

    #endif

    -- method FileInfo::get_symlink_target
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", 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 "g_file_info_get_symlink_target" g_file_info_get_symlink_target ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO CString

    {- |
    Gets the symlink target for a given 'GI.Gio.Objects.FileInfo.FileInfo'.
    -}
    fileInfoGetSymlinkTarget ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m T.Text
        {- ^ __Returns:__ a string containing the symlink target. -}
    fileInfoGetSymlinkTarget info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        result <- g_file_info_get_symlink_target info'
        checkUnexpectedReturnNULL "fileInfoGetSymlinkTarget" result
        result' <- cstringToText result
        touchManagedPtr info
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoGetSymlinkTargetMethodInfo
    instance (signature ~ (m T.Text), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoGetSymlinkTargetMethodInfo a signature where
        overloadedMethod _ = fileInfoGetSymlinkTarget

    #endif

    -- method FileInfo::has_attribute
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", 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 "g_file_info_has_attribute" g_file_info_has_attribute ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        IO CInt

    {- |
    Checks if a file info structure has an attribute named /@attribute@/.
    -}
    fileInfoHasAttribute ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> m Bool
        {- ^ __Returns:__ 'True' if /@ginfo@/ has an attribute named /@attribute@/,
        'False' otherwise. -}
    fileInfoHasAttribute info attribute = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        result <- g_file_info_has_attribute info' attribute'
        let result' = (/= 0) result
        touchManagedPtr info
        freeMem attribute'
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoHasAttributeMethodInfo
    instance (signature ~ (T.Text -> m Bool), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoHasAttributeMethodInfo a signature where
        overloadedMethod _ = fileInfoHasAttribute

    #endif

    -- method FileInfo::has_namespace
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name_space", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute namespace.", 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 "g_file_info_has_namespace" g_file_info_has_namespace ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- name_space : TBasicType TUTF8
        IO CInt

    {- |
    Checks if a file info structure has an attribute in the
    specified /@nameSpace@/.

    /Since: 2.22/
    -}
    fileInfoHasNamespace ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@nameSpace@/: a file attribute namespace. -}
        -> m Bool
        {- ^ __Returns:__ 'True' if /@ginfo@/ has an attribute in /@nameSpace@/,
        'False' otherwise. -}
    fileInfoHasNamespace info nameSpace = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        nameSpace' <- textToCString nameSpace
        result <- g_file_info_has_namespace info' nameSpace'
        let result' = (/= 0) result
        touchManagedPtr info
        freeMem nameSpace'
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoHasNamespaceMethodInfo
    instance (signature ~ (T.Text -> m Bool), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoHasNamespaceMethodInfo a signature where
        overloadedMethod _ = fileInfoHasNamespace

    #endif

    -- method FileInfo::list_attributes
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name_space", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a file attribute key's namespace, or %NULL to list\n  all attributes.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_list_attributes" g_file_info_list_attributes ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- name_space : TBasicType TUTF8
        IO (Ptr CString)

    {- |
    Lists the file info structure\'s attributes.
    -}
    fileInfoListAttributes ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> Maybe (T.Text)
        {- ^ /@nameSpace@/: a file attribute key\'s namespace, or 'Nothing' to list
      all attributes. -}
        -> m (Maybe [T.Text])
        {- ^ __Returns:__ a
    null-terminated array of strings of all of the possible attribute
    types for the given /@nameSpace@/, or 'Nothing' on error. -}
    fileInfoListAttributes info nameSpace = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        maybeNameSpace <- case nameSpace of
            Nothing -> return nullPtr
            Just jNameSpace -> do
                jNameSpace' <- textToCString jNameSpace
                return jNameSpace'
        result <- g_file_info_list_attributes info' maybeNameSpace
        maybeResult <- convertIfNonNull result $ \result' -> do
            result'' <- unpackZeroTerminatedUTF8CArray result'
            mapZeroTerminatedCArray freeMem result'
            freeMem result'
            return result''
        touchManagedPtr info
        freeMem maybeNameSpace
        return maybeResult

    #if ENABLE_OVERLOADING
    data FileInfoListAttributesMethodInfo
    instance (signature ~ (Maybe (T.Text) -> m (Maybe [T.Text])), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoListAttributesMethodInfo a signature where
        overloadedMethod _ = fileInfoListAttributes

    #endif

    -- method FileInfo::remove_attribute
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_remove_attribute" g_file_info_remove_attribute ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        IO ()

    {- |
    Removes all cases of /@attribute@/ from /@info@/ if it exists.
    -}
    fileInfoRemoveAttribute ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> m ()
    fileInfoRemoveAttribute info attribute = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        g_file_info_remove_attribute info' attribute'
        touchManagedPtr info
        freeMem attribute'
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoRemoveAttributeMethodInfo
    instance (signature ~ (T.Text -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoRemoveAttributeMethodInfo a signature where
        overloadedMethod _ = fileInfoRemoveAttribute

    #endif

    -- method FileInfo::set_attribute
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface (Name {namespace = "Gio", name = "FileAttributeType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileAttributeType", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value_p", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "pointer to the value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_attribute" g_file_info_set_attribute ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        CUInt ->                                -- type : TInterface (Name {namespace = "Gio", name = "FileAttributeType"})
        Ptr () ->                               -- value_p : TBasicType TPtr
        IO ()

    {- |
    Sets the /@attribute@/ to contain the given value, if possible. To unset the
    attribute, use 'GI.Gio.Enums.FileAttributeTypeInvalid' for /@type@/.
    -}
    fileInfoSetAttribute ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> Gio.Enums.FileAttributeType
        {- ^ /@type@/: a 'GI.Gio.Enums.FileAttributeType' -}
        -> Ptr ()
        {- ^ /@valueP@/: pointer to the value -}
        -> m ()
    fileInfoSetAttribute info attribute type_ valueP = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        let type_' = (fromIntegral . fromEnum) type_
        g_file_info_set_attribute info' attribute' type_' valueP
        touchManagedPtr info
        freeMem attribute'
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetAttributeMethodInfo
    instance (signature ~ (T.Text -> Gio.Enums.FileAttributeType -> Ptr () -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetAttributeMethodInfo a signature where
        overloadedMethod _ = fileInfoSetAttribute

    #endif

    -- method FileInfo::set_attribute_boolean
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attr_value", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a boolean value.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_attribute_boolean" g_file_info_set_attribute_boolean ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        CInt ->                                 -- attr_value : TBasicType TBoolean
        IO ()

    {- |
    Sets the /@attribute@/ to contain the given /@attrValue@/,
    if possible.
    -}
    fileInfoSetAttributeBoolean ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> Bool
        {- ^ /@attrValue@/: a boolean value. -}
        -> m ()
    fileInfoSetAttributeBoolean info attribute attrValue = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        let attrValue' = (fromIntegral . fromEnum) attrValue
        g_file_info_set_attribute_boolean info' attribute' attrValue'
        touchManagedPtr info
        freeMem attribute'
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetAttributeBooleanMethodInfo
    instance (signature ~ (T.Text -> Bool -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetAttributeBooleanMethodInfo a signature where
        overloadedMethod _ = fileInfoSetAttributeBoolean

    #endif

    -- method FileInfo::set_attribute_byte_string
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attr_value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a byte string.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_attribute_byte_string" g_file_info_set_attribute_byte_string ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        CString ->                              -- attr_value : TBasicType TUTF8
        IO ()

    {- |
    Sets the /@attribute@/ to contain the given /@attrValue@/,
    if possible.
    -}
    fileInfoSetAttributeByteString ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> T.Text
        {- ^ /@attrValue@/: a byte string. -}
        -> m ()
    fileInfoSetAttributeByteString info attribute attrValue = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        attrValue' <- textToCString attrValue
        g_file_info_set_attribute_byte_string info' attribute' attrValue'
        touchManagedPtr info
        freeMem attribute'
        freeMem attrValue'
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetAttributeByteStringMethodInfo
    instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetAttributeByteStringMethodInfo a signature where
        overloadedMethod _ = fileInfoSetAttributeByteString

    #endif

    -- method FileInfo::set_attribute_int32
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attr_value", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a signed 32-bit integer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_attribute_int32" g_file_info_set_attribute_int32 ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        Int32 ->                                -- attr_value : TBasicType TInt32
        IO ()

    {- |
    Sets the /@attribute@/ to contain the given /@attrValue@/,
    if possible.
    -}
    fileInfoSetAttributeInt32 ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> Int32
        {- ^ /@attrValue@/: a signed 32-bit integer -}
        -> m ()
    fileInfoSetAttributeInt32 info attribute attrValue = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        g_file_info_set_attribute_int32 info' attribute' attrValue
        touchManagedPtr info
        freeMem attribute'
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetAttributeInt32MethodInfo
    instance (signature ~ (T.Text -> Int32 -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetAttributeInt32MethodInfo a signature where
        overloadedMethod _ = fileInfoSetAttributeInt32

    #endif

    -- method FileInfo::set_attribute_int64
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "attribute name to set.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attr_value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "int64 value to set attribute to.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_attribute_int64" g_file_info_set_attribute_int64 ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        Int64 ->                                -- attr_value : TBasicType TInt64
        IO ()

    {- |
    Sets the /@attribute@/ to contain the given /@attrValue@/,
    if possible.
    -}
    fileInfoSetAttributeInt64 ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: attribute name to set. -}
        -> Int64
        {- ^ /@attrValue@/: int64 value to set attribute to. -}
        -> m ()
    fileInfoSetAttributeInt64 info attribute attrValue = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        g_file_info_set_attribute_int64 info' attribute' attrValue
        touchManagedPtr info
        freeMem attribute'
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetAttributeInt64MethodInfo
    instance (signature ~ (T.Text -> Int64 -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetAttributeInt64MethodInfo a signature where
        overloadedMethod _ = fileInfoSetAttributeInt64

    #endif

    -- method FileInfo::set_attribute_mask
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mask", argType = TInterface (Name {namespace = "Gio", name = "FileAttributeMatcher"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileAttributeMatcher.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_attribute_mask" g_file_info_set_attribute_mask ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        Ptr Gio.FileAttributeMatcher.FileAttributeMatcher -> -- mask : TInterface (Name {namespace = "Gio", name = "FileAttributeMatcher"})
        IO ()

    {- |
    Sets /@mask@/ on /@info@/ to match specific attribute types.
    -}
    fileInfoSetAttributeMask ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> Gio.FileAttributeMatcher.FileAttributeMatcher
        {- ^ /@mask@/: a 'GI.Gio.Structs.FileAttributeMatcher.FileAttributeMatcher'. -}
        -> m ()
    fileInfoSetAttributeMask info mask = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        mask' <- unsafeManagedPtrGetPtr mask
        g_file_info_set_attribute_mask info' mask'
        touchManagedPtr info
        touchManagedPtr mask
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetAttributeMaskMethodInfo
    instance (signature ~ (Gio.FileAttributeMatcher.FileAttributeMatcher -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetAttributeMaskMethodInfo a signature where
        overloadedMethod _ = fileInfoSetAttributeMask

    #endif

    -- method FileInfo::set_attribute_object
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attr_value", argType = TInterface (Name {namespace = "GObject", name = "Object"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GObject.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_attribute_object" g_file_info_set_attribute_object ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        Ptr GObject.Object.Object ->            -- attr_value : TInterface (Name {namespace = "GObject", name = "Object"})
        IO ()

    {- |
    Sets the /@attribute@/ to contain the given /@attrValue@/,
    if possible.
    -}
    fileInfoSetAttributeObject ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a, GObject.Object.IsObject b) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> b
        {- ^ /@attrValue@/: a 'GI.GObject.Objects.Object.Object'. -}
        -> m ()
    fileInfoSetAttributeObject info attribute attrValue = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        attrValue' <- unsafeManagedPtrCastPtr attrValue
        g_file_info_set_attribute_object info' attribute' attrValue'
        touchManagedPtr info
        touchManagedPtr attrValue
        freeMem attribute'
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetAttributeObjectMethodInfo
    instance (signature ~ (T.Text -> b -> m ()), MonadIO m, IsFileInfo a, GObject.Object.IsObject b) => O.MethodInfo FileInfoSetAttributeObjectMethodInfo a signature where
        overloadedMethod _ = fileInfoSetAttributeObject

    #endif

    -- method FileInfo::set_attribute_status
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "status", argType = TInterface (Name {namespace = "Gio", name = "FileAttributeStatus"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileAttributeStatus", 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 "g_file_info_set_attribute_status" g_file_info_set_attribute_status ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        CUInt ->                                -- status : TInterface (Name {namespace = "Gio", name = "FileAttributeStatus"})
        IO CInt

    {- |
    Sets the attribute status for an attribute key. This is only
    needed by external code that implement 'GI.Gio.Interfaces.File.fileSetAttributesFromInfo'
    or similar functions.

    The attribute must exist in /@info@/ for this to work. Otherwise 'False'
    is returned and /@info@/ is unchanged.

    /Since: 2.22/
    -}
    fileInfoSetAttributeStatus ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo' -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key -}
        -> Gio.Enums.FileAttributeStatus
        {- ^ /@status@/: a 'GI.Gio.Enums.FileAttributeStatus' -}
        -> m Bool
        {- ^ __Returns:__ 'True' if the status was changed, 'False' if the key was not set. -}
    fileInfoSetAttributeStatus info attribute status = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        let status' = (fromIntegral . fromEnum) status
        result <- g_file_info_set_attribute_status info' attribute' status'
        let result' = (/= 0) result
        touchManagedPtr info
        freeMem attribute'
        return result'

    #if ENABLE_OVERLOADING
    data FileInfoSetAttributeStatusMethodInfo
    instance (signature ~ (T.Text -> Gio.Enums.FileAttributeStatus -> m Bool), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetAttributeStatusMethodInfo a signature where
        overloadedMethod _ = fileInfoSetAttributeStatus

    #endif

    -- method FileInfo::set_attribute_string
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attr_value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a UTF-8 string.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_attribute_string" g_file_info_set_attribute_string ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        CString ->                              -- attr_value : TBasicType TUTF8
        IO ()

    {- |
    Sets the /@attribute@/ to contain the given /@attrValue@/,
    if possible.
    -}
    fileInfoSetAttributeString ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> T.Text
        {- ^ /@attrValue@/: a UTF-8 string. -}
        -> m ()
    fileInfoSetAttributeString info attribute attrValue = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        attrValue' <- textToCString attrValue
        g_file_info_set_attribute_string info' attribute' attrValue'
        touchManagedPtr info
        freeMem attribute'
        freeMem attrValue'
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetAttributeStringMethodInfo
    instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetAttributeStringMethodInfo a signature where
        overloadedMethod _ = fileInfoSetAttributeString

    #endif

    -- method FileInfo::set_attribute_stringv
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attr_value", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a %NULL\n  terminated array of UTF-8 strings.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_attribute_stringv" g_file_info_set_attribute_stringv ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        Ptr CString ->                          -- attr_value : TCArray True (-1) (-1) (TBasicType TUTF8)
        IO ()

    {- |
    Sets the /@attribute@/ to contain the given /@attrValue@/,
    if possible.

    Sinze: 2.22
    -}
    fileInfoSetAttributeStringv ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key -}
        -> [T.Text]
        {- ^ /@attrValue@/: a 'Nothing'
      terminated array of UTF-8 strings. -}
        -> m ()
    fileInfoSetAttributeStringv info attribute attrValue = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        attrValue' <- packZeroTerminatedUTF8CArray attrValue
        g_file_info_set_attribute_stringv info' attribute' attrValue'
        touchManagedPtr info
        freeMem attribute'
        mapZeroTerminatedCArray freeMem attrValue'
        freeMem attrValue'
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetAttributeStringvMethodInfo
    instance (signature ~ (T.Text -> [T.Text] -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetAttributeStringvMethodInfo a signature where
        overloadedMethod _ = fileInfoSetAttributeStringv

    #endif

    -- method FileInfo::set_attribute_uint32
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attr_value", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an unsigned 32-bit integer.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_attribute_uint32" g_file_info_set_attribute_uint32 ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        Word32 ->                               -- attr_value : TBasicType TUInt32
        IO ()

    {- |
    Sets the /@attribute@/ to contain the given /@attrValue@/,
    if possible.
    -}
    fileInfoSetAttributeUint32 ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> Word32
        {- ^ /@attrValue@/: an unsigned 32-bit integer. -}
        -> m ()
    fileInfoSetAttributeUint32 info attribute attrValue = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        g_file_info_set_attribute_uint32 info' attribute' attrValue
        touchManagedPtr info
        freeMem attribute'
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetAttributeUint32MethodInfo
    instance (signature ~ (T.Text -> Word32 -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetAttributeUint32MethodInfo a signature where
        overloadedMethod _ = fileInfoSetAttributeUint32

    #endif

    -- method FileInfo::set_attribute_uint64
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file attribute key.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attr_value", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an unsigned 64-bit integer.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_attribute_uint64" g_file_info_set_attribute_uint64 ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- attribute : TBasicType TUTF8
        Word64 ->                               -- attr_value : TBasicType TUInt64
        IO ()

    {- |
    Sets the /@attribute@/ to contain the given /@attrValue@/,
    if possible.
    -}
    fileInfoSetAttributeUint64 ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@attribute@/: a file attribute key. -}
        -> Word64
        {- ^ /@attrValue@/: an unsigned 64-bit integer. -}
        -> m ()
    fileInfoSetAttributeUint64 info attribute attrValue = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        attribute' <- textToCString attribute
        g_file_info_set_attribute_uint64 info' attribute' attrValue
        touchManagedPtr info
        freeMem attribute'
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetAttributeUint64MethodInfo
    instance (signature ~ (T.Text -> Word64 -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetAttributeUint64MethodInfo a signature where
        overloadedMethod _ = fileInfoSetAttributeUint64

    #endif

    -- method FileInfo::set_content_type
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "content_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a content type. See [GContentType][gio-GContentType]", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_content_type" g_file_info_set_content_type ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- content_type : TBasicType TUTF8
        IO ()

    {- |
    Sets the content type attribute for a given 'GI.Gio.Objects.FileInfo.FileInfo'.
    See 'GI.Gio.Constants.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE'.
    -}
    fileInfoSetContentType ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@contentType@/: a content type. See [GContentType][gio-GContentType] -}
        -> m ()
    fileInfoSetContentType info contentType = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        contentType' <- textToCString contentType
        g_file_info_set_content_type info' contentType'
        touchManagedPtr info
        freeMem contentType'
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetContentTypeMethodInfo
    instance (signature ~ (T.Text -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetContentTypeMethodInfo a signature where
        overloadedMethod _ = fileInfoSetContentType

    #endif

    -- method FileInfo::set_display_name
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "display_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a string containing a display name.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_display_name" g_file_info_set_display_name ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- display_name : TBasicType TUTF8
        IO ()

    {- |
    Sets the display name for the current 'GI.Gio.Objects.FileInfo.FileInfo'.
    See 'GI.Gio.Constants.FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME'.
    -}
    fileInfoSetDisplayName ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@displayName@/: a string containing a display name. -}
        -> m ()
    fileInfoSetDisplayName info displayName = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        displayName' <- textToCString displayName
        g_file_info_set_display_name info' displayName'
        touchManagedPtr info
        freeMem displayName'
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetDisplayNameMethodInfo
    instance (signature ~ (T.Text -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetDisplayNameMethodInfo a signature where
        overloadedMethod _ = fileInfoSetDisplayName

    #endif

    -- method FileInfo::set_edit_name
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "edit_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a string containing an edit name.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_edit_name" g_file_info_set_edit_name ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- edit_name : TBasicType TUTF8
        IO ()

    {- |
    Sets the edit name for the current file.
    See 'GI.Gio.Constants.FILE_ATTRIBUTE_STANDARD_EDIT_NAME'.
    -}
    fileInfoSetEditName ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@editName@/: a string containing an edit name. -}
        -> m ()
    fileInfoSetEditName info editName = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        editName' <- textToCString editName
        g_file_info_set_edit_name info' editName'
        touchManagedPtr info
        freeMem editName'
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetEditNameMethodInfo
    instance (signature ~ (T.Text -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetEditNameMethodInfo a signature where
        overloadedMethod _ = fileInfoSetEditName

    #endif

    -- method FileInfo::set_file_type
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface (Name {namespace = "Gio", name = "FileType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileType.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_file_type" g_file_info_set_file_type ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CUInt ->                                -- type : TInterface (Name {namespace = "Gio", name = "FileType"})
        IO ()

    {- |
    Sets the file type in a 'GI.Gio.Objects.FileInfo.FileInfo' to /@type@/.
    See 'GI.Gio.Constants.FILE_ATTRIBUTE_STANDARD_TYPE'.
    -}
    fileInfoSetFileType ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> Gio.Enums.FileType
        {- ^ /@type@/: a 'GI.Gio.Enums.FileType'. -}
        -> m ()
    fileInfoSetFileType info type_ = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        let type_' = (fromIntegral . fromEnum) type_
        g_file_info_set_file_type info' type_'
        touchManagedPtr info
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetFileTypeMethodInfo
    instance (signature ~ (Gio.Enums.FileType -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetFileTypeMethodInfo a signature where
        overloadedMethod _ = fileInfoSetFileType

    #endif

    -- method FileInfo::set_icon
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "icon", argType = TInterface (Name {namespace = "Gio", name = "Icon"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GIcon.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_icon" g_file_info_set_icon ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        Ptr Gio.Icon.Icon ->                    -- icon : TInterface (Name {namespace = "Gio", name = "Icon"})
        IO ()

    {- |
    Sets the icon for a given 'GI.Gio.Objects.FileInfo.FileInfo'.
    See 'GI.Gio.Constants.FILE_ATTRIBUTE_STANDARD_ICON'.
    -}
    fileInfoSetIcon ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a, Gio.Icon.IsIcon b) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> b
        {- ^ /@icon@/: a 'GI.Gio.Interfaces.Icon.Icon'. -}
        -> m ()
    fileInfoSetIcon info icon = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        icon' <- unsafeManagedPtrCastPtr icon
        g_file_info_set_icon info' icon'
        touchManagedPtr info
        touchManagedPtr icon
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetIconMethodInfo
    instance (signature ~ (b -> m ()), MonadIO m, IsFileInfo a, Gio.Icon.IsIcon b) => O.MethodInfo FileInfoSetIconMethodInfo a signature where
        overloadedMethod _ = fileInfoSetIcon

    #endif

    -- method FileInfo::set_is_hidden
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "is_hidden", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #gboolean.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_is_hidden" g_file_info_set_is_hidden ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CInt ->                                 -- is_hidden : TBasicType TBoolean
        IO ()

    {- |
    Sets the \"is_hidden\" attribute in a 'GI.Gio.Objects.FileInfo.FileInfo' according to /@isHidden@/.
    See 'GI.Gio.Constants.FILE_ATTRIBUTE_STANDARD_IS_HIDDEN'.
    -}
    fileInfoSetIsHidden ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> Bool
        {- ^ /@isHidden@/: a 'Bool'. -}
        -> m ()
    fileInfoSetIsHidden info isHidden = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        let isHidden' = (fromIntegral . fromEnum) isHidden
        g_file_info_set_is_hidden info' isHidden'
        touchManagedPtr info
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetIsHiddenMethodInfo
    instance (signature ~ (Bool -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetIsHiddenMethodInfo a signature where
        overloadedMethod _ = fileInfoSetIsHidden

    #endif

    -- method FileInfo::set_is_symlink
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "is_symlink", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #gboolean.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_is_symlink" g_file_info_set_is_symlink ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CInt ->                                 -- is_symlink : TBasicType TBoolean
        IO ()

    {- |
    Sets the \"is_symlink\" attribute in a 'GI.Gio.Objects.FileInfo.FileInfo' according to /@isSymlink@/.
    See 'GI.Gio.Constants.FILE_ATTRIBUTE_STANDARD_IS_SYMLINK'.
    -}
    fileInfoSetIsSymlink ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> Bool
        {- ^ /@isSymlink@/: a 'Bool'. -}
        -> m ()
    fileInfoSetIsSymlink info isSymlink = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        let isSymlink' = (fromIntegral . fromEnum) isSymlink
        g_file_info_set_is_symlink info' isSymlink'
        touchManagedPtr info
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetIsSymlinkMethodInfo
    instance (signature ~ (Bool -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetIsSymlinkMethodInfo a signature where
        overloadedMethod _ = fileInfoSetIsSymlink

    #endif

    -- method FileInfo::set_modification_time
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mtime", argType = TInterface (Name {namespace = "GLib", name = "TimeVal"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GTimeVal.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_modification_time" g_file_info_set_modification_time ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        Ptr GLib.TimeVal.TimeVal ->             -- mtime : TInterface (Name {namespace = "GLib", name = "TimeVal"})
        IO ()

    {- |
    Sets the 'GI.Gio.Constants.FILE_ATTRIBUTE_TIME_MODIFIED' attribute in the file
    info to the given time value.
    -}
    fileInfoSetModificationTime ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> GLib.TimeVal.TimeVal
        {- ^ /@mtime@/: a 'GI.GLib.Structs.TimeVal.TimeVal'. -}
        -> m ()
    fileInfoSetModificationTime info mtime = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        mtime' <- unsafeManagedPtrGetPtr mtime
        g_file_info_set_modification_time info' mtime'
        touchManagedPtr info
        touchManagedPtr mtime
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetModificationTimeMethodInfo
    instance (signature ~ (GLib.TimeVal.TimeVal -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetModificationTimeMethodInfo a signature where
        overloadedMethod _ = fileInfoSetModificationTime

    #endif

    -- method FileInfo::set_name
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a string containing a name.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_name" g_file_info_set_name ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- name : TBasicType TFileName
        IO ()

    {- |
    Sets the name attribute for the current 'GI.Gio.Objects.FileInfo.FileInfo'.
    See 'GI.Gio.Constants.FILE_ATTRIBUTE_STANDARD_NAME'.
    -}
    fileInfoSetName ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> [Char]
        {- ^ /@name@/: a string containing a name. -}
        -> m ()
    fileInfoSetName info name = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        name' <- stringToCString name
        g_file_info_set_name info' name'
        touchManagedPtr info
        freeMem name'
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetNameMethodInfo
    instance (signature ~ ([Char] -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetNameMethodInfo a signature where
        overloadedMethod _ = fileInfoSetName

    #endif

    -- method FileInfo::set_size
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #goffset containing the file's size.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_size" g_file_info_set_size ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        Int64 ->                                -- size : TBasicType TInt64
        IO ()

    {- |
    Sets the 'GI.Gio.Constants.FILE_ATTRIBUTE_STANDARD_SIZE' attribute in the file info
    to the given size.
    -}
    fileInfoSetSize ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> Int64
        {- ^ /@size@/: a @/goffset/@ containing the file\'s size. -}
        -> m ()
    fileInfoSetSize info size = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        g_file_info_set_size info' size
        touchManagedPtr info
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetSizeMethodInfo
    instance (signature ~ (Int64 -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetSizeMethodInfo a signature where
        overloadedMethod _ = fileInfoSetSize

    #endif

    -- method FileInfo::set_sort_order
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sort_order", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a sort order integer.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_sort_order" g_file_info_set_sort_order ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        Int32 ->                                -- sort_order : TBasicType TInt32
        IO ()

    {- |
    Sets the sort order attribute in the file info structure. See
    'GI.Gio.Constants.FILE_ATTRIBUTE_STANDARD_SORT_ORDER'.
    -}
    fileInfoSetSortOrder ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> Int32
        {- ^ /@sortOrder@/: a sort order integer. -}
        -> m ()
    fileInfoSetSortOrder info sortOrder = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        g_file_info_set_sort_order info' sortOrder
        touchManagedPtr info
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetSortOrderMethodInfo
    instance (signature ~ (Int32 -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetSortOrderMethodInfo a signature where
        overloadedMethod _ = fileInfoSetSortOrder

    #endif

    -- method FileInfo::set_symbolic_icon
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "icon", argType = TInterface (Name {namespace = "Gio", name = "Icon"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GIcon.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_symbolic_icon" g_file_info_set_symbolic_icon ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        Ptr Gio.Icon.Icon ->                    -- icon : TInterface (Name {namespace = "Gio", name = "Icon"})
        IO ()

    {- |
    Sets the symbolic icon for a given 'GI.Gio.Objects.FileInfo.FileInfo'.
    See 'GI.Gio.Constants.FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON'.

    /Since: 2.34/
    -}
    fileInfoSetSymbolicIcon ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a, Gio.Icon.IsIcon b) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> b
        {- ^ /@icon@/: a 'GI.Gio.Interfaces.Icon.Icon'. -}
        -> m ()
    fileInfoSetSymbolicIcon info icon = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        icon' <- unsafeManagedPtrCastPtr icon
        g_file_info_set_symbolic_icon info' icon'
        touchManagedPtr info
        touchManagedPtr icon
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetSymbolicIconMethodInfo
    instance (signature ~ (b -> m ()), MonadIO m, IsFileInfo a, Gio.Icon.IsIcon b) => O.MethodInfo FileInfoSetSymbolicIconMethodInfo a signature where
        overloadedMethod _ = fileInfoSetSymbolicIcon

    #endif

    -- method FileInfo::set_symlink_target
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "symlink_target", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a static string containing a path to a symlink target.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_set_symlink_target" g_file_info_set_symlink_target ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        CString ->                              -- symlink_target : TBasicType TUTF8
        IO ()

    {- |
    Sets the 'GI.Gio.Constants.FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET' attribute in the file info
    to the given symlink target.
    -}
    fileInfoSetSymlinkTarget ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: a 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> T.Text
        {- ^ /@symlinkTarget@/: a static string containing a path to a symlink target. -}
        -> m ()
    fileInfoSetSymlinkTarget info symlinkTarget = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        symlinkTarget' <- textToCString symlinkTarget
        g_file_info_set_symlink_target info' symlinkTarget'
        touchManagedPtr info
        freeMem symlinkTarget'
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoSetSymlinkTargetMethodInfo
    instance (signature ~ (T.Text -> m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoSetSymlinkTargetMethodInfo a signature where
        overloadedMethod _ = fileInfoSetSymlinkTarget

    #endif

    -- method FileInfo::unset_attribute_mask
    -- method type : OrdinaryMethod
    -- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GFileInfo.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
    -- Lengths : []
    -- returnType : Nothing
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_file_info_unset_attribute_mask" g_file_info_unset_attribute_mask ::
        Ptr FileInfo ->                         -- info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
        IO ()

    {- |
    Unsets a mask set by 'GI.Gio.Objects.FileInfo.fileInfoSetAttributeMask', if one
    is set.
    -}
    fileInfoUnsetAttributeMask ::
        (B.CallStack.HasCallStack, MonadIO m, IsFileInfo a) =>
        a
        {- ^ /@info@/: 'GI.Gio.Objects.FileInfo.FileInfo'. -}
        -> m ()
    fileInfoUnsetAttributeMask info = liftIO $ do
        info' <- unsafeManagedPtrCastPtr info
        g_file_info_unset_attribute_mask info'
        touchManagedPtr info
        return ()

    #if ENABLE_OVERLOADING
    data FileInfoUnsetAttributeMaskMethodInfo
    instance (signature ~ (m ()), MonadIO m, IsFileInfo a) => O.MethodInfo FileInfoUnsetAttributeMaskMethodInfo a signature where
        overloadedMethod _ = fileInfoUnsetAttributeMask

    #endif