{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE NoFieldSelectors #-}
{-# LANGUAGE NoImplicitPrelude #-}
module SDL3.Sys.Bindgen.Guid (
SDL3.Sys.Bindgen.Guid.SDL_GUID (..),
)
where
import Prelude (Eq, Int, Show, pure, (<*>), type (~))
import HsBindgen.Runtime.ConstantArray qualified as CA
import HsBindgen.Runtime.HasCField qualified as HasCField
import HsBindgen.Runtime.Marshal qualified as Marshal
import HsBindgen.Runtime.Struct qualified as Struct
import HsBindgen.Runtime.Support qualified as BG
import HsBindgen.Runtime.Support.CompatHasField qualified as BG.CompatHasField
import SDL3.Sys.Bindgen.Stdinc qualified
data SDL_GUID = SDL_GUID
{ SDL_GUID -> ConstantArray 16 Uint8
data' :: CA.ConstantArray 16 SDL3.Sys.Bindgen.Stdinc.Uint8
}
deriving stock ((forall x. SDL_GUID -> Rep SDL_GUID x)
-> (forall x. Rep SDL_GUID x -> SDL_GUID) -> Generic SDL_GUID
forall x. Rep SDL_GUID x -> SDL_GUID
forall x. SDL_GUID -> Rep SDL_GUID x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_GUID -> Rep SDL_GUID x
from :: forall x. SDL_GUID -> Rep SDL_GUID x
$cto :: forall x. Rep SDL_GUID x -> SDL_GUID
to :: forall x. Rep SDL_GUID x -> SDL_GUID
BG.Generic, SDL_GUID -> SDL_GUID -> Bool
(SDL_GUID -> SDL_GUID -> Bool)
-> (SDL_GUID -> SDL_GUID -> Bool) -> Eq SDL_GUID
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_GUID -> SDL_GUID -> Bool
== :: SDL_GUID -> SDL_GUID -> Bool
$c/= :: SDL_GUID -> SDL_GUID -> Bool
/= :: SDL_GUID -> SDL_GUID -> Bool
Eq, Int -> SDL_GUID -> ShowS
[SDL_GUID] -> ShowS
SDL_GUID -> String
(Int -> SDL_GUID -> ShowS)
-> (SDL_GUID -> String) -> ([SDL_GUID] -> ShowS) -> Show SDL_GUID
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_GUID -> ShowS
showsPrec :: Int -> SDL_GUID -> ShowS
$cshow :: SDL_GUID -> String
show :: SDL_GUID -> String
$cshowList :: [SDL_GUID] -> ShowS
showList :: [SDL_GUID] -> ShowS
Show)
instance Marshal.StaticSize SDL_GUID where
staticSizeOf :: Proxy SDL_GUID -> Int
staticSizeOf = \Proxy SDL_GUID
_ -> (Int
16 :: Int)
staticAlignment :: Proxy SDL_GUID -> Int
staticAlignment = \Proxy SDL_GUID
_ -> (Int
1 :: Int)
instance Marshal.ReadRaw SDL_GUID where
readRaw :: Ptr SDL_GUID -> IO SDL_GUID
readRaw =
\Ptr SDL_GUID
ptr0 ->
(ConstantArray 16 Uint8 -> SDL_GUID)
-> IO (ConstantArray 16 Uint8 -> SDL_GUID)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ConstantArray 16 Uint8 -> SDL_GUID
SDL_GUID
IO (ConstantArray 16 Uint8 -> SDL_GUID)
-> IO (ConstantArray 16 Uint8) -> IO SDL_GUID
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "data'" -> Ptr SDL_GUID -> IO (CFieldType SDL_GUID "data'")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"data'") Ptr SDL_GUID
ptr0
instance Marshal.WriteRaw SDL_GUID where
writeRaw :: Ptr SDL_GUID -> SDL_GUID -> IO ()
writeRaw =
\Ptr SDL_GUID
ptr0 ->
\SDL_GUID
s1 ->
case SDL_GUID
s1 of
SDL_GUID ConstantArray 16 Uint8
data'2 ->
Proxy "data'"
-> Ptr SDL_GUID -> CFieldType SDL_GUID "data'" -> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"data'") Ptr SDL_GUID
ptr0 CFieldType SDL_GUID "data'"
ConstantArray 16 Uint8
data'2
deriving via Marshal.EquivStorable SDL_GUID instance BG.Storable SDL_GUID
deriving via Struct.IsStructViaReadRaw SDL_GUID instance Struct.IsStruct SDL_GUID
instance
(ty ~ CA.ConstantArray 16 SDL3.Sys.Bindgen.Stdinc.Uint8)
=> BG.CompatHasField.HasField "data'" SDL_GUID ty
where
hasField :: SDL_GUID -> (ty -> SDL_GUID, ty)
hasField =
\SDL_GUID
x0 ->
( \ty
y1 ->
SDL_GUID{data' :: ConstantArray 16 Uint8
data' = ty
ConstantArray 16 Uint8
y1}
, forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"data'" SDL_GUID
x0
)
instance
(ty ~ CA.ConstantArray 16 SDL3.Sys.Bindgen.Stdinc.Uint8)
=> BG.HasField "data'" (BG.Ptr SDL_GUID) (BG.Ptr ty)
where
getField :: Ptr SDL_GUID -> Ptr ty
getField = Proxy "data'" -> Ptr SDL_GUID -> Ptr (CFieldType SDL_GUID "data'")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"data'")
instance HasCField.HasCField SDL_GUID "data'" where
type
CFieldType SDL_GUID "data'" =
CA.ConstantArray 16 SDL3.Sys.Bindgen.Stdinc.Uint8
offset# :: Proxy# SDL_GUID -> Proxy# "data'" -> Int
offset# = \Proxy# SDL_GUID
_ -> \Proxy# "data'"
_ -> Int
0