{-# language CPP #-}
-- No documentation found for Chapter "InternalAllocationType"
module Vulkan.Core10.Enums.InternalAllocationType  (InternalAllocationType( INTERNAL_ALLOCATION_TYPE_EXECUTABLE
                                                                          , ..
                                                                          )) where

import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import GHC.Show (showsPrec)
import Vulkan.Zero (Zero)
import Foreign.Storable (Storable)
import Data.Int (Int32)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))

-- | VkInternalAllocationType - Allocation type
--
-- = See Also
--
-- 'Vulkan.Core10.FuncPointers.PFN_vkInternalAllocationNotification',
-- 'Vulkan.Core10.FuncPointers.PFN_vkInternalFreeNotification',
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>
newtype InternalAllocationType = InternalAllocationType Int32
  deriving newtype (InternalAllocationType -> InternalAllocationType -> Bool
(InternalAllocationType -> InternalAllocationType -> Bool)
-> (InternalAllocationType -> InternalAllocationType -> Bool)
-> Eq InternalAllocationType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InternalAllocationType -> InternalAllocationType -> Bool
$c/= :: InternalAllocationType -> InternalAllocationType -> Bool
== :: InternalAllocationType -> InternalAllocationType -> Bool
$c== :: InternalAllocationType -> InternalAllocationType -> Bool
Eq, Eq InternalAllocationType
Eq InternalAllocationType
-> (InternalAllocationType -> InternalAllocationType -> Ordering)
-> (InternalAllocationType -> InternalAllocationType -> Bool)
-> (InternalAllocationType -> InternalAllocationType -> Bool)
-> (InternalAllocationType -> InternalAllocationType -> Bool)
-> (InternalAllocationType -> InternalAllocationType -> Bool)
-> (InternalAllocationType
    -> InternalAllocationType -> InternalAllocationType)
-> (InternalAllocationType
    -> InternalAllocationType -> InternalAllocationType)
-> Ord InternalAllocationType
InternalAllocationType -> InternalAllocationType -> Bool
InternalAllocationType -> InternalAllocationType -> Ordering
InternalAllocationType
-> InternalAllocationType -> InternalAllocationType
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: InternalAllocationType
-> InternalAllocationType -> InternalAllocationType
$cmin :: InternalAllocationType
-> InternalAllocationType -> InternalAllocationType
max :: InternalAllocationType
-> InternalAllocationType -> InternalAllocationType
$cmax :: InternalAllocationType
-> InternalAllocationType -> InternalAllocationType
>= :: InternalAllocationType -> InternalAllocationType -> Bool
$c>= :: InternalAllocationType -> InternalAllocationType -> Bool
> :: InternalAllocationType -> InternalAllocationType -> Bool
$c> :: InternalAllocationType -> InternalAllocationType -> Bool
<= :: InternalAllocationType -> InternalAllocationType -> Bool
$c<= :: InternalAllocationType -> InternalAllocationType -> Bool
< :: InternalAllocationType -> InternalAllocationType -> Bool
$c< :: InternalAllocationType -> InternalAllocationType -> Bool
compare :: InternalAllocationType -> InternalAllocationType -> Ordering
$ccompare :: InternalAllocationType -> InternalAllocationType -> Ordering
$cp1Ord :: Eq InternalAllocationType
Ord, Ptr b -> Int -> IO InternalAllocationType
Ptr b -> Int -> InternalAllocationType -> IO ()
Ptr InternalAllocationType -> IO InternalAllocationType
Ptr InternalAllocationType -> Int -> IO InternalAllocationType
Ptr InternalAllocationType
-> Int -> InternalAllocationType -> IO ()
Ptr InternalAllocationType -> InternalAllocationType -> IO ()
InternalAllocationType -> Int
(InternalAllocationType -> Int)
-> (InternalAllocationType -> Int)
-> (Ptr InternalAllocationType -> Int -> IO InternalAllocationType)
-> (Ptr InternalAllocationType
    -> Int -> InternalAllocationType -> IO ())
-> (forall b. Ptr b -> Int -> IO InternalAllocationType)
-> (forall b. Ptr b -> Int -> InternalAllocationType -> IO ())
-> (Ptr InternalAllocationType -> IO InternalAllocationType)
-> (Ptr InternalAllocationType -> InternalAllocationType -> IO ())
-> Storable InternalAllocationType
forall b. Ptr b -> Int -> IO InternalAllocationType
forall b. Ptr b -> Int -> InternalAllocationType -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr InternalAllocationType -> InternalAllocationType -> IO ()
$cpoke :: Ptr InternalAllocationType -> InternalAllocationType -> IO ()
peek :: Ptr InternalAllocationType -> IO InternalAllocationType
$cpeek :: Ptr InternalAllocationType -> IO InternalAllocationType
pokeByteOff :: Ptr b -> Int -> InternalAllocationType -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> InternalAllocationType -> IO ()
peekByteOff :: Ptr b -> Int -> IO InternalAllocationType
$cpeekByteOff :: forall b. Ptr b -> Int -> IO InternalAllocationType
pokeElemOff :: Ptr InternalAllocationType
-> Int -> InternalAllocationType -> IO ()
$cpokeElemOff :: Ptr InternalAllocationType
-> Int -> InternalAllocationType -> IO ()
peekElemOff :: Ptr InternalAllocationType -> Int -> IO InternalAllocationType
$cpeekElemOff :: Ptr InternalAllocationType -> Int -> IO InternalAllocationType
alignment :: InternalAllocationType -> Int
$calignment :: InternalAllocationType -> Int
sizeOf :: InternalAllocationType -> Int
$csizeOf :: InternalAllocationType -> Int
Storable, InternalAllocationType
InternalAllocationType -> Zero InternalAllocationType
forall a. a -> Zero a
zero :: InternalAllocationType
$czero :: InternalAllocationType
Zero)

-- | 'INTERNAL_ALLOCATION_TYPE_EXECUTABLE' specifies that the allocation is
-- intended for execution by the host.
pattern $bINTERNAL_ALLOCATION_TYPE_EXECUTABLE :: InternalAllocationType
$mINTERNAL_ALLOCATION_TYPE_EXECUTABLE :: forall r.
InternalAllocationType -> (Void# -> r) -> (Void# -> r) -> r
INTERNAL_ALLOCATION_TYPE_EXECUTABLE = InternalAllocationType 0
{-# complete INTERNAL_ALLOCATION_TYPE_EXECUTABLE :: InternalAllocationType #-}

conNameInternalAllocationType :: String
conNameInternalAllocationType :: String
conNameInternalAllocationType = String
"InternalAllocationType"

enumPrefixInternalAllocationType :: String
enumPrefixInternalAllocationType :: String
enumPrefixInternalAllocationType = String
"INTERNAL_ALLOCATION_TYPE_EXECUTABLE"

showTableInternalAllocationType :: [(InternalAllocationType, String)]
showTableInternalAllocationType :: [(InternalAllocationType, String)]
showTableInternalAllocationType = [(InternalAllocationType
INTERNAL_ALLOCATION_TYPE_EXECUTABLE, String
"")]

instance Show InternalAllocationType where
  showsPrec :: Int -> InternalAllocationType -> ShowS
showsPrec = String
-> [(InternalAllocationType, String)]
-> String
-> (InternalAllocationType -> Int32)
-> (Int32 -> ShowS)
-> Int
-> InternalAllocationType
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec String
enumPrefixInternalAllocationType
                            [(InternalAllocationType, String)]
showTableInternalAllocationType
                            String
conNameInternalAllocationType
                            (\(InternalAllocationType Int32
x) -> Int32
x)
                            (Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)

instance Read InternalAllocationType where
  readPrec :: ReadPrec InternalAllocationType
readPrec = String
-> [(InternalAllocationType, String)]
-> String
-> (Int32 -> InternalAllocationType)
-> ReadPrec InternalAllocationType
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec String
enumPrefixInternalAllocationType
                          [(InternalAllocationType, String)]
showTableInternalAllocationType
                          String
conNameInternalAllocationType
                          Int32 -> InternalAllocationType
InternalAllocationType