{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- Link settings
-- 
-- /Since: 1.44/

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif

module GI.NM.Objects.SettingLink
    ( 

-- * Exported types
    SettingLink(..)                         ,
    IsSettingLink                           ,
    toSettingLink                           ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [compare]("GI.NM.Objects.Setting#g:method:compare"), [diff]("GI.NM.Objects.Setting#g:method:diff"), [duplicate]("GI.NM.Objects.Setting#g:method:duplicate"), [enumerateValues]("GI.NM.Objects.Setting#g:method:enumerateValues"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [optionClearByName]("GI.NM.Objects.Setting#g:method:optionClearByName"), [optionGet]("GI.NM.Objects.Setting#g:method:optionGet"), [optionGetAllNames]("GI.NM.Objects.Setting#g:method:optionGetAllNames"), [optionGetBoolean]("GI.NM.Objects.Setting#g:method:optionGetBoolean"), [optionGetUint32]("GI.NM.Objects.Setting#g:method:optionGetUint32"), [optionSet]("GI.NM.Objects.Setting#g:method:optionSet"), [optionSetBoolean]("GI.NM.Objects.Setting#g:method:optionSetBoolean"), [optionSetUint32]("GI.NM.Objects.Setting#g:method:optionSetUint32"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [toString]("GI.NM.Objects.Setting#g:method:toString"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [verify]("GI.NM.Objects.Setting#g:method:verify"), [verifySecrets]("GI.NM.Objects.Setting#g:method:verifySecrets"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getData]("GI.GObject.Objects.Object#g:method:getData"), [getDbusPropertyType]("GI.NM.Objects.Setting#g:method:getDbusPropertyType"), [getGroMaxSize]("GI.NM.Objects.SettingLink#g:method:getGroMaxSize"), [getGsoMaxSegments]("GI.NM.Objects.SettingLink#g:method:getGsoMaxSegments"), [getGsoMaxSize]("GI.NM.Objects.SettingLink#g:method:getGsoMaxSize"), [getName]("GI.NM.Objects.Setting#g:method:getName"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getSecretFlags]("GI.NM.Objects.Setting#g:method:getSecretFlags"), [getTxQueueLength]("GI.NM.Objects.SettingLink#g:method:getTxQueueLength").
-- 
-- ==== Setters
-- [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty"), [setSecretFlags]("GI.NM.Objects.Setting#g:method:setSecretFlags").

#if defined(ENABLE_OVERLOADING)
    ResolveSettingLinkMethod                ,
#endif

-- ** getGroMaxSize #method:getGroMaxSize#

#if defined(ENABLE_OVERLOADING)
    SettingLinkGetGroMaxSizeMethodInfo      ,
#endif
    settingLinkGetGroMaxSize                ,


-- ** getGsoMaxSegments #method:getGsoMaxSegments#

#if defined(ENABLE_OVERLOADING)
    SettingLinkGetGsoMaxSegmentsMethodInfo  ,
#endif
    settingLinkGetGsoMaxSegments            ,


-- ** getGsoMaxSize #method:getGsoMaxSize#

#if defined(ENABLE_OVERLOADING)
    SettingLinkGetGsoMaxSizeMethodInfo      ,
#endif
    settingLinkGetGsoMaxSize                ,


-- ** getTxQueueLength #method:getTxQueueLength#

#if defined(ENABLE_OVERLOADING)
    SettingLinkGetTxQueueLengthMethodInfo   ,
#endif
    settingLinkGetTxQueueLength             ,


-- ** new #method:new#

    settingLinkNew                          ,




 -- * Properties


-- ** groMaxSize #attr:groMaxSize#
-- | The maximum size of a packet built by the Generic Receive Offload stack for
-- this device. The value must be between 0 and 4294967295. When set to -1, the
-- existing value is preserved.
-- 
-- /Since: 1.44/

#if defined(ENABLE_OVERLOADING)
    SettingLinkGroMaxSizePropertyInfo       ,
#endif
    constructSettingLinkGroMaxSize          ,
    getSettingLinkGroMaxSize                ,
    setSettingLinkGroMaxSize                ,
#if defined(ENABLE_OVERLOADING)
    settingLinkGroMaxSize                   ,
#endif


-- ** gsoMaxSegments #attr:gsoMaxSegments#
-- | The maximum segments of a Generic Segment Offload packet the device should accept.
-- The value must be between 0 and 4294967295. When set to -1, the existing value
-- is preserved.
-- 
-- /Since: 1.44/

#if defined(ENABLE_OVERLOADING)
    SettingLinkGsoMaxSegmentsPropertyInfo   ,
#endif
    constructSettingLinkGsoMaxSegments      ,
    getSettingLinkGsoMaxSegments            ,
    setSettingLinkGsoMaxSegments            ,
#if defined(ENABLE_OVERLOADING)
    settingLinkGsoMaxSegments               ,
#endif


-- ** gsoMaxSize #attr:gsoMaxSize#
-- | The maximum size of a Generic Segment Offload packet the device should accept.
-- The value must be between 0 and 4294967295. When set to -1, the existing value
-- is preserved.
-- 
-- /Since: 1.44/

#if defined(ENABLE_OVERLOADING)
    SettingLinkGsoMaxSizePropertyInfo       ,
#endif
    constructSettingLinkGsoMaxSize          ,
    getSettingLinkGsoMaxSize                ,
    setSettingLinkGsoMaxSize                ,
#if defined(ENABLE_OVERLOADING)
    settingLinkGsoMaxSize                   ,
#endif


-- ** txQueueLength #attr:txQueueLength#
-- | The size of the transmit queue for the device, in number of packets. The value
-- must be between 0 and 4294967295. When set to -1, the existing value is preserved.
-- 
-- /Since: 1.44/

#if defined(ENABLE_OVERLOADING)
    SettingLinkTxQueueLengthPropertyInfo    ,
#endif
    constructSettingLinkTxQueueLength       ,
    getSettingLinkTxQueueLength             ,
    setSettingLinkTxQueueLength             ,
#if defined(ENABLE_OVERLOADING)
    settingLinkTxQueueLength                ,
#endif




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R
import qualified Data.Word as DW
import qualified Data.Int as DI
import qualified System.Posix.Types as SPT
import qualified Foreign.C.Types as FCT

-- Workaround for https://gitlab.haskell.org/ghc/ghc/-/issues/23392
#if MIN_VERSION_base(4,18,0)
import qualified GI.GLib.Structs.Bytes as GLib.Bytes
import qualified GI.GLib.Structs.VariantType as GLib.VariantType
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.NM.Callbacks as NM.Callbacks
import {-# SOURCE #-} qualified GI.NM.Enums as NM.Enums
import {-# SOURCE #-} qualified GI.NM.Flags as NM.Flags
import {-# SOURCE #-} qualified GI.NM.Interfaces.Connection as NM.Connection
import {-# SOURCE #-} qualified GI.NM.Objects.Setting as NM.Setting
import {-# SOURCE #-} qualified GI.NM.Objects.Setting8021x as NM.Setting8021x
import {-# SOURCE #-} qualified GI.NM.Objects.SettingAdsl as NM.SettingAdsl
import {-# SOURCE #-} qualified GI.NM.Objects.SettingBluetooth as NM.SettingBluetooth
import {-# SOURCE #-} qualified GI.NM.Objects.SettingBond as NM.SettingBond
import {-# SOURCE #-} qualified GI.NM.Objects.SettingBridge as NM.SettingBridge
import {-# SOURCE #-} qualified GI.NM.Objects.SettingBridgePort as NM.SettingBridgePort
import {-# SOURCE #-} qualified GI.NM.Objects.SettingCdma as NM.SettingCdma
import {-# SOURCE #-} qualified GI.NM.Objects.SettingConnection as NM.SettingConnection
import {-# SOURCE #-} qualified GI.NM.Objects.SettingDcb as NM.SettingDcb
import {-# SOURCE #-} qualified GI.NM.Objects.SettingDummy as NM.SettingDummy
import {-# SOURCE #-} qualified GI.NM.Objects.SettingGeneric as NM.SettingGeneric
import {-# SOURCE #-} qualified GI.NM.Objects.SettingGsm as NM.SettingGsm
import {-# SOURCE #-} qualified GI.NM.Objects.SettingIP4Config as NM.SettingIP4Config
import {-# SOURCE #-} qualified GI.NM.Objects.SettingIP6Config as NM.SettingIP6Config
import {-# SOURCE #-} qualified GI.NM.Objects.SettingIPConfig as NM.SettingIPConfig
import {-# SOURCE #-} qualified GI.NM.Objects.SettingIPTunnel as NM.SettingIPTunnel
import {-# SOURCE #-} qualified GI.NM.Objects.SettingInfiniband as NM.SettingInfiniband
import {-# SOURCE #-} qualified GI.NM.Objects.SettingMacsec as NM.SettingMacsec
import {-# SOURCE #-} qualified GI.NM.Objects.SettingMacvlan as NM.SettingMacvlan
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOlpcMesh as NM.SettingOlpcMesh
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOvsBridge as NM.SettingOvsBridge
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOvsInterface as NM.SettingOvsInterface
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOvsPatch as NM.SettingOvsPatch
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOvsPort as NM.SettingOvsPort
import {-# SOURCE #-} qualified GI.NM.Objects.SettingPpp as NM.SettingPpp
import {-# SOURCE #-} qualified GI.NM.Objects.SettingPppoe as NM.SettingPppoe
import {-# SOURCE #-} qualified GI.NM.Objects.SettingProxy as NM.SettingProxy
import {-# SOURCE #-} qualified GI.NM.Objects.SettingSerial as NM.SettingSerial
import {-# SOURCE #-} qualified GI.NM.Objects.SettingTCConfig as NM.SettingTCConfig
import {-# SOURCE #-} qualified GI.NM.Objects.SettingTeam as NM.SettingTeam
import {-# SOURCE #-} qualified GI.NM.Objects.SettingTeamPort as NM.SettingTeamPort
import {-# SOURCE #-} qualified GI.NM.Objects.SettingTun as NM.SettingTun
import {-# SOURCE #-} qualified GI.NM.Objects.SettingVlan as NM.SettingVlan
import {-# SOURCE #-} qualified GI.NM.Objects.SettingVpn as NM.SettingVpn
import {-# SOURCE #-} qualified GI.NM.Objects.SettingVxlan as NM.SettingVxlan
import {-# SOURCE #-} qualified GI.NM.Objects.SettingWimax as NM.SettingWimax
import {-# SOURCE #-} qualified GI.NM.Objects.SettingWired as NM.SettingWired
import {-# SOURCE #-} qualified GI.NM.Objects.SettingWireless as NM.SettingWireless
import {-# SOURCE #-} qualified GI.NM.Objects.SettingWirelessSecurity as NM.SettingWirelessSecurity
import {-# SOURCE #-} qualified GI.NM.Structs.BridgeVlan as NM.BridgeVlan
import {-# SOURCE #-} qualified GI.NM.Structs.IPAddress as NM.IPAddress
import {-# SOURCE #-} qualified GI.NM.Structs.IPRoute as NM.IPRoute
import {-# SOURCE #-} qualified GI.NM.Structs.IPRoutingRule as NM.IPRoutingRule
import {-# SOURCE #-} qualified GI.NM.Structs.Range as NM.Range
import {-# SOURCE #-} qualified GI.NM.Structs.TCAction as NM.TCAction
import {-# SOURCE #-} qualified GI.NM.Structs.TCQdisc as NM.TCQdisc
import {-# SOURCE #-} qualified GI.NM.Structs.TCTfilter as NM.TCTfilter
import {-# SOURCE #-} qualified GI.NM.Structs.TeamLinkWatcher as NM.TeamLinkWatcher
import {-# SOURCE #-} qualified GI.NM.Structs.VariantAttributeSpec as NM.VariantAttributeSpec

#else
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.NM.Objects.Setting as NM.Setting

#endif

-- | Memory-managed wrapper type.
newtype SettingLink = SettingLink (SP.ManagedPtr SettingLink)
    deriving (SettingLink -> SettingLink -> Bool
(SettingLink -> SettingLink -> Bool)
-> (SettingLink -> SettingLink -> Bool) -> Eq SettingLink
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SettingLink -> SettingLink -> Bool
== :: SettingLink -> SettingLink -> Bool
$c/= :: SettingLink -> SettingLink -> Bool
/= :: SettingLink -> SettingLink -> Bool
Eq)

instance SP.ManagedPtrNewtype SettingLink where
    toManagedPtr :: SettingLink -> ManagedPtr SettingLink
toManagedPtr (SettingLink ManagedPtr SettingLink
p) = ManagedPtr SettingLink
p

foreign import ccall "nm_setting_link_get_type"
    c_nm_setting_link_get_type :: IO B.Types.GType

instance B.Types.TypedObject SettingLink where
    glibType :: IO GType
glibType = IO GType
c_nm_setting_link_get_type

instance B.Types.GObject SettingLink

-- | Type class for types which can be safely cast to t'SettingLink', for instance with `toSettingLink`.
class (SP.GObject o, O.IsDescendantOf SettingLink o) => IsSettingLink o
instance (SP.GObject o, O.IsDescendantOf SettingLink o) => IsSettingLink o

instance O.HasParentTypes SettingLink
type instance O.ParentTypes SettingLink = '[NM.Setting.Setting, GObject.Object.Object]

-- | Cast to t'SettingLink', for types for which this is known to be safe. For general casts, use 'Data.GI.Base.ManagedPtr.castTo'.
toSettingLink :: (MIO.MonadIO m, IsSettingLink o) => o -> m SettingLink
toSettingLink :: forall (m :: * -> *) o.
(MonadIO m, IsSettingLink o) =>
o -> m SettingLink
toSettingLink = IO SettingLink -> m SettingLink
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO SettingLink -> m SettingLink)
-> (o -> IO SettingLink) -> o -> m SettingLink
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr SettingLink -> SettingLink) -> o -> IO SettingLink
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr SettingLink -> SettingLink
SettingLink

-- | Convert t'SettingLink' to and from t'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue (Maybe SettingLink) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_nm_setting_link_get_type
    gvalueSet_ :: Ptr GValue -> Maybe SettingLink -> IO ()
gvalueSet_ Ptr GValue
gv Maybe SettingLink
P.Nothing = Ptr GValue -> Ptr SettingLink -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr SettingLink
forall a. Ptr a
FP.nullPtr :: FP.Ptr SettingLink)
    gvalueSet_ Ptr GValue
gv (P.Just SettingLink
obj) = SettingLink -> (Ptr SettingLink -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr SettingLink
obj (Ptr GValue -> Ptr SettingLink -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe SettingLink)
gvalueGet_ Ptr GValue
gv = do
        Ptr SettingLink
ptr <- Ptr GValue -> IO (Ptr SettingLink)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr SettingLink)
        if Ptr SettingLink
ptr Ptr SettingLink -> Ptr SettingLink -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr SettingLink
forall a. Ptr a
FP.nullPtr
        then SettingLink -> Maybe SettingLink
forall a. a -> Maybe a
P.Just (SettingLink -> Maybe SettingLink)
-> IO SettingLink -> IO (Maybe SettingLink)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr SettingLink -> SettingLink)
-> Ptr SettingLink -> IO SettingLink
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr SettingLink -> SettingLink
SettingLink Ptr SettingLink
ptr
        else Maybe SettingLink -> IO (Maybe SettingLink)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe SettingLink
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveSettingLinkMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveSettingLinkMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveSettingLinkMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveSettingLinkMethod "compare" o = NM.Setting.SettingCompareMethodInfo
    ResolveSettingLinkMethod "diff" o = NM.Setting.SettingDiffMethodInfo
    ResolveSettingLinkMethod "duplicate" o = NM.Setting.SettingDuplicateMethodInfo
    ResolveSettingLinkMethod "enumerateValues" o = NM.Setting.SettingEnumerateValuesMethodInfo
    ResolveSettingLinkMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveSettingLinkMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveSettingLinkMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveSettingLinkMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveSettingLinkMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveSettingLinkMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveSettingLinkMethod "optionClearByName" o = NM.Setting.SettingOptionClearByNameMethodInfo
    ResolveSettingLinkMethod "optionGet" o = NM.Setting.SettingOptionGetMethodInfo
    ResolveSettingLinkMethod "optionGetAllNames" o = NM.Setting.SettingOptionGetAllNamesMethodInfo
    ResolveSettingLinkMethod "optionGetBoolean" o = NM.Setting.SettingOptionGetBooleanMethodInfo
    ResolveSettingLinkMethod "optionGetUint32" o = NM.Setting.SettingOptionGetUint32MethodInfo
    ResolveSettingLinkMethod "optionSet" o = NM.Setting.SettingOptionSetMethodInfo
    ResolveSettingLinkMethod "optionSetBoolean" o = NM.Setting.SettingOptionSetBooleanMethodInfo
    ResolveSettingLinkMethod "optionSetUint32" o = NM.Setting.SettingOptionSetUint32MethodInfo
    ResolveSettingLinkMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveSettingLinkMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveSettingLinkMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveSettingLinkMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveSettingLinkMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveSettingLinkMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveSettingLinkMethod "toString" o = NM.Setting.SettingToStringMethodInfo
    ResolveSettingLinkMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveSettingLinkMethod "verify" o = NM.Setting.SettingVerifyMethodInfo
    ResolveSettingLinkMethod "verifySecrets" o = NM.Setting.SettingVerifySecretsMethodInfo
    ResolveSettingLinkMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveSettingLinkMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveSettingLinkMethod "getDbusPropertyType" o = NM.Setting.SettingGetDbusPropertyTypeMethodInfo
    ResolveSettingLinkMethod "getGroMaxSize" o = SettingLinkGetGroMaxSizeMethodInfo
    ResolveSettingLinkMethod "getGsoMaxSegments" o = SettingLinkGetGsoMaxSegmentsMethodInfo
    ResolveSettingLinkMethod "getGsoMaxSize" o = SettingLinkGetGsoMaxSizeMethodInfo
    ResolveSettingLinkMethod "getName" o = NM.Setting.SettingGetNameMethodInfo
    ResolveSettingLinkMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveSettingLinkMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveSettingLinkMethod "getSecretFlags" o = NM.Setting.SettingGetSecretFlagsMethodInfo
    ResolveSettingLinkMethod "getTxQueueLength" o = SettingLinkGetTxQueueLengthMethodInfo
    ResolveSettingLinkMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveSettingLinkMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveSettingLinkMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveSettingLinkMethod "setSecretFlags" o = NM.Setting.SettingSetSecretFlagsMethodInfo
    ResolveSettingLinkMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveSettingLinkMethod t SettingLink, O.OverloadedMethod info SettingLink p) => OL.IsLabel t (SettingLink -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveSettingLinkMethod t SettingLink, O.OverloadedMethod info SettingLink p, R.HasField t SettingLink p) => R.HasField t SettingLink p where
    getField = O.overloadedMethod @info

#endif

instance (info ~ ResolveSettingLinkMethod t SettingLink, O.OverloadedMethodInfo info SettingLink) => OL.IsLabel t (O.MethodProxy info SettingLink) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#endif

#endif

-- VVV Prop "gro-max-size"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@gro-max-size@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingLink #groMaxSize
-- @
getSettingLinkGroMaxSize :: (MonadIO m, IsSettingLink o) => o -> m Int64
getSettingLinkGroMaxSize :: forall (m :: * -> *) o.
(MonadIO m, IsSettingLink o) =>
o -> m Int64
getSettingLinkGroMaxSize o
obj = IO Int64 -> m Int64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Int64 -> m Int64) -> IO Int64 -> m Int64
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Int64
forall a. GObject a => a -> String -> IO Int64
B.Properties.getObjectPropertyInt64 o
obj String
"gro-max-size"

-- | Set the value of the “@gro-max-size@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingLink [ #groMaxSize 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingLinkGroMaxSize :: (MonadIO m, IsSettingLink o) => o -> Int64 -> m ()
setSettingLinkGroMaxSize :: forall (m :: * -> *) o.
(MonadIO m, IsSettingLink o) =>
o -> Int64 -> m ()
setSettingLinkGroMaxSize o
obj Int64
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Int64 -> IO ()
forall a. GObject a => a -> String -> Int64 -> IO ()
B.Properties.setObjectPropertyInt64 o
obj String
"gro-max-size" Int64
val

-- | Construct a t'GValueConstruct' with valid value for the “@gro-max-size@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingLinkGroMaxSize :: (IsSettingLink o, MIO.MonadIO m) => Int64 -> m (GValueConstruct o)
constructSettingLinkGroMaxSize :: forall o (m :: * -> *).
(IsSettingLink o, MonadIO m) =>
Int64 -> m (GValueConstruct o)
constructSettingLinkGroMaxSize Int64
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Int64 -> IO (GValueConstruct o)
forall o. String -> Int64 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyInt64 String
"gro-max-size" Int64
val

#if defined(ENABLE_OVERLOADING)
data SettingLinkGroMaxSizePropertyInfo
instance AttrInfo SettingLinkGroMaxSizePropertyInfo where
    type AttrAllowedOps SettingLinkGroMaxSizePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingLinkGroMaxSizePropertyInfo = IsSettingLink
    type AttrSetTypeConstraint SettingLinkGroMaxSizePropertyInfo = (~) Int64
    type AttrTransferTypeConstraint SettingLinkGroMaxSizePropertyInfo = (~) Int64
    type AttrTransferType SettingLinkGroMaxSizePropertyInfo = Int64
    type AttrGetType SettingLinkGroMaxSizePropertyInfo = Int64
    type AttrLabel SettingLinkGroMaxSizePropertyInfo = "gro-max-size"
    type AttrOrigin SettingLinkGroMaxSizePropertyInfo = SettingLink
    attrGet = getSettingLinkGroMaxSize
    attrSet = setSettingLinkGroMaxSize
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingLinkGroMaxSize
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingLink.groMaxSize"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingLink.html#g:attr:groMaxSize"
        })
#endif

-- VVV Prop "gso-max-segments"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@gso-max-segments@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingLink #gsoMaxSegments
-- @
getSettingLinkGsoMaxSegments :: (MonadIO m, IsSettingLink o) => o -> m Int64
getSettingLinkGsoMaxSegments :: forall (m :: * -> *) o.
(MonadIO m, IsSettingLink o) =>
o -> m Int64
getSettingLinkGsoMaxSegments o
obj = IO Int64 -> m Int64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Int64 -> m Int64) -> IO Int64 -> m Int64
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Int64
forall a. GObject a => a -> String -> IO Int64
B.Properties.getObjectPropertyInt64 o
obj String
"gso-max-segments"

-- | Set the value of the “@gso-max-segments@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingLink [ #gsoMaxSegments 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingLinkGsoMaxSegments :: (MonadIO m, IsSettingLink o) => o -> Int64 -> m ()
setSettingLinkGsoMaxSegments :: forall (m :: * -> *) o.
(MonadIO m, IsSettingLink o) =>
o -> Int64 -> m ()
setSettingLinkGsoMaxSegments o
obj Int64
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Int64 -> IO ()
forall a. GObject a => a -> String -> Int64 -> IO ()
B.Properties.setObjectPropertyInt64 o
obj String
"gso-max-segments" Int64
val

-- | Construct a t'GValueConstruct' with valid value for the “@gso-max-segments@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingLinkGsoMaxSegments :: (IsSettingLink o, MIO.MonadIO m) => Int64 -> m (GValueConstruct o)
constructSettingLinkGsoMaxSegments :: forall o (m :: * -> *).
(IsSettingLink o, MonadIO m) =>
Int64 -> m (GValueConstruct o)
constructSettingLinkGsoMaxSegments Int64
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Int64 -> IO (GValueConstruct o)
forall o. String -> Int64 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyInt64 String
"gso-max-segments" Int64
val

#if defined(ENABLE_OVERLOADING)
data SettingLinkGsoMaxSegmentsPropertyInfo
instance AttrInfo SettingLinkGsoMaxSegmentsPropertyInfo where
    type AttrAllowedOps SettingLinkGsoMaxSegmentsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingLinkGsoMaxSegmentsPropertyInfo = IsSettingLink
    type AttrSetTypeConstraint SettingLinkGsoMaxSegmentsPropertyInfo = (~) Int64
    type AttrTransferTypeConstraint SettingLinkGsoMaxSegmentsPropertyInfo = (~) Int64
    type AttrTransferType SettingLinkGsoMaxSegmentsPropertyInfo = Int64
    type AttrGetType SettingLinkGsoMaxSegmentsPropertyInfo = Int64
    type AttrLabel SettingLinkGsoMaxSegmentsPropertyInfo = "gso-max-segments"
    type AttrOrigin SettingLinkGsoMaxSegmentsPropertyInfo = SettingLink
    attrGet = getSettingLinkGsoMaxSegments
    attrSet = setSettingLinkGsoMaxSegments
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingLinkGsoMaxSegments
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingLink.gsoMaxSegments"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingLink.html#g:attr:gsoMaxSegments"
        })
#endif

-- VVV Prop "gso-max-size"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@gso-max-size@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingLink #gsoMaxSize
-- @
getSettingLinkGsoMaxSize :: (MonadIO m, IsSettingLink o) => o -> m Int64
getSettingLinkGsoMaxSize :: forall (m :: * -> *) o.
(MonadIO m, IsSettingLink o) =>
o -> m Int64
getSettingLinkGsoMaxSize o
obj = IO Int64 -> m Int64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Int64 -> m Int64) -> IO Int64 -> m Int64
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Int64
forall a. GObject a => a -> String -> IO Int64
B.Properties.getObjectPropertyInt64 o
obj String
"gso-max-size"

-- | Set the value of the “@gso-max-size@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingLink [ #gsoMaxSize 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingLinkGsoMaxSize :: (MonadIO m, IsSettingLink o) => o -> Int64 -> m ()
setSettingLinkGsoMaxSize :: forall (m :: * -> *) o.
(MonadIO m, IsSettingLink o) =>
o -> Int64 -> m ()
setSettingLinkGsoMaxSize o
obj Int64
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Int64 -> IO ()
forall a. GObject a => a -> String -> Int64 -> IO ()
B.Properties.setObjectPropertyInt64 o
obj String
"gso-max-size" Int64
val

-- | Construct a t'GValueConstruct' with valid value for the “@gso-max-size@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingLinkGsoMaxSize :: (IsSettingLink o, MIO.MonadIO m) => Int64 -> m (GValueConstruct o)
constructSettingLinkGsoMaxSize :: forall o (m :: * -> *).
(IsSettingLink o, MonadIO m) =>
Int64 -> m (GValueConstruct o)
constructSettingLinkGsoMaxSize Int64
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Int64 -> IO (GValueConstruct o)
forall o. String -> Int64 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyInt64 String
"gso-max-size" Int64
val

#if defined(ENABLE_OVERLOADING)
data SettingLinkGsoMaxSizePropertyInfo
instance AttrInfo SettingLinkGsoMaxSizePropertyInfo where
    type AttrAllowedOps SettingLinkGsoMaxSizePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingLinkGsoMaxSizePropertyInfo = IsSettingLink
    type AttrSetTypeConstraint SettingLinkGsoMaxSizePropertyInfo = (~) Int64
    type AttrTransferTypeConstraint SettingLinkGsoMaxSizePropertyInfo = (~) Int64
    type AttrTransferType SettingLinkGsoMaxSizePropertyInfo = Int64
    type AttrGetType SettingLinkGsoMaxSizePropertyInfo = Int64
    type AttrLabel SettingLinkGsoMaxSizePropertyInfo = "gso-max-size"
    type AttrOrigin SettingLinkGsoMaxSizePropertyInfo = SettingLink
    attrGet = getSettingLinkGsoMaxSize
    attrSet = setSettingLinkGsoMaxSize
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingLinkGsoMaxSize
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingLink.gsoMaxSize"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingLink.html#g:attr:gsoMaxSize"
        })
#endif

-- VVV Prop "tx-queue-length"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@tx-queue-length@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingLink #txQueueLength
-- @
getSettingLinkTxQueueLength :: (MonadIO m, IsSettingLink o) => o -> m Int64
getSettingLinkTxQueueLength :: forall (m :: * -> *) o.
(MonadIO m, IsSettingLink o) =>
o -> m Int64
getSettingLinkTxQueueLength o
obj = IO Int64 -> m Int64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Int64 -> m Int64) -> IO Int64 -> m Int64
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Int64
forall a. GObject a => a -> String -> IO Int64
B.Properties.getObjectPropertyInt64 o
obj String
"tx-queue-length"

-- | Set the value of the “@tx-queue-length@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingLink [ #txQueueLength 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingLinkTxQueueLength :: (MonadIO m, IsSettingLink o) => o -> Int64 -> m ()
setSettingLinkTxQueueLength :: forall (m :: * -> *) o.
(MonadIO m, IsSettingLink o) =>
o -> Int64 -> m ()
setSettingLinkTxQueueLength o
obj Int64
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Int64 -> IO ()
forall a. GObject a => a -> String -> Int64 -> IO ()
B.Properties.setObjectPropertyInt64 o
obj String
"tx-queue-length" Int64
val

-- | Construct a t'GValueConstruct' with valid value for the “@tx-queue-length@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingLinkTxQueueLength :: (IsSettingLink o, MIO.MonadIO m) => Int64 -> m (GValueConstruct o)
constructSettingLinkTxQueueLength :: forall o (m :: * -> *).
(IsSettingLink o, MonadIO m) =>
Int64 -> m (GValueConstruct o)
constructSettingLinkTxQueueLength Int64
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Int64 -> IO (GValueConstruct o)
forall o. String -> Int64 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyInt64 String
"tx-queue-length" Int64
val

#if defined(ENABLE_OVERLOADING)
data SettingLinkTxQueueLengthPropertyInfo
instance AttrInfo SettingLinkTxQueueLengthPropertyInfo where
    type AttrAllowedOps SettingLinkTxQueueLengthPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingLinkTxQueueLengthPropertyInfo = IsSettingLink
    type AttrSetTypeConstraint SettingLinkTxQueueLengthPropertyInfo = (~) Int64
    type AttrTransferTypeConstraint SettingLinkTxQueueLengthPropertyInfo = (~) Int64
    type AttrTransferType SettingLinkTxQueueLengthPropertyInfo = Int64
    type AttrGetType SettingLinkTxQueueLengthPropertyInfo = Int64
    type AttrLabel SettingLinkTxQueueLengthPropertyInfo = "tx-queue-length"
    type AttrOrigin SettingLinkTxQueueLengthPropertyInfo = SettingLink
    attrGet = getSettingLinkTxQueueLength
    attrSet = setSettingLinkTxQueueLength
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingLinkTxQueueLength
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingLink.txQueueLength"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingLink.html#g:attr:txQueueLength"
        })
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList SettingLink
type instance O.AttributeList SettingLink = SettingLinkAttributeList
type SettingLinkAttributeList = ('[ '("groMaxSize", SettingLinkGroMaxSizePropertyInfo), '("gsoMaxSegments", SettingLinkGsoMaxSegmentsPropertyInfo), '("gsoMaxSize", SettingLinkGsoMaxSizePropertyInfo), '("name", NM.Setting.SettingNamePropertyInfo), '("txQueueLength", SettingLinkTxQueueLengthPropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
settingLinkGroMaxSize :: AttrLabelProxy "groMaxSize"
settingLinkGroMaxSize = AttrLabelProxy

settingLinkGsoMaxSegments :: AttrLabelProxy "gsoMaxSegments"
settingLinkGsoMaxSegments = AttrLabelProxy

settingLinkGsoMaxSize :: AttrLabelProxy "gsoMaxSize"
settingLinkGsoMaxSize = AttrLabelProxy

settingLinkTxQueueLength :: AttrLabelProxy "txQueueLength"
settingLinkTxQueueLength = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList SettingLink = SettingLinkSignalList
type SettingLinkSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])

#endif

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

foreign import ccall "nm_setting_link_new" nm_setting_link_new :: 
    IO (Ptr SettingLink)

-- | Creates a new t'GI.NM.Objects.SettingLink.SettingLink' object with default values.
-- 
-- /Since: 1.44/
settingLinkNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m SettingLink
    -- ^ __Returns:__ the new empty t'GI.NM.Objects.SettingLink.SettingLink' object
settingLinkNew :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m SettingLink
settingLinkNew  = IO SettingLink -> m SettingLink
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SettingLink -> m SettingLink)
-> IO SettingLink -> m SettingLink
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingLink
result <- IO (Ptr SettingLink)
nm_setting_link_new
    Text -> Ptr SettingLink -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingLinkNew" Ptr SettingLink
result
    SettingLink
result' <- ((ManagedPtr SettingLink -> SettingLink)
-> Ptr SettingLink -> IO SettingLink
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr SettingLink -> SettingLink
SettingLink) Ptr SettingLink
result
    SettingLink -> IO SettingLink
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return SettingLink
result'

#if defined(ENABLE_OVERLOADING)
#endif

-- method SettingLink::get_gro_max_size
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingLink" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingLink" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt64)
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_link_get_gro_max_size" nm_setting_link_get_gro_max_size :: 
    Ptr SettingLink ->                      -- setting : TInterface (Name {namespace = "NM", name = "SettingLink"})
    IO Int64

-- | Returns the value contained in the [SettingLink:groMaxSize]("GI.NM.Objects.SettingLink#g:attr:groMaxSize")
-- property.
-- 
-- /Since: 1.44/
settingLinkGetGroMaxSize ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingLink a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingLink.SettingLink'
    -> m Int64
    -- ^ __Returns:__ the \'gro-max-size\' property value
settingLinkGetGroMaxSize :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingLink a) =>
a -> m Int64
settingLinkGetGroMaxSize a
setting = IO Int64 -> m Int64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int64 -> m Int64) -> IO Int64 -> m Int64
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingLink
setting' <- a -> IO (Ptr SettingLink)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Int64
result <- Ptr SettingLink -> IO Int64
nm_setting_link_get_gro_max_size Ptr SettingLink
setting'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Int64 -> IO Int64
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Int64
result

#if defined(ENABLE_OVERLOADING)
data SettingLinkGetGroMaxSizeMethodInfo
instance (signature ~ (m Int64), MonadIO m, IsSettingLink a) => O.OverloadedMethod SettingLinkGetGroMaxSizeMethodInfo a signature where
    overloadedMethod = settingLinkGetGroMaxSize

instance O.OverloadedMethodInfo SettingLinkGetGroMaxSizeMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingLink.settingLinkGetGroMaxSize",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingLink.html#v:settingLinkGetGroMaxSize"
        })


#endif

-- method SettingLink::get_gso_max_segments
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingLink" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingLink" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt64)
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_link_get_gso_max_segments" nm_setting_link_get_gso_max_segments :: 
    Ptr SettingLink ->                      -- setting : TInterface (Name {namespace = "NM", name = "SettingLink"})
    IO Int64

-- | Returns the value contained in the [SettingLink:gsoMaxSegments]("GI.NM.Objects.SettingLink#g:attr:gsoMaxSegments")
-- property.
-- 
-- /Since: 1.44/
settingLinkGetGsoMaxSegments ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingLink a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingLink.SettingLink'
    -> m Int64
    -- ^ __Returns:__ the \'gso-max-segments\' property value
settingLinkGetGsoMaxSegments :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingLink a) =>
a -> m Int64
settingLinkGetGsoMaxSegments a
setting = IO Int64 -> m Int64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int64 -> m Int64) -> IO Int64 -> m Int64
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingLink
setting' <- a -> IO (Ptr SettingLink)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Int64
result <- Ptr SettingLink -> IO Int64
nm_setting_link_get_gso_max_segments Ptr SettingLink
setting'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Int64 -> IO Int64
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Int64
result

#if defined(ENABLE_OVERLOADING)
data SettingLinkGetGsoMaxSegmentsMethodInfo
instance (signature ~ (m Int64), MonadIO m, IsSettingLink a) => O.OverloadedMethod SettingLinkGetGsoMaxSegmentsMethodInfo a signature where
    overloadedMethod = settingLinkGetGsoMaxSegments

instance O.OverloadedMethodInfo SettingLinkGetGsoMaxSegmentsMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingLink.settingLinkGetGsoMaxSegments",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingLink.html#v:settingLinkGetGsoMaxSegments"
        })


#endif

-- method SettingLink::get_gso_max_size
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingLink" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingLink" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt64)
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_link_get_gso_max_size" nm_setting_link_get_gso_max_size :: 
    Ptr SettingLink ->                      -- setting : TInterface (Name {namespace = "NM", name = "SettingLink"})
    IO Int64

-- | Returns the value contained in the [SettingLink:gsoMaxSize]("GI.NM.Objects.SettingLink#g:attr:gsoMaxSize")
-- property.
-- 
-- /Since: 1.44/
settingLinkGetGsoMaxSize ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingLink a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingLink.SettingLink'
    -> m Int64
    -- ^ __Returns:__ the \'gso-max-size\' property value
settingLinkGetGsoMaxSize :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingLink a) =>
a -> m Int64
settingLinkGetGsoMaxSize a
setting = IO Int64 -> m Int64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int64 -> m Int64) -> IO Int64 -> m Int64
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingLink
setting' <- a -> IO (Ptr SettingLink)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Int64
result <- Ptr SettingLink -> IO Int64
nm_setting_link_get_gso_max_size Ptr SettingLink
setting'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Int64 -> IO Int64
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Int64
result

#if defined(ENABLE_OVERLOADING)
data SettingLinkGetGsoMaxSizeMethodInfo
instance (signature ~ (m Int64), MonadIO m, IsSettingLink a) => O.OverloadedMethod SettingLinkGetGsoMaxSizeMethodInfo a signature where
    overloadedMethod = settingLinkGetGsoMaxSize

instance O.OverloadedMethodInfo SettingLinkGetGsoMaxSizeMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingLink.settingLinkGetGsoMaxSize",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingLink.html#v:settingLinkGetGsoMaxSize"
        })


#endif

-- method SettingLink::get_tx_queue_length
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingLink" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingLink" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt64)
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_link_get_tx_queue_length" nm_setting_link_get_tx_queue_length :: 
    Ptr SettingLink ->                      -- setting : TInterface (Name {namespace = "NM", name = "SettingLink"})
    IO Int64

-- | Returns the value contained in the [SettingLink:txQueueLength]("GI.NM.Objects.SettingLink#g:attr:txQueueLength")
-- property.
-- 
-- /Since: 1.44/
settingLinkGetTxQueueLength ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingLink a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingLink.SettingLink'
    -> m Int64
    -- ^ __Returns:__ the \'tx-queue-length\' property value
settingLinkGetTxQueueLength :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingLink a) =>
a -> m Int64
settingLinkGetTxQueueLength a
setting = IO Int64 -> m Int64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int64 -> m Int64) -> IO Int64 -> m Int64
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingLink
setting' <- a -> IO (Ptr SettingLink)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Int64
result <- Ptr SettingLink -> IO Int64
nm_setting_link_get_tx_queue_length Ptr SettingLink
setting'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Int64 -> IO Int64
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Int64
result

#if defined(ENABLE_OVERLOADING)
data SettingLinkGetTxQueueLengthMethodInfo
instance (signature ~ (m Int64), MonadIO m, IsSettingLink a) => O.OverloadedMethod SettingLinkGetTxQueueLengthMethodInfo a signature where
    overloadedMethod = settingLinkGetTxQueueLength

instance O.OverloadedMethodInfo SettingLinkGetTxQueueLengthMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingLink.settingLinkGetTxQueueLength",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingLink.html#v:settingLinkGetTxQueueLength"
        })


#endif