sdl3-bindgen-sys-0.0.0.1: src/SDL3/Sys/Bindgen/Iostream.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE EmptyDataDecls #-}
{-# LANGUAGE ExplicitForAll #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UnboxedTuples #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE NoFieldSelectors #-}
-- | SDL provides an abstract interface for reading and writing data streams. It offers implementations for files, memory, etc, and the app can provide their own implementations, too.
--
-- 'SDL_IOStream' is not related to the standard C++ iostream class, other than both are abstract interfaces to read\/write data. 'SDL_IOStream' status, set by a read or write operation.
--
-- @since 3.2.0
module SDL3.Sys.Bindgen.Iostream (
SDL3.Sys.Bindgen.Iostream.SDL_IOStatus (..),
pattern SDL3.Sys.Bindgen.Iostream.SDL_IO_STATUS_READY,
pattern SDL3.Sys.Bindgen.Iostream.SDL_IO_STATUS_ERROR,
pattern SDL3.Sys.Bindgen.Iostream.SDL_IO_STATUS_EOF,
pattern SDL3.Sys.Bindgen.Iostream.SDL_IO_STATUS_NOT_READY,
pattern SDL3.Sys.Bindgen.Iostream.SDL_IO_STATUS_READONLY,
pattern SDL3.Sys.Bindgen.Iostream.SDL_IO_STATUS_WRITEONLY,
SDL3.Sys.Bindgen.Iostream.SDL_IOWhence (..),
pattern SDL3.Sys.Bindgen.Iostream.SDL_IO_SEEK_SET,
pattern SDL3.Sys.Bindgen.Iostream.SDL_IO_SEEK_CUR,
pattern SDL3.Sys.Bindgen.Iostream.SDL_IO_SEEK_END,
SDL3.Sys.Bindgen.Iostream.SDL_IOStreamInterface (..),
SDL3.Sys.Bindgen.Iostream.SDL_IOStream,
SDL3.Sys.Bindgen.Iostream.sDL_PROP_IOSTREAM_WINDOWS_HANDLE_POINTER,
SDL3.Sys.Bindgen.Iostream.sDL_PROP_IOSTREAM_STDIO_FILE_POINTER,
SDL3.Sys.Bindgen.Iostream.sDL_PROP_IOSTREAM_FILE_DESCRIPTOR_NUMBER,
SDL3.Sys.Bindgen.Iostream.sDL_PROP_IOSTREAM_ANDROID_AASSET_POINTER,
SDL3.Sys.Bindgen.Iostream.sDL_PROP_IOSTREAM_MEMORY_POINTER,
SDL3.Sys.Bindgen.Iostream.sDL_PROP_IOSTREAM_MEMORY_SIZE_NUMBER,
SDL3.Sys.Bindgen.Iostream.sDL_PROP_IOSTREAM_MEMORY_FREE_FUNC_POINTER,
SDL3.Sys.Bindgen.Iostream.sDL_PROP_IOSTREAM_DYNAMIC_MEMORY_POINTER,
SDL3.Sys.Bindgen.Iostream.sDL_PROP_IOSTREAM_DYNAMIC_CHUNKSIZE_NUMBER,
)
where
import HsBindgen.Runtime.CEnum qualified as CEnum
import HsBindgen.Runtime.HasCField qualified as HasCField
import HsBindgen.Runtime.LibC qualified
import HsBindgen.Runtime.Marshal qualified as Marshal
import HsBindgen.Runtime.PtrConst qualified as PtrConst
import HsBindgen.Runtime.Support qualified as BG
import HsBindgen.Runtime.Support.CompatHasField qualified as BG.CompatHasField
import SDL3.Sys.Bindgen.Stdinc qualified
-- | [C declaration]: @enum SDL_IOStatus@, defined at @SDL3\/SDL_iostream.h 53:14@
newtype SDL_IOStatus = SDL_IOStatus
{ unwrap :: BG.CUInt
}
deriving stock (BG.Generic, Eq, Ord)
deriving newtype (BG.HasFFIType)
instance Marshal.StaticSize SDL_IOStatus where
staticSizeOf = \_ -> (4 :: Int)
staticAlignment = \_ -> (4 :: Int)
instance Marshal.ReadRaw SDL_IOStatus where
readRaw =
\ptr0 ->
pure SDL_IOStatus
<*> Marshal.readRawByteOff ptr0 (0 :: Int)
instance Marshal.WriteRaw SDL_IOStatus where
writeRaw =
\ptr0 ->
\s1 ->
case s1 of
SDL_IOStatus unwrap2 ->
Marshal.writeRawByteOff ptr0 (0 :: Int) unwrap2
deriving via Marshal.EquivStorable SDL_IOStatus instance BG.Storable SDL_IOStatus
deriving via BG.CUInt instance BG.Prim SDL_IOStatus
instance CEnum.CEnum SDL_IOStatus where
type CEnumZ SDL_IOStatus = BG.CUInt
toCEnum = SDL_IOStatus
fromCEnum = BG.getField @"unwrap"
declaredValues =
\_ ->
CEnum.declaredValuesFromList
[ (0, BG.singleton "SDL_IO_STATUS_READY")
, (1, BG.singleton "SDL_IO_STATUS_ERROR")
, (2, BG.singleton "SDL_IO_STATUS_EOF")
, (3, BG.singleton "SDL_IO_STATUS_NOT_READY")
, (4, BG.singleton "SDL_IO_STATUS_READONLY")
, (5, BG.singleton "SDL_IO_STATUS_WRITEONLY")
]
showsUndeclared =
CEnum.showsWrappedUndeclared "SDL_IOStatus"
readPrecUndeclared =
CEnum.readPrecWrappedUndeclared "SDL_IOStatus"
isDeclared = CEnum.seqIsDeclared
mkDeclared = CEnum.seqMkDeclared
instance CEnum.SequentialCEnum SDL_IOStatus where
minDeclaredValue = SDL_IO_STATUS_READY
maxDeclaredValue = SDL_IO_STATUS_WRITEONLY
instance Show SDL_IOStatus where
showsPrec = CEnum.shows
instance Read SDL_IOStatus where
readPrec = CEnum.readPrec
readList = BG.readListDefault
readListPrec = BG.readListPrecDefault
instance
(ty ~ BG.CUInt)
=> BG.CompatHasField.HasField "unwrap" SDL_IOStatus ty
where
hasField =
\x0 ->
( \y1 ->
SDL_IOStatus{unwrap = y1}
, BG.getField @"unwrap" x0
)
instance
(ty ~ BG.CUInt)
=> BG.HasField "unwrap" (BG.Ptr SDL_IOStatus) (BG.Ptr ty)
where
getField = HasCField.fromPtr (BG.Proxy @"unwrap")
instance HasCField.HasCField SDL_IOStatus "unwrap" where
type CFieldType SDL_IOStatus "unwrap" = BG.CUInt
offset# = \_ -> \_ -> 0
-- | Everything is ready (no errors and not EOF).
--
-- [C declaration]: @SDL_IO_STATUS_READY@, defined at @SDL3\/SDL_iostream.h 55:5@
pattern SDL_IO_STATUS_READY :: SDL_IOStatus
pattern SDL_IO_STATUS_READY = SDL_IOStatus 0
-- | Read or write I\/O error
--
-- [C declaration]: @SDL_IO_STATUS_ERROR@, defined at @SDL3\/SDL_iostream.h 56:5@
pattern SDL_IO_STATUS_ERROR :: SDL_IOStatus
pattern SDL_IO_STATUS_ERROR = SDL_IOStatus 1
-- | End of file
--
-- [C declaration]: @SDL_IO_STATUS_EOF@, defined at @SDL3\/SDL_iostream.h 57:5@
pattern SDL_IO_STATUS_EOF :: SDL_IOStatus
pattern SDL_IO_STATUS_EOF = SDL_IOStatus 2
-- | Non blocking I\/O, not ready
--
-- [C declaration]: @SDL_IO_STATUS_NOT_READY@, defined at @SDL3\/SDL_iostream.h 58:5@
pattern SDL_IO_STATUS_NOT_READY :: SDL_IOStatus
pattern SDL_IO_STATUS_NOT_READY = SDL_IOStatus 3
-- | Tried to write a read-only buffer
--
-- [C declaration]: @SDL_IO_STATUS_READONLY@, defined at @SDL3\/SDL_iostream.h 59:5@
pattern SDL_IO_STATUS_READONLY :: SDL_IOStatus
pattern SDL_IO_STATUS_READONLY = SDL_IOStatus 4
-- | Tried to read a write-only buffer
--
-- [C declaration]: @SDL_IO_STATUS_WRITEONLY@, defined at @SDL3\/SDL_iostream.h 60:5@
pattern SDL_IO_STATUS_WRITEONLY :: SDL_IOStatus
pattern SDL_IO_STATUS_WRITEONLY = SDL_IOStatus 5
-- | Possible @whence@ values for 'SDL_IOStream' seeking.
--
-- These map to the same \"whence\" concept that @fseek@ or @lseek@ use in the standard C runtime.
--
-- @since 3.2.0
--
-- [C declaration]: @enum SDL_IOWhence@, defined at @SDL3\/SDL_iostream.h 71:14@
newtype SDL_IOWhence = SDL_IOWhence
{ unwrap :: BG.CUInt
}
deriving stock (BG.Generic, Eq, Ord)
deriving newtype (BG.HasFFIType)
instance Marshal.StaticSize SDL_IOWhence where
staticSizeOf = \_ -> (4 :: Int)
staticAlignment = \_ -> (4 :: Int)
instance Marshal.ReadRaw SDL_IOWhence where
readRaw =
\ptr0 ->
pure SDL_IOWhence
<*> Marshal.readRawByteOff ptr0 (0 :: Int)
instance Marshal.WriteRaw SDL_IOWhence where
writeRaw =
\ptr0 ->
\s1 ->
case s1 of
SDL_IOWhence unwrap2 ->
Marshal.writeRawByteOff ptr0 (0 :: Int) unwrap2
deriving via Marshal.EquivStorable SDL_IOWhence instance BG.Storable SDL_IOWhence
deriving via BG.CUInt instance BG.Prim SDL_IOWhence
instance CEnum.CEnum SDL_IOWhence where
type CEnumZ SDL_IOWhence = BG.CUInt
toCEnum = SDL_IOWhence
fromCEnum = BG.getField @"unwrap"
declaredValues =
\_ ->
CEnum.declaredValuesFromList
[ (0, BG.singleton "SDL_IO_SEEK_SET")
, (1, BG.singleton "SDL_IO_SEEK_CUR")
, (2, BG.singleton "SDL_IO_SEEK_END")
]
showsUndeclared =
CEnum.showsWrappedUndeclared "SDL_IOWhence"
readPrecUndeclared =
CEnum.readPrecWrappedUndeclared "SDL_IOWhence"
isDeclared = CEnum.seqIsDeclared
mkDeclared = CEnum.seqMkDeclared
instance CEnum.SequentialCEnum SDL_IOWhence where
minDeclaredValue = SDL_IO_SEEK_SET
maxDeclaredValue = SDL_IO_SEEK_END
instance Show SDL_IOWhence where
showsPrec = CEnum.shows
instance Read SDL_IOWhence where
readPrec = CEnum.readPrec
readList = BG.readListDefault
readListPrec = BG.readListPrecDefault
instance
(ty ~ BG.CUInt)
=> BG.CompatHasField.HasField "unwrap" SDL_IOWhence ty
where
hasField =
\x0 ->
( \y1 ->
SDL_IOWhence{unwrap = y1}
, BG.getField @"unwrap" x0
)
instance
(ty ~ BG.CUInt)
=> BG.HasField "unwrap" (BG.Ptr SDL_IOWhence) (BG.Ptr ty)
where
getField = HasCField.fromPtr (BG.Proxy @"unwrap")
instance HasCField.HasCField SDL_IOWhence "unwrap" where
type CFieldType SDL_IOWhence "unwrap" = BG.CUInt
offset# = \_ -> \_ -> 0
-- | Seek from the beginning of data
--
-- [C declaration]: @SDL_IO_SEEK_SET@, defined at @SDL3\/SDL_iostream.h 73:5@
pattern SDL_IO_SEEK_SET :: SDL_IOWhence
pattern SDL_IO_SEEK_SET = SDL_IOWhence 0
-- | Seek relative to current read point
--
-- [C declaration]: @SDL_IO_SEEK_CUR@, defined at @SDL3\/SDL_iostream.h 74:5@
pattern SDL_IO_SEEK_CUR :: SDL_IOWhence
pattern SDL_IO_SEEK_CUR = SDL_IOWhence 1
-- | Seek relative to the end of data
--
-- [C declaration]: @SDL_IO_SEEK_END@, defined at @SDL3\/SDL_iostream.h 75:5@
pattern SDL_IO_SEEK_END :: SDL_IOWhence
pattern SDL_IO_SEEK_END = SDL_IOWhence 2
-- | The function pointers that drive an 'SDL_IOStream'.
--
-- Applications can provide this struct to @SDL_OpenIO()@ to create their own implementation of 'SDL_IOStream'. This is not necessarily required, as SDL already offers several common types of I\/O streams, via functions like @SDL_IOFromFile()@ and @SDL_IOFromMem()@.
--
-- This structure should be initialized using SDL_INIT_INTERFACE()
--
-- @since 3.2.0
--
-- [See also]: SDL_INIT_INTERFACE
--
-- [C declaration]: @struct SDL_IOStreamInterface@, defined at @SDL3\/SDL_iostream.h 92:16@
data SDL_IOStreamInterface = SDL_IOStreamInterface
{ version :: SDL3.Sys.Bindgen.Stdinc.Uint32
-- ^ [C declaration]: @version@, defined at @SDL3\/SDL_iostream.h 95:12@
, size :: BG.FunPtr (BG.Ptr BG.Void -> IO SDL3.Sys.Bindgen.Stdinc.Sint64)
-- ^ [C declaration]: @size@, defined at @SDL3\/SDL_iostream.h 102:22@
, seek
:: BG.FunPtr
( BG.Ptr BG.Void
-> SDL3.Sys.Bindgen.Stdinc.Sint64
-> SDL_IOWhence
-> IO SDL3.Sys.Bindgen.Stdinc.Sint64
)
-- ^ [C declaration]: @seek@, defined at @SDL3\/SDL_iostream.h 110:22@
, read
:: BG.FunPtr
( BG.Ptr BG.Void
-> BG.Ptr BG.Void
-> HsBindgen.Runtime.LibC.CSize
-> BG.Ptr SDL_IOStatus
-> IO HsBindgen.Runtime.LibC.CSize
)
-- ^ [C declaration]: @read@, defined at @SDL3\/SDL_iostream.h 122:22@
, write
:: BG.FunPtr
( BG.Ptr BG.Void
-> PtrConst.PtrConst BG.Void
-> HsBindgen.Runtime.LibC.CSize
-> BG.Ptr SDL_IOStatus
-> IO HsBindgen.Runtime.LibC.CSize
)
-- ^ [C declaration]: @write@, defined at @SDL3\/SDL_iostream.h 134:22@
, flush :: BG.FunPtr (BG.Ptr BG.Void -> BG.Ptr SDL_IOStatus -> IO BG.CBool)
-- ^ [C declaration]: @flush@, defined at @SDL3\/SDL_iostream.h 145:20@
, close :: BG.FunPtr (BG.Ptr BG.Void -> IO BG.CBool)
-- ^ [C declaration]: @close@, defined at @SDL3\/SDL_iostream.h 158:20@
}
deriving stock (BG.Generic, Eq, Show)
instance Marshal.StaticSize SDL_IOStreamInterface where
staticSizeOf = \_ -> (56 :: Int)
staticAlignment = \_ -> (8 :: Int)
instance Marshal.ReadRaw SDL_IOStreamInterface where
readRaw =
\ptr0 ->
pure SDL_IOStreamInterface
<*> HasCField.readRaw (BG.Proxy @"version") ptr0
<*> HasCField.readRaw (BG.Proxy @"size") ptr0
<*> HasCField.readRaw (BG.Proxy @"seek") ptr0
<*> HasCField.readRaw (BG.Proxy @"read") ptr0
<*> HasCField.readRaw (BG.Proxy @"write") ptr0
<*> HasCField.readRaw (BG.Proxy @"flush") ptr0
<*> HasCField.readRaw (BG.Proxy @"close") ptr0
instance Marshal.WriteRaw SDL_IOStreamInterface where
writeRaw =
\ptr0 ->
\s1 ->
case s1 of
SDL_IOStreamInterface version2 size3 seek4 read5 write6 flush7 close8 ->
HasCField.writeRaw (BG.Proxy @"version") ptr0 version2
>> HasCField.writeRaw (BG.Proxy @"size") ptr0 size3
>> HasCField.writeRaw (BG.Proxy @"seek") ptr0 seek4
>> HasCField.writeRaw (BG.Proxy @"read") ptr0 read5
>> HasCField.writeRaw (BG.Proxy @"write") ptr0 write6
>> HasCField.writeRaw (BG.Proxy @"flush") ptr0 flush7
>> HasCField.writeRaw (BG.Proxy @"close") ptr0 close8
deriving via Marshal.EquivStorable SDL_IOStreamInterface instance BG.Storable SDL_IOStreamInterface
instance
(ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
=> BG.CompatHasField.HasField "version" SDL_IOStreamInterface ty
where
hasField =
\x0 ->
( \y1 ->
SDL_IOStreamInterface
{ version = y1
, size = BG.getField @"size" x0
, seek = BG.getField @"seek" x0
, read = BG.getField @"read" x0
, write = BG.getField @"write" x0
, flush = BG.getField @"flush" x0
, close = BG.getField @"close" x0
}
, BG.getField @"version" x0
)
instance
(ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
=> BG.HasField "version" (BG.Ptr SDL_IOStreamInterface) (BG.Ptr ty)
where
getField = HasCField.fromPtr (BG.Proxy @"version")
instance HasCField.HasCField SDL_IOStreamInterface "version" where
type
CFieldType SDL_IOStreamInterface "version" =
SDL3.Sys.Bindgen.Stdinc.Uint32
offset# = \_ -> \_ -> 0
instance
(ty ~ BG.FunPtr (BG.Ptr BG.Void -> IO SDL3.Sys.Bindgen.Stdinc.Sint64))
=> BG.CompatHasField.HasField "size" SDL_IOStreamInterface ty
where
hasField =
\x0 ->
( \y1 ->
SDL_IOStreamInterface
{ size = y1
, version = BG.getField @"version" x0
, seek = BG.getField @"seek" x0
, read = BG.getField @"read" x0
, write = BG.getField @"write" x0
, flush = BG.getField @"flush" x0
, close = BG.getField @"close" x0
}
, BG.getField @"size" x0
)
instance
(ty ~ BG.FunPtr (BG.Ptr BG.Void -> IO SDL3.Sys.Bindgen.Stdinc.Sint64))
=> BG.HasField "size" (BG.Ptr SDL_IOStreamInterface) (BG.Ptr ty)
where
getField = HasCField.fromPtr (BG.Proxy @"size")
instance HasCField.HasCField SDL_IOStreamInterface "size" where
type
CFieldType SDL_IOStreamInterface "size" =
BG.FunPtr (BG.Ptr BG.Void -> IO SDL3.Sys.Bindgen.Stdinc.Sint64)
offset# = \_ -> \_ -> 8
instance
( ty
~ BG.FunPtr
( BG.Ptr BG.Void
-> SDL3.Sys.Bindgen.Stdinc.Sint64
-> SDL_IOWhence
-> IO SDL3.Sys.Bindgen.Stdinc.Sint64
)
)
=> BG.CompatHasField.HasField "seek" SDL_IOStreamInterface ty
where
hasField =
\x0 ->
( \y1 ->
SDL_IOStreamInterface
{ seek = y1
, version = BG.getField @"version" x0
, size = BG.getField @"size" x0
, read = BG.getField @"read" x0
, write = BG.getField @"write" x0
, flush = BG.getField @"flush" x0
, close = BG.getField @"close" x0
}
, BG.getField @"seek" x0
)
instance
( ty
~ BG.FunPtr
( BG.Ptr BG.Void
-> SDL3.Sys.Bindgen.Stdinc.Sint64
-> SDL_IOWhence
-> IO SDL3.Sys.Bindgen.Stdinc.Sint64
)
)
=> BG.HasField "seek" (BG.Ptr SDL_IOStreamInterface) (BG.Ptr ty)
where
getField = HasCField.fromPtr (BG.Proxy @"seek")
instance HasCField.HasCField SDL_IOStreamInterface "seek" where
type
CFieldType SDL_IOStreamInterface "seek" =
BG.FunPtr
( BG.Ptr BG.Void
-> SDL3.Sys.Bindgen.Stdinc.Sint64
-> SDL_IOWhence
-> IO SDL3.Sys.Bindgen.Stdinc.Sint64
)
offset# = \_ -> \_ -> 16
instance
( ty
~ BG.FunPtr
( BG.Ptr BG.Void
-> BG.Ptr BG.Void
-> HsBindgen.Runtime.LibC.CSize
-> BG.Ptr SDL_IOStatus
-> IO HsBindgen.Runtime.LibC.CSize
)
)
=> BG.CompatHasField.HasField "read" SDL_IOStreamInterface ty
where
hasField =
\x0 ->
( \y1 ->
SDL_IOStreamInterface
{ read = y1
, version = BG.getField @"version" x0
, size = BG.getField @"size" x0
, seek = BG.getField @"seek" x0
, write = BG.getField @"write" x0
, flush = BG.getField @"flush" x0
, close = BG.getField @"close" x0
}
, BG.getField @"read" x0
)
instance
( ty
~ BG.FunPtr
( BG.Ptr BG.Void
-> BG.Ptr BG.Void
-> HsBindgen.Runtime.LibC.CSize
-> BG.Ptr SDL_IOStatus
-> IO HsBindgen.Runtime.LibC.CSize
)
)
=> BG.HasField "read" (BG.Ptr SDL_IOStreamInterface) (BG.Ptr ty)
where
getField = HasCField.fromPtr (BG.Proxy @"read")
instance HasCField.HasCField SDL_IOStreamInterface "read" where
type
CFieldType SDL_IOStreamInterface "read" =
BG.FunPtr
( BG.Ptr BG.Void
-> BG.Ptr BG.Void
-> HsBindgen.Runtime.LibC.CSize
-> BG.Ptr SDL_IOStatus
-> IO HsBindgen.Runtime.LibC.CSize
)
offset# = \_ -> \_ -> 24
instance
( ty
~ BG.FunPtr
( BG.Ptr BG.Void
-> PtrConst.PtrConst BG.Void
-> HsBindgen.Runtime.LibC.CSize
-> BG.Ptr SDL_IOStatus
-> IO HsBindgen.Runtime.LibC.CSize
)
)
=> BG.CompatHasField.HasField "write" SDL_IOStreamInterface ty
where
hasField =
\x0 ->
( \y1 ->
SDL_IOStreamInterface
{ write = y1
, version = BG.getField @"version" x0
, size = BG.getField @"size" x0
, seek = BG.getField @"seek" x0
, read = BG.getField @"read" x0
, flush = BG.getField @"flush" x0
, close = BG.getField @"close" x0
}
, BG.getField @"write" x0
)
instance
( ty
~ BG.FunPtr
( BG.Ptr BG.Void
-> PtrConst.PtrConst BG.Void
-> HsBindgen.Runtime.LibC.CSize
-> BG.Ptr SDL_IOStatus
-> IO HsBindgen.Runtime.LibC.CSize
)
)
=> BG.HasField "write" (BG.Ptr SDL_IOStreamInterface) (BG.Ptr ty)
where
getField = HasCField.fromPtr (BG.Proxy @"write")
instance HasCField.HasCField SDL_IOStreamInterface "write" where
type
CFieldType SDL_IOStreamInterface "write" =
BG.FunPtr
( BG.Ptr BG.Void
-> PtrConst.PtrConst BG.Void
-> HsBindgen.Runtime.LibC.CSize
-> BG.Ptr SDL_IOStatus
-> IO HsBindgen.Runtime.LibC.CSize
)
offset# = \_ -> \_ -> 32
instance
(ty ~ BG.FunPtr (BG.Ptr BG.Void -> BG.Ptr SDL_IOStatus -> IO BG.CBool))
=> BG.CompatHasField.HasField "flush" SDL_IOStreamInterface ty
where
hasField =
\x0 ->
( \y1 ->
SDL_IOStreamInterface
{ flush = y1
, version = BG.getField @"version" x0
, size = BG.getField @"size" x0
, seek = BG.getField @"seek" x0
, read = BG.getField @"read" x0
, write = BG.getField @"write" x0
, close = BG.getField @"close" x0
}
, BG.getField @"flush" x0
)
instance
(ty ~ BG.FunPtr (BG.Ptr BG.Void -> BG.Ptr SDL_IOStatus -> IO BG.CBool))
=> BG.HasField "flush" (BG.Ptr SDL_IOStreamInterface) (BG.Ptr ty)
where
getField = HasCField.fromPtr (BG.Proxy @"flush")
instance HasCField.HasCField SDL_IOStreamInterface "flush" where
type
CFieldType SDL_IOStreamInterface "flush" =
BG.FunPtr (BG.Ptr BG.Void -> BG.Ptr SDL_IOStatus -> IO BG.CBool)
offset# = \_ -> \_ -> 40
instance
(ty ~ BG.FunPtr (BG.Ptr BG.Void -> IO BG.CBool))
=> BG.CompatHasField.HasField "close" SDL_IOStreamInterface ty
where
hasField =
\x0 ->
( \y1 ->
SDL_IOStreamInterface
{ close = y1
, version = BG.getField @"version" x0
, size = BG.getField @"size" x0
, seek = BG.getField @"seek" x0
, read = BG.getField @"read" x0
, write = BG.getField @"write" x0
, flush = BG.getField @"flush" x0
}
, BG.getField @"close" x0
)
instance
(ty ~ BG.FunPtr (BG.Ptr BG.Void -> IO BG.CBool))
=> BG.HasField "close" (BG.Ptr SDL_IOStreamInterface) (BG.Ptr ty)
where
getField = HasCField.fromPtr (BG.Proxy @"close")
instance HasCField.HasCField SDL_IOStreamInterface "close" where
type
CFieldType SDL_IOStreamInterface "close" =
BG.FunPtr (BG.Ptr BG.Void -> IO BG.CBool)
offset# = \_ -> \_ -> 48
-- | The read\/write operation structure.
--
-- This operates as an opaque handle. There are several APIs to create various types of I\/O streams, or an app can supply an 'SDL_IOStreamInterface' to @SDL_OpenIO()@ to provide their own stream implementation behind this struct\'s abstract interface.
--
-- @since 3.2.0
--
-- [C declaration]: @struct SDL_IOStream@, defined at @SDL3\/SDL_iostream.h 182:16@
data SDL_IOStream
-- | [C declaration]: @macro SDL_PROP_IOSTREAM_WINDOWS_HANDLE_POINTER@, literal @\"SDL.iostream.windows.handle\"@, defined at @SDL3\/SDL_iostream.h 280:9@
sDL_PROP_IOSTREAM_WINDOWS_HANDLE_POINTER :: BG.ByteString
sDL_PROP_IOSTREAM_WINDOWS_HANDLE_POINTER =
BG.pack
[ 0x53
, 0x44
, 0x4C
, 0x2E
, 0x69
, 0x6F
, 0x73
, 0x74
, 0x72
, 0x65
, 0x61
, 0x6D
, 0x2E
, 0x77
, 0x69
, 0x6E
, 0x64
, 0x6F
, 0x77
, 0x73
, 0x2E
, 0x68
, 0x61
, 0x6E
, 0x64
, 0x6C
, 0x65
]
-- | [C declaration]: @macro SDL_PROP_IOSTREAM_STDIO_FILE_POINTER@, literal @\"SDL.iostream.stdio.file\"@, defined at @SDL3\/SDL_iostream.h 281:9@
sDL_PROP_IOSTREAM_STDIO_FILE_POINTER :: BG.ByteString
sDL_PROP_IOSTREAM_STDIO_FILE_POINTER =
BG.pack
[ 0x53
, 0x44
, 0x4C
, 0x2E
, 0x69
, 0x6F
, 0x73
, 0x74
, 0x72
, 0x65
, 0x61
, 0x6D
, 0x2E
, 0x73
, 0x74
, 0x64
, 0x69
, 0x6F
, 0x2E
, 0x66
, 0x69
, 0x6C
, 0x65
]
-- | [C declaration]: @macro SDL_PROP_IOSTREAM_FILE_DESCRIPTOR_NUMBER@, literal @\"SDL.iostream.file_descriptor\"@, defined at @SDL3\/SDL_iostream.h 282:9@
sDL_PROP_IOSTREAM_FILE_DESCRIPTOR_NUMBER :: BG.ByteString
sDL_PROP_IOSTREAM_FILE_DESCRIPTOR_NUMBER =
BG.pack
[ 0x53
, 0x44
, 0x4C
, 0x2E
, 0x69
, 0x6F
, 0x73
, 0x74
, 0x72
, 0x65
, 0x61
, 0x6D
, 0x2E
, 0x66
, 0x69
, 0x6C
, 0x65
, 0x5F
, 0x64
, 0x65
, 0x73
, 0x63
, 0x72
, 0x69
, 0x70
, 0x74
, 0x6F
, 0x72
]
-- | [C declaration]: @macro SDL_PROP_IOSTREAM_ANDROID_AASSET_POINTER@, literal @\"SDL.iostream.android.aasset\"@, defined at @SDL3\/SDL_iostream.h 283:9@
sDL_PROP_IOSTREAM_ANDROID_AASSET_POINTER :: BG.ByteString
sDL_PROP_IOSTREAM_ANDROID_AASSET_POINTER =
BG.pack
[ 0x53
, 0x44
, 0x4C
, 0x2E
, 0x69
, 0x6F
, 0x73
, 0x74
, 0x72
, 0x65
, 0x61
, 0x6D
, 0x2E
, 0x61
, 0x6E
, 0x64
, 0x72
, 0x6F
, 0x69
, 0x64
, 0x2E
, 0x61
, 0x61
, 0x73
, 0x73
, 0x65
, 0x74
]
-- | [C declaration]: @macro SDL_PROP_IOSTREAM_MEMORY_POINTER@, literal @\"SDL.iostream.memory.base\"@, defined at @SDL3\/SDL_iostream.h 332:9@
sDL_PROP_IOSTREAM_MEMORY_POINTER :: BG.ByteString
sDL_PROP_IOSTREAM_MEMORY_POINTER =
BG.pack
[ 0x53
, 0x44
, 0x4C
, 0x2E
, 0x69
, 0x6F
, 0x73
, 0x74
, 0x72
, 0x65
, 0x61
, 0x6D
, 0x2E
, 0x6D
, 0x65
, 0x6D
, 0x6F
, 0x72
, 0x79
, 0x2E
, 0x62
, 0x61
, 0x73
, 0x65
]
-- | [C declaration]: @macro SDL_PROP_IOSTREAM_MEMORY_SIZE_NUMBER@, literal @\"SDL.iostream.memory.size\"@, defined at @SDL3\/SDL_iostream.h 333:9@
sDL_PROP_IOSTREAM_MEMORY_SIZE_NUMBER :: BG.ByteString
sDL_PROP_IOSTREAM_MEMORY_SIZE_NUMBER =
BG.pack
[ 0x53
, 0x44
, 0x4C
, 0x2E
, 0x69
, 0x6F
, 0x73
, 0x74
, 0x72
, 0x65
, 0x61
, 0x6D
, 0x2E
, 0x6D
, 0x65
, 0x6D
, 0x6F
, 0x72
, 0x79
, 0x2E
, 0x73
, 0x69
, 0x7A
, 0x65
]
-- | [C declaration]: @macro SDL_PROP_IOSTREAM_MEMORY_FREE_FUNC_POINTER@, literal @\"SDL.iostream.memory.free\"@, defined at @SDL3\/SDL_iostream.h 334:9@
sDL_PROP_IOSTREAM_MEMORY_FREE_FUNC_POINTER :: BG.ByteString
sDL_PROP_IOSTREAM_MEMORY_FREE_FUNC_POINTER =
BG.pack
[ 0x53
, 0x44
, 0x4C
, 0x2E
, 0x69
, 0x6F
, 0x73
, 0x74
, 0x72
, 0x65
, 0x61
, 0x6D
, 0x2E
, 0x6D
, 0x65
, 0x6D
, 0x6F
, 0x72
, 0x79
, 0x2E
, 0x66
, 0x72
, 0x65
, 0x65
]
-- | [C declaration]: @macro SDL_PROP_IOSTREAM_DYNAMIC_MEMORY_POINTER@, literal @\"SDL.iostream.dynamic.memory\"@, defined at @SDL3\/SDL_iostream.h 413:9@
sDL_PROP_IOSTREAM_DYNAMIC_MEMORY_POINTER :: BG.ByteString
sDL_PROP_IOSTREAM_DYNAMIC_MEMORY_POINTER =
BG.pack
[ 0x53
, 0x44
, 0x4C
, 0x2E
, 0x69
, 0x6F
, 0x73
, 0x74
, 0x72
, 0x65
, 0x61
, 0x6D
, 0x2E
, 0x64
, 0x79
, 0x6E
, 0x61
, 0x6D
, 0x69
, 0x63
, 0x2E
, 0x6D
, 0x65
, 0x6D
, 0x6F
, 0x72
, 0x79
]
-- | [C declaration]: @macro SDL_PROP_IOSTREAM_DYNAMIC_CHUNKSIZE_NUMBER@, literal @\"SDL.iostream.dynamic.chunksize\"@, defined at @SDL3\/SDL_iostream.h 414:9@
sDL_PROP_IOSTREAM_DYNAMIC_CHUNKSIZE_NUMBER :: BG.ByteString
sDL_PROP_IOSTREAM_DYNAMIC_CHUNKSIZE_NUMBER =
BG.pack
[ 0x53
, 0x44
, 0x4C
, 0x2E
, 0x69
, 0x6F
, 0x73
, 0x74
, 0x72
, 0x65
, 0x61
, 0x6D
, 0x2E
, 0x64
, 0x79
, 0x6E
, 0x61
, 0x6D
, 0x69
, 0x63
, 0x2E
, 0x63
, 0x68
, 0x75
, 0x6E
, 0x6B
, 0x73
, 0x69
, 0x7A
, 0x65
]