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

Specifies the 'GI.GLib.Structs.Scanner.Scanner' parser configuration. Most settings can
be changed during the parsing phase and will affect the lexical
parsing of the next unpeeked token.
-}

module GI.GLib.Structs.ScannerConfig
    ( 

-- * Exported types
    ScannerConfig(..)                       ,
    newZeroScannerConfig                    ,
    noScannerConfig                         ,


 -- * Properties
-- ** caseSensitive #attr:caseSensitive#
    getScannerConfigCaseSensitive           ,
    scannerConfig_caseSensitive             ,
    setScannerConfigCaseSensitive           ,


-- ** char2Token #attr:char2Token#
    getScannerConfigChar2Token              ,
    scannerConfig_char2Token                ,
    setScannerConfigChar2Token              ,


-- ** cpairCommentSingle #attr:cpairCommentSingle#
    clearScannerConfigCpairCommentSingle    ,
    getScannerConfigCpairCommentSingle      ,
    scannerConfig_cpairCommentSingle        ,
    setScannerConfigCpairCommentSingle      ,


-- ** csetIdentifierFirst #attr:csetIdentifierFirst#
    clearScannerConfigCsetIdentifierFirst   ,
    getScannerConfigCsetIdentifierFirst     ,
    scannerConfig_csetIdentifierFirst       ,
    setScannerConfigCsetIdentifierFirst     ,


-- ** csetIdentifierNth #attr:csetIdentifierNth#
    clearScannerConfigCsetIdentifierNth     ,
    getScannerConfigCsetIdentifierNth       ,
    scannerConfig_csetIdentifierNth         ,
    setScannerConfigCsetIdentifierNth       ,


-- ** csetSkipCharacters #attr:csetSkipCharacters#
    clearScannerConfigCsetSkipCharacters    ,
    getScannerConfigCsetSkipCharacters      ,
    scannerConfig_csetSkipCharacters        ,
    setScannerConfigCsetSkipCharacters      ,


-- ** identifier2String #attr:identifier2String#
    getScannerConfigIdentifier2String       ,
    scannerConfig_identifier2String         ,
    setScannerConfigIdentifier2String       ,


-- ** int2Float #attr:int2Float#
    getScannerConfigInt2Float               ,
    scannerConfig_int2Float                 ,
    setScannerConfigInt2Float               ,


-- ** numbers2Int #attr:numbers2Int#
    getScannerConfigNumbers2Int             ,
    scannerConfig_numbers2Int               ,
    setScannerConfigNumbers2Int             ,


-- ** scanBinary #attr:scanBinary#
    getScannerConfigScanBinary              ,
    scannerConfig_scanBinary                ,
    setScannerConfigScanBinary              ,


-- ** scanCommentMulti #attr:scanCommentMulti#
    getScannerConfigScanCommentMulti        ,
    scannerConfig_scanCommentMulti          ,
    setScannerConfigScanCommentMulti        ,


-- ** scanFloat #attr:scanFloat#
    getScannerConfigScanFloat               ,
    scannerConfig_scanFloat                 ,
    setScannerConfigScanFloat               ,


-- ** scanHex #attr:scanHex#
    getScannerConfigScanHex                 ,
    scannerConfig_scanHex                   ,
    setScannerConfigScanHex                 ,


-- ** scanHexDollar #attr:scanHexDollar#
    getScannerConfigScanHexDollar           ,
    scannerConfig_scanHexDollar             ,
    setScannerConfigScanHexDollar           ,


-- ** scanIdentifier #attr:scanIdentifier#
    getScannerConfigScanIdentifier          ,
    scannerConfig_scanIdentifier            ,
    setScannerConfigScanIdentifier          ,


-- ** scanIdentifier1char #attr:scanIdentifier1char#
    getScannerConfigScanIdentifier1char     ,
    scannerConfig_scanIdentifier1char       ,
    setScannerConfigScanIdentifier1char     ,


-- ** scanIdentifierNULL #attr:scanIdentifierNULL#
    getScannerConfigScanIdentifierNULL      ,
    scannerConfig_scanIdentifierNULL        ,
    setScannerConfigScanIdentifierNULL      ,


-- ** scanOctal #attr:scanOctal#
    getScannerConfigScanOctal               ,
    scannerConfig_scanOctal                 ,
    setScannerConfigScanOctal               ,


-- ** scanStringDq #attr:scanStringDq#
    getScannerConfigScanStringDq            ,
    scannerConfig_scanStringDq              ,
    setScannerConfigScanStringDq            ,


-- ** scanStringSq #attr:scanStringSq#
    getScannerConfigScanStringSq            ,
    scannerConfig_scanStringSq              ,
    setScannerConfigScanStringSq            ,


-- ** scanSymbols #attr:scanSymbols#
    getScannerConfigScanSymbols             ,
    scannerConfig_scanSymbols               ,
    setScannerConfigScanSymbols             ,


-- ** scope0Fallback #attr:scope0Fallback#
    getScannerConfigScope0Fallback          ,
    scannerConfig_scope0Fallback            ,
    setScannerConfigScope0Fallback          ,


-- ** skipCommentMulti #attr:skipCommentMulti#
    getScannerConfigSkipCommentMulti        ,
    scannerConfig_skipCommentMulti          ,
    setScannerConfigSkipCommentMulti        ,


-- ** skipCommentSingle #attr:skipCommentSingle#
    getScannerConfigSkipCommentSingle       ,
    scannerConfig_skipCommentSingle         ,
    setScannerConfigSkipCommentSingle       ,


-- ** storeInt64 #attr:storeInt64#
    getScannerConfigStoreInt64              ,
    scannerConfig_storeInt64                ,
    setScannerConfigStoreInt64              ,


-- ** symbol2Token #attr:symbol2Token#
    getScannerConfigSymbol2Token            ,
    scannerConfig_symbol2Token              ,
    setScannerConfigSymbol2Token            ,




    ) where

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

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP


newtype ScannerConfig = ScannerConfig (ManagedPtr ScannerConfig)
instance WrappedPtr ScannerConfig where
    wrappedPtrCalloc = callocBytes 128
    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 128 >=> wrapPtr ScannerConfig)
    wrappedPtrFree = Just ptr_to_g_free

-- | Construct a `ScannerConfig` struct initialized to zero.
newZeroScannerConfig :: MonadIO m => m ScannerConfig
newZeroScannerConfig = liftIO $ wrappedPtrCalloc >>= wrapPtr ScannerConfig

instance tag ~ 'AttrSet => Constructible ScannerConfig tag where
    new _ attrs = do
        o <- newZeroScannerConfig
        GI.Attributes.set o attrs
        return o


noScannerConfig :: Maybe ScannerConfig
noScannerConfig = Nothing

getScannerConfigCsetSkipCharacters :: MonadIO m => ScannerConfig -> m (Maybe T.Text)
getScannerConfigCsetSkipCharacters s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 0) :: IO CString
    result <- SP.convertIfNonNull val $ \val' -> do
        val'' <- cstringToText val'
        return val''
    return result

setScannerConfigCsetSkipCharacters :: MonadIO m => ScannerConfig -> CString -> m ()
setScannerConfigCsetSkipCharacters s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 0) (val :: CString)

clearScannerConfigCsetSkipCharacters :: MonadIO m => ScannerConfig -> m ()
clearScannerConfigCsetSkipCharacters s = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 0) (FP.nullPtr :: CString)

data ScannerConfigCsetSkipCharactersFieldInfo
instance AttrInfo ScannerConfigCsetSkipCharactersFieldInfo where
    type AttrAllowedOps ScannerConfigCsetSkipCharactersFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint ScannerConfigCsetSkipCharactersFieldInfo = (~) CString
    type AttrBaseTypeConstraint ScannerConfigCsetSkipCharactersFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigCsetSkipCharactersFieldInfo = Maybe T.Text
    type AttrLabel ScannerConfigCsetSkipCharactersFieldInfo = "cset_skip_characters"
    type AttrOrigin ScannerConfigCsetSkipCharactersFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigCsetSkipCharacters
    attrSet _ = setScannerConfigCsetSkipCharacters
    attrConstruct = undefined
    attrClear _ = clearScannerConfigCsetSkipCharacters

scannerConfig_csetSkipCharacters :: AttrLabelProxy "csetSkipCharacters"
scannerConfig_csetSkipCharacters = AttrLabelProxy


getScannerConfigCsetIdentifierFirst :: MonadIO m => ScannerConfig -> m (Maybe T.Text)
getScannerConfigCsetIdentifierFirst s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 8) :: IO CString
    result <- SP.convertIfNonNull val $ \val' -> do
        val'' <- cstringToText val'
        return val''
    return result

setScannerConfigCsetIdentifierFirst :: MonadIO m => ScannerConfig -> CString -> m ()
setScannerConfigCsetIdentifierFirst s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 8) (val :: CString)

clearScannerConfigCsetIdentifierFirst :: MonadIO m => ScannerConfig -> m ()
clearScannerConfigCsetIdentifierFirst s = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 8) (FP.nullPtr :: CString)

data ScannerConfigCsetIdentifierFirstFieldInfo
instance AttrInfo ScannerConfigCsetIdentifierFirstFieldInfo where
    type AttrAllowedOps ScannerConfigCsetIdentifierFirstFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint ScannerConfigCsetIdentifierFirstFieldInfo = (~) CString
    type AttrBaseTypeConstraint ScannerConfigCsetIdentifierFirstFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigCsetIdentifierFirstFieldInfo = Maybe T.Text
    type AttrLabel ScannerConfigCsetIdentifierFirstFieldInfo = "cset_identifier_first"
    type AttrOrigin ScannerConfigCsetIdentifierFirstFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigCsetIdentifierFirst
    attrSet _ = setScannerConfigCsetIdentifierFirst
    attrConstruct = undefined
    attrClear _ = clearScannerConfigCsetIdentifierFirst

scannerConfig_csetIdentifierFirst :: AttrLabelProxy "csetIdentifierFirst"
scannerConfig_csetIdentifierFirst = AttrLabelProxy


getScannerConfigCsetIdentifierNth :: MonadIO m => ScannerConfig -> m (Maybe T.Text)
getScannerConfigCsetIdentifierNth s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 16) :: IO CString
    result <- SP.convertIfNonNull val $ \val' -> do
        val'' <- cstringToText val'
        return val''
    return result

setScannerConfigCsetIdentifierNth :: MonadIO m => ScannerConfig -> CString -> m ()
setScannerConfigCsetIdentifierNth s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 16) (val :: CString)

clearScannerConfigCsetIdentifierNth :: MonadIO m => ScannerConfig -> m ()
clearScannerConfigCsetIdentifierNth s = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 16) (FP.nullPtr :: CString)

data ScannerConfigCsetIdentifierNthFieldInfo
instance AttrInfo ScannerConfigCsetIdentifierNthFieldInfo where
    type AttrAllowedOps ScannerConfigCsetIdentifierNthFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint ScannerConfigCsetIdentifierNthFieldInfo = (~) CString
    type AttrBaseTypeConstraint ScannerConfigCsetIdentifierNthFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigCsetIdentifierNthFieldInfo = Maybe T.Text
    type AttrLabel ScannerConfigCsetIdentifierNthFieldInfo = "cset_identifier_nth"
    type AttrOrigin ScannerConfigCsetIdentifierNthFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigCsetIdentifierNth
    attrSet _ = setScannerConfigCsetIdentifierNth
    attrConstruct = undefined
    attrClear _ = clearScannerConfigCsetIdentifierNth

scannerConfig_csetIdentifierNth :: AttrLabelProxy "csetIdentifierNth"
scannerConfig_csetIdentifierNth = AttrLabelProxy


getScannerConfigCpairCommentSingle :: MonadIO m => ScannerConfig -> m (Maybe T.Text)
getScannerConfigCpairCommentSingle s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 24) :: IO CString
    result <- SP.convertIfNonNull val $ \val' -> do
        val'' <- cstringToText val'
        return val''
    return result

setScannerConfigCpairCommentSingle :: MonadIO m => ScannerConfig -> CString -> m ()
setScannerConfigCpairCommentSingle s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 24) (val :: CString)

clearScannerConfigCpairCommentSingle :: MonadIO m => ScannerConfig -> m ()
clearScannerConfigCpairCommentSingle s = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 24) (FP.nullPtr :: CString)

data ScannerConfigCpairCommentSingleFieldInfo
instance AttrInfo ScannerConfigCpairCommentSingleFieldInfo where
    type AttrAllowedOps ScannerConfigCpairCommentSingleFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint ScannerConfigCpairCommentSingleFieldInfo = (~) CString
    type AttrBaseTypeConstraint ScannerConfigCpairCommentSingleFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigCpairCommentSingleFieldInfo = Maybe T.Text
    type AttrLabel ScannerConfigCpairCommentSingleFieldInfo = "cpair_comment_single"
    type AttrOrigin ScannerConfigCpairCommentSingleFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigCpairCommentSingle
    attrSet _ = setScannerConfigCpairCommentSingle
    attrConstruct = undefined
    attrClear _ = clearScannerConfigCpairCommentSingle

scannerConfig_cpairCommentSingle :: AttrLabelProxy "cpairCommentSingle"
scannerConfig_cpairCommentSingle = AttrLabelProxy


getScannerConfigCaseSensitive :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigCaseSensitive s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 32) :: IO Word32
    return val

setScannerConfigCaseSensitive :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigCaseSensitive s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 32) (val :: Word32)

data ScannerConfigCaseSensitiveFieldInfo
instance AttrInfo ScannerConfigCaseSensitiveFieldInfo where
    type AttrAllowedOps ScannerConfigCaseSensitiveFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigCaseSensitiveFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigCaseSensitiveFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigCaseSensitiveFieldInfo = Word32
    type AttrLabel ScannerConfigCaseSensitiveFieldInfo = "case_sensitive"
    type AttrOrigin ScannerConfigCaseSensitiveFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigCaseSensitive
    attrSet _ = setScannerConfigCaseSensitive
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_caseSensitive :: AttrLabelProxy "caseSensitive"
scannerConfig_caseSensitive = AttrLabelProxy


getScannerConfigSkipCommentMulti :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigSkipCommentMulti s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 36) :: IO Word32
    return val

setScannerConfigSkipCommentMulti :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigSkipCommentMulti s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 36) (val :: Word32)

data ScannerConfigSkipCommentMultiFieldInfo
instance AttrInfo ScannerConfigSkipCommentMultiFieldInfo where
    type AttrAllowedOps ScannerConfigSkipCommentMultiFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigSkipCommentMultiFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigSkipCommentMultiFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigSkipCommentMultiFieldInfo = Word32
    type AttrLabel ScannerConfigSkipCommentMultiFieldInfo = "skip_comment_multi"
    type AttrOrigin ScannerConfigSkipCommentMultiFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigSkipCommentMulti
    attrSet _ = setScannerConfigSkipCommentMulti
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_skipCommentMulti :: AttrLabelProxy "skipCommentMulti"
scannerConfig_skipCommentMulti = AttrLabelProxy


getScannerConfigSkipCommentSingle :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigSkipCommentSingle s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 40) :: IO Word32
    return val

setScannerConfigSkipCommentSingle :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigSkipCommentSingle s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 40) (val :: Word32)

data ScannerConfigSkipCommentSingleFieldInfo
instance AttrInfo ScannerConfigSkipCommentSingleFieldInfo where
    type AttrAllowedOps ScannerConfigSkipCommentSingleFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigSkipCommentSingleFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigSkipCommentSingleFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigSkipCommentSingleFieldInfo = Word32
    type AttrLabel ScannerConfigSkipCommentSingleFieldInfo = "skip_comment_single"
    type AttrOrigin ScannerConfigSkipCommentSingleFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigSkipCommentSingle
    attrSet _ = setScannerConfigSkipCommentSingle
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_skipCommentSingle :: AttrLabelProxy "skipCommentSingle"
scannerConfig_skipCommentSingle = AttrLabelProxy


getScannerConfigScanCommentMulti :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigScanCommentMulti s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 44) :: IO Word32
    return val

setScannerConfigScanCommentMulti :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigScanCommentMulti s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 44) (val :: Word32)

data ScannerConfigScanCommentMultiFieldInfo
instance AttrInfo ScannerConfigScanCommentMultiFieldInfo where
    type AttrAllowedOps ScannerConfigScanCommentMultiFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigScanCommentMultiFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigScanCommentMultiFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigScanCommentMultiFieldInfo = Word32
    type AttrLabel ScannerConfigScanCommentMultiFieldInfo = "scan_comment_multi"
    type AttrOrigin ScannerConfigScanCommentMultiFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigScanCommentMulti
    attrSet _ = setScannerConfigScanCommentMulti
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_scanCommentMulti :: AttrLabelProxy "scanCommentMulti"
scannerConfig_scanCommentMulti = AttrLabelProxy


getScannerConfigScanIdentifier :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigScanIdentifier s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 48) :: IO Word32
    return val

setScannerConfigScanIdentifier :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigScanIdentifier s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 48) (val :: Word32)

data ScannerConfigScanIdentifierFieldInfo
instance AttrInfo ScannerConfigScanIdentifierFieldInfo where
    type AttrAllowedOps ScannerConfigScanIdentifierFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigScanIdentifierFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigScanIdentifierFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigScanIdentifierFieldInfo = Word32
    type AttrLabel ScannerConfigScanIdentifierFieldInfo = "scan_identifier"
    type AttrOrigin ScannerConfigScanIdentifierFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigScanIdentifier
    attrSet _ = setScannerConfigScanIdentifier
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_scanIdentifier :: AttrLabelProxy "scanIdentifier"
scannerConfig_scanIdentifier = AttrLabelProxy


getScannerConfigScanIdentifier1char :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigScanIdentifier1char s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 52) :: IO Word32
    return val

setScannerConfigScanIdentifier1char :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigScanIdentifier1char s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 52) (val :: Word32)

data ScannerConfigScanIdentifier1charFieldInfo
instance AttrInfo ScannerConfigScanIdentifier1charFieldInfo where
    type AttrAllowedOps ScannerConfigScanIdentifier1charFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigScanIdentifier1charFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigScanIdentifier1charFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigScanIdentifier1charFieldInfo = Word32
    type AttrLabel ScannerConfigScanIdentifier1charFieldInfo = "scan_identifier_1char"
    type AttrOrigin ScannerConfigScanIdentifier1charFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigScanIdentifier1char
    attrSet _ = setScannerConfigScanIdentifier1char
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_scanIdentifier1char :: AttrLabelProxy "scanIdentifier1char"
scannerConfig_scanIdentifier1char = AttrLabelProxy


getScannerConfigScanIdentifierNULL :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigScanIdentifierNULL s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 56) :: IO Word32
    return val

setScannerConfigScanIdentifierNULL :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigScanIdentifierNULL s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 56) (val :: Word32)

data ScannerConfigScanIdentifierNULLFieldInfo
instance AttrInfo ScannerConfigScanIdentifierNULLFieldInfo where
    type AttrAllowedOps ScannerConfigScanIdentifierNULLFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigScanIdentifierNULLFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigScanIdentifierNULLFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigScanIdentifierNULLFieldInfo = Word32
    type AttrLabel ScannerConfigScanIdentifierNULLFieldInfo = "scan_identifier_NULL"
    type AttrOrigin ScannerConfigScanIdentifierNULLFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigScanIdentifierNULL
    attrSet _ = setScannerConfigScanIdentifierNULL
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_scanIdentifierNULL :: AttrLabelProxy "scanIdentifierNULL"
scannerConfig_scanIdentifierNULL = AttrLabelProxy


getScannerConfigScanSymbols :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigScanSymbols s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 60) :: IO Word32
    return val

setScannerConfigScanSymbols :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigScanSymbols s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 60) (val :: Word32)

data ScannerConfigScanSymbolsFieldInfo
instance AttrInfo ScannerConfigScanSymbolsFieldInfo where
    type AttrAllowedOps ScannerConfigScanSymbolsFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigScanSymbolsFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigScanSymbolsFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigScanSymbolsFieldInfo = Word32
    type AttrLabel ScannerConfigScanSymbolsFieldInfo = "scan_symbols"
    type AttrOrigin ScannerConfigScanSymbolsFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigScanSymbols
    attrSet _ = setScannerConfigScanSymbols
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_scanSymbols :: AttrLabelProxy "scanSymbols"
scannerConfig_scanSymbols = AttrLabelProxy


getScannerConfigScanBinary :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigScanBinary s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 64) :: IO Word32
    return val

setScannerConfigScanBinary :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigScanBinary s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 64) (val :: Word32)

data ScannerConfigScanBinaryFieldInfo
instance AttrInfo ScannerConfigScanBinaryFieldInfo where
    type AttrAllowedOps ScannerConfigScanBinaryFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigScanBinaryFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigScanBinaryFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigScanBinaryFieldInfo = Word32
    type AttrLabel ScannerConfigScanBinaryFieldInfo = "scan_binary"
    type AttrOrigin ScannerConfigScanBinaryFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigScanBinary
    attrSet _ = setScannerConfigScanBinary
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_scanBinary :: AttrLabelProxy "scanBinary"
scannerConfig_scanBinary = AttrLabelProxy


getScannerConfigScanOctal :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigScanOctal s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 68) :: IO Word32
    return val

setScannerConfigScanOctal :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigScanOctal s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 68) (val :: Word32)

data ScannerConfigScanOctalFieldInfo
instance AttrInfo ScannerConfigScanOctalFieldInfo where
    type AttrAllowedOps ScannerConfigScanOctalFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigScanOctalFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigScanOctalFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigScanOctalFieldInfo = Word32
    type AttrLabel ScannerConfigScanOctalFieldInfo = "scan_octal"
    type AttrOrigin ScannerConfigScanOctalFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigScanOctal
    attrSet _ = setScannerConfigScanOctal
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_scanOctal :: AttrLabelProxy "scanOctal"
scannerConfig_scanOctal = AttrLabelProxy


getScannerConfigScanFloat :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigScanFloat s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 72) :: IO Word32
    return val

setScannerConfigScanFloat :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigScanFloat s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 72) (val :: Word32)

data ScannerConfigScanFloatFieldInfo
instance AttrInfo ScannerConfigScanFloatFieldInfo where
    type AttrAllowedOps ScannerConfigScanFloatFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigScanFloatFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigScanFloatFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigScanFloatFieldInfo = Word32
    type AttrLabel ScannerConfigScanFloatFieldInfo = "scan_float"
    type AttrOrigin ScannerConfigScanFloatFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigScanFloat
    attrSet _ = setScannerConfigScanFloat
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_scanFloat :: AttrLabelProxy "scanFloat"
scannerConfig_scanFloat = AttrLabelProxy


getScannerConfigScanHex :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigScanHex s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 76) :: IO Word32
    return val

setScannerConfigScanHex :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigScanHex s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 76) (val :: Word32)

data ScannerConfigScanHexFieldInfo
instance AttrInfo ScannerConfigScanHexFieldInfo where
    type AttrAllowedOps ScannerConfigScanHexFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigScanHexFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigScanHexFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigScanHexFieldInfo = Word32
    type AttrLabel ScannerConfigScanHexFieldInfo = "scan_hex"
    type AttrOrigin ScannerConfigScanHexFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigScanHex
    attrSet _ = setScannerConfigScanHex
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_scanHex :: AttrLabelProxy "scanHex"
scannerConfig_scanHex = AttrLabelProxy


getScannerConfigScanHexDollar :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigScanHexDollar s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 80) :: IO Word32
    return val

setScannerConfigScanHexDollar :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigScanHexDollar s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 80) (val :: Word32)

data ScannerConfigScanHexDollarFieldInfo
instance AttrInfo ScannerConfigScanHexDollarFieldInfo where
    type AttrAllowedOps ScannerConfigScanHexDollarFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigScanHexDollarFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigScanHexDollarFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigScanHexDollarFieldInfo = Word32
    type AttrLabel ScannerConfigScanHexDollarFieldInfo = "scan_hex_dollar"
    type AttrOrigin ScannerConfigScanHexDollarFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigScanHexDollar
    attrSet _ = setScannerConfigScanHexDollar
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_scanHexDollar :: AttrLabelProxy "scanHexDollar"
scannerConfig_scanHexDollar = AttrLabelProxy


getScannerConfigScanStringSq :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigScanStringSq s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 84) :: IO Word32
    return val

setScannerConfigScanStringSq :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigScanStringSq s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 84) (val :: Word32)

data ScannerConfigScanStringSqFieldInfo
instance AttrInfo ScannerConfigScanStringSqFieldInfo where
    type AttrAllowedOps ScannerConfigScanStringSqFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigScanStringSqFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigScanStringSqFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigScanStringSqFieldInfo = Word32
    type AttrLabel ScannerConfigScanStringSqFieldInfo = "scan_string_sq"
    type AttrOrigin ScannerConfigScanStringSqFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigScanStringSq
    attrSet _ = setScannerConfigScanStringSq
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_scanStringSq :: AttrLabelProxy "scanStringSq"
scannerConfig_scanStringSq = AttrLabelProxy


getScannerConfigScanStringDq :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigScanStringDq s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 88) :: IO Word32
    return val

setScannerConfigScanStringDq :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigScanStringDq s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 88) (val :: Word32)

data ScannerConfigScanStringDqFieldInfo
instance AttrInfo ScannerConfigScanStringDqFieldInfo where
    type AttrAllowedOps ScannerConfigScanStringDqFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigScanStringDqFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigScanStringDqFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigScanStringDqFieldInfo = Word32
    type AttrLabel ScannerConfigScanStringDqFieldInfo = "scan_string_dq"
    type AttrOrigin ScannerConfigScanStringDqFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigScanStringDq
    attrSet _ = setScannerConfigScanStringDq
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_scanStringDq :: AttrLabelProxy "scanStringDq"
scannerConfig_scanStringDq = AttrLabelProxy


getScannerConfigNumbers2Int :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigNumbers2Int s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 92) :: IO Word32
    return val

setScannerConfigNumbers2Int :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigNumbers2Int s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 92) (val :: Word32)

data ScannerConfigNumbers2IntFieldInfo
instance AttrInfo ScannerConfigNumbers2IntFieldInfo where
    type AttrAllowedOps ScannerConfigNumbers2IntFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigNumbers2IntFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigNumbers2IntFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigNumbers2IntFieldInfo = Word32
    type AttrLabel ScannerConfigNumbers2IntFieldInfo = "numbers_2_int"
    type AttrOrigin ScannerConfigNumbers2IntFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigNumbers2Int
    attrSet _ = setScannerConfigNumbers2Int
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_numbers2Int :: AttrLabelProxy "numbers2Int"
scannerConfig_numbers2Int = AttrLabelProxy


getScannerConfigInt2Float :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigInt2Float s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 96) :: IO Word32
    return val

setScannerConfigInt2Float :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigInt2Float s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 96) (val :: Word32)

data ScannerConfigInt2FloatFieldInfo
instance AttrInfo ScannerConfigInt2FloatFieldInfo where
    type AttrAllowedOps ScannerConfigInt2FloatFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigInt2FloatFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigInt2FloatFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigInt2FloatFieldInfo = Word32
    type AttrLabel ScannerConfigInt2FloatFieldInfo = "int_2_float"
    type AttrOrigin ScannerConfigInt2FloatFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigInt2Float
    attrSet _ = setScannerConfigInt2Float
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_int2Float :: AttrLabelProxy "int2Float"
scannerConfig_int2Float = AttrLabelProxy


getScannerConfigIdentifier2String :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigIdentifier2String s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 100) :: IO Word32
    return val

setScannerConfigIdentifier2String :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigIdentifier2String s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 100) (val :: Word32)

data ScannerConfigIdentifier2StringFieldInfo
instance AttrInfo ScannerConfigIdentifier2StringFieldInfo where
    type AttrAllowedOps ScannerConfigIdentifier2StringFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigIdentifier2StringFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigIdentifier2StringFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigIdentifier2StringFieldInfo = Word32
    type AttrLabel ScannerConfigIdentifier2StringFieldInfo = "identifier_2_string"
    type AttrOrigin ScannerConfigIdentifier2StringFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigIdentifier2String
    attrSet _ = setScannerConfigIdentifier2String
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_identifier2String :: AttrLabelProxy "identifier2String"
scannerConfig_identifier2String = AttrLabelProxy


getScannerConfigChar2Token :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigChar2Token s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 104) :: IO Word32
    return val

setScannerConfigChar2Token :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigChar2Token s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 104) (val :: Word32)

data ScannerConfigChar2TokenFieldInfo
instance AttrInfo ScannerConfigChar2TokenFieldInfo where
    type AttrAllowedOps ScannerConfigChar2TokenFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigChar2TokenFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigChar2TokenFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigChar2TokenFieldInfo = Word32
    type AttrLabel ScannerConfigChar2TokenFieldInfo = "char_2_token"
    type AttrOrigin ScannerConfigChar2TokenFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigChar2Token
    attrSet _ = setScannerConfigChar2Token
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_char2Token :: AttrLabelProxy "char2Token"
scannerConfig_char2Token = AttrLabelProxy


getScannerConfigSymbol2Token :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigSymbol2Token s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 108) :: IO Word32
    return val

setScannerConfigSymbol2Token :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigSymbol2Token s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 108) (val :: Word32)

data ScannerConfigSymbol2TokenFieldInfo
instance AttrInfo ScannerConfigSymbol2TokenFieldInfo where
    type AttrAllowedOps ScannerConfigSymbol2TokenFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigSymbol2TokenFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigSymbol2TokenFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigSymbol2TokenFieldInfo = Word32
    type AttrLabel ScannerConfigSymbol2TokenFieldInfo = "symbol_2_token"
    type AttrOrigin ScannerConfigSymbol2TokenFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigSymbol2Token
    attrSet _ = setScannerConfigSymbol2Token
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_symbol2Token :: AttrLabelProxy "symbol2Token"
scannerConfig_symbol2Token = AttrLabelProxy


getScannerConfigScope0Fallback :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigScope0Fallback s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 112) :: IO Word32
    return val

setScannerConfigScope0Fallback :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigScope0Fallback s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 112) (val :: Word32)

data ScannerConfigScope0FallbackFieldInfo
instance AttrInfo ScannerConfigScope0FallbackFieldInfo where
    type AttrAllowedOps ScannerConfigScope0FallbackFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigScope0FallbackFieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigScope0FallbackFieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigScope0FallbackFieldInfo = Word32
    type AttrLabel ScannerConfigScope0FallbackFieldInfo = "scope_0_fallback"
    type AttrOrigin ScannerConfigScope0FallbackFieldInfo = ScannerConfig
    attrGet _ = getScannerConfigScope0Fallback
    attrSet _ = setScannerConfigScope0Fallback
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_scope0Fallback :: AttrLabelProxy "scope0Fallback"
scannerConfig_scope0Fallback = AttrLabelProxy


getScannerConfigStoreInt64 :: MonadIO m => ScannerConfig -> m Word32
getScannerConfigStoreInt64 s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 116) :: IO Word32
    return val

setScannerConfigStoreInt64 :: MonadIO m => ScannerConfig -> Word32 -> m ()
setScannerConfigStoreInt64 s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 116) (val :: Word32)

data ScannerConfigStoreInt64FieldInfo
instance AttrInfo ScannerConfigStoreInt64FieldInfo where
    type AttrAllowedOps ScannerConfigStoreInt64FieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint ScannerConfigStoreInt64FieldInfo = (~) Word32
    type AttrBaseTypeConstraint ScannerConfigStoreInt64FieldInfo = (~) ScannerConfig
    type AttrGetType ScannerConfigStoreInt64FieldInfo = Word32
    type AttrLabel ScannerConfigStoreInt64FieldInfo = "store_int64"
    type AttrOrigin ScannerConfigStoreInt64FieldInfo = ScannerConfig
    attrGet _ = getScannerConfigStoreInt64
    attrSet _ = setScannerConfigStoreInt64
    attrConstruct = undefined
    attrClear _ = undefined

scannerConfig_storeInt64 :: AttrLabelProxy "storeInt64"
scannerConfig_storeInt64 = AttrLabelProxy



instance O.HasAttributeList ScannerConfig
type instance O.AttributeList ScannerConfig = ScannerConfigAttributeList
type ScannerConfigAttributeList = ('[ '("csetSkipCharacters", ScannerConfigCsetSkipCharactersFieldInfo), '("csetIdentifierFirst", ScannerConfigCsetIdentifierFirstFieldInfo), '("csetIdentifierNth", ScannerConfigCsetIdentifierNthFieldInfo), '("cpairCommentSingle", ScannerConfigCpairCommentSingleFieldInfo), '("caseSensitive", ScannerConfigCaseSensitiveFieldInfo), '("skipCommentMulti", ScannerConfigSkipCommentMultiFieldInfo), '("skipCommentSingle", ScannerConfigSkipCommentSingleFieldInfo), '("scanCommentMulti", ScannerConfigScanCommentMultiFieldInfo), '("scanIdentifier", ScannerConfigScanIdentifierFieldInfo), '("scanIdentifier1char", ScannerConfigScanIdentifier1charFieldInfo), '("scanIdentifierNULL", ScannerConfigScanIdentifierNULLFieldInfo), '("scanSymbols", ScannerConfigScanSymbolsFieldInfo), '("scanBinary", ScannerConfigScanBinaryFieldInfo), '("scanOctal", ScannerConfigScanOctalFieldInfo), '("scanFloat", ScannerConfigScanFloatFieldInfo), '("scanHex", ScannerConfigScanHexFieldInfo), '("scanHexDollar", ScannerConfigScanHexDollarFieldInfo), '("scanStringSq", ScannerConfigScanStringSqFieldInfo), '("scanStringDq", ScannerConfigScanStringDqFieldInfo), '("numbers2Int", ScannerConfigNumbers2IntFieldInfo), '("int2Float", ScannerConfigInt2FloatFieldInfo), '("identifier2String", ScannerConfigIdentifier2StringFieldInfo), '("char2Token", ScannerConfigChar2TokenFieldInfo), '("symbol2Token", ScannerConfigSymbol2TokenFieldInfo), '("scope0Fallback", ScannerConfigScope0FallbackFieldInfo), '("storeInt64", ScannerConfigStoreInt64FieldInfo)] :: [(Symbol, *)])

type family ResolveScannerConfigMethod (t :: Symbol) (o :: *) :: * where
    ResolveScannerConfigMethod l o = O.MethodResolutionFailed l o

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

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveScannerConfigMethod t ScannerConfig, O.MethodInfo info ScannerConfig p) => O.IsLabel t (ScannerConfig -> p) where
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif