{-# language CPP #-}
module Vulkan.Core11.Enums.ExternalSemaphoreFeatureFlagBits  ( ExternalSemaphoreFeatureFlagBits( EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT
                                                                                               , EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
                                                                                               , ..
                                                                                               )
                                                             , ExternalSemaphoreFeatureFlags
                                                             ) where

import GHC.Read (choose)
import GHC.Read (expectP)
import GHC.Read (parens)
import GHC.Show (showParen)
import GHC.Show (showString)
import Numeric (showHex)
import Text.ParserCombinators.ReadPrec ((+++))
import Text.ParserCombinators.ReadPrec (prec)
import Text.ParserCombinators.ReadPrec (step)
import Data.Bits (Bits)
import Foreign.Storable (Storable)
import GHC.Read (Read(readPrec))
import Text.Read.Lex (Lexeme(Ident))
import Vulkan.Core10.BaseType (Flags)
import Vulkan.Zero (Zero)
-- | VkExternalSemaphoreFeatureFlagBits - Bitfield describing features of an
-- external semaphore handle type
--
-- = See Also
--
-- 'ExternalSemaphoreFeatureFlags'
newtype ExternalSemaphoreFeatureFlagBits = ExternalSemaphoreFeatureFlagBits Flags
  deriving newtype (ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> Bool
(ExternalSemaphoreFeatureFlagBits
 -> ExternalSemaphoreFeatureFlagBits -> Bool)
-> (ExternalSemaphoreFeatureFlagBits
    -> ExternalSemaphoreFeatureFlagBits -> Bool)
-> Eq ExternalSemaphoreFeatureFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> Bool
$c/= :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> Bool
== :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> Bool
$c== :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> Bool
Eq, Eq ExternalSemaphoreFeatureFlagBits
Eq ExternalSemaphoreFeatureFlagBits =>
(ExternalSemaphoreFeatureFlagBits
 -> ExternalSemaphoreFeatureFlagBits -> Ordering)
-> (ExternalSemaphoreFeatureFlagBits
    -> ExternalSemaphoreFeatureFlagBits -> Bool)
-> (ExternalSemaphoreFeatureFlagBits
    -> ExternalSemaphoreFeatureFlagBits -> Bool)
-> (ExternalSemaphoreFeatureFlagBits
    -> ExternalSemaphoreFeatureFlagBits -> Bool)
-> (ExternalSemaphoreFeatureFlagBits
    -> ExternalSemaphoreFeatureFlagBits -> Bool)
-> (ExternalSemaphoreFeatureFlagBits
    -> ExternalSemaphoreFeatureFlagBits
    -> ExternalSemaphoreFeatureFlagBits)
-> (ExternalSemaphoreFeatureFlagBits
    -> ExternalSemaphoreFeatureFlagBits
    -> ExternalSemaphoreFeatureFlagBits)
-> Ord ExternalSemaphoreFeatureFlagBits
ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> Bool
ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> Ordering
ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
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 :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
$cmin :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
max :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
$cmax :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
>= :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> Bool
$c>= :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> Bool
> :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> Bool
$c> :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> Bool
<= :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> Bool
$c<= :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> Bool
< :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> Bool
$c< :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> Bool
compare :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> Ordering
$ccompare :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> Ordering
$cp1Ord :: Eq ExternalSemaphoreFeatureFlagBits
Ord, Ptr b -> Int -> IO ExternalSemaphoreFeatureFlagBits
Ptr b -> Int -> ExternalSemaphoreFeatureFlagBits -> IO ()
Ptr ExternalSemaphoreFeatureFlagBits
-> IO ExternalSemaphoreFeatureFlagBits
Ptr ExternalSemaphoreFeatureFlagBits
-> Int -> IO ExternalSemaphoreFeatureFlagBits
Ptr ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits -> IO ()
Ptr ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> IO ()
ExternalSemaphoreFeatureFlagBits -> Int
(ExternalSemaphoreFeatureFlagBits -> Int)
-> (ExternalSemaphoreFeatureFlagBits -> Int)
-> (Ptr ExternalSemaphoreFeatureFlagBits
    -> Int -> IO ExternalSemaphoreFeatureFlagBits)
-> (Ptr ExternalSemaphoreFeatureFlagBits
    -> Int -> ExternalSemaphoreFeatureFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO ExternalSemaphoreFeatureFlagBits)
-> (forall b.
    Ptr b -> Int -> ExternalSemaphoreFeatureFlagBits -> IO ())
-> (Ptr ExternalSemaphoreFeatureFlagBits
    -> IO ExternalSemaphoreFeatureFlagBits)
-> (Ptr ExternalSemaphoreFeatureFlagBits
    -> ExternalSemaphoreFeatureFlagBits -> IO ())
-> Storable ExternalSemaphoreFeatureFlagBits
forall b. Ptr b -> Int -> IO ExternalSemaphoreFeatureFlagBits
forall b. Ptr b -> Int -> ExternalSemaphoreFeatureFlagBits -> 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 ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> IO ()
$cpoke :: Ptr ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits -> IO ()
peek :: Ptr ExternalSemaphoreFeatureFlagBits
-> IO ExternalSemaphoreFeatureFlagBits
$cpeek :: Ptr ExternalSemaphoreFeatureFlagBits
-> IO ExternalSemaphoreFeatureFlagBits
pokeByteOff :: Ptr b -> Int -> ExternalSemaphoreFeatureFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> ExternalSemaphoreFeatureFlagBits -> IO ()
peekByteOff :: Ptr b -> Int -> IO ExternalSemaphoreFeatureFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO ExternalSemaphoreFeatureFlagBits
pokeElemOff :: Ptr ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits -> IO ()
$cpokeElemOff :: Ptr ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits -> IO ()
peekElemOff :: Ptr ExternalSemaphoreFeatureFlagBits
-> Int -> IO ExternalSemaphoreFeatureFlagBits
$cpeekElemOff :: Ptr ExternalSemaphoreFeatureFlagBits
-> Int -> IO ExternalSemaphoreFeatureFlagBits
alignment :: ExternalSemaphoreFeatureFlagBits -> Int
$calignment :: ExternalSemaphoreFeatureFlagBits -> Int
sizeOf :: ExternalSemaphoreFeatureFlagBits -> Int
$csizeOf :: ExternalSemaphoreFeatureFlagBits -> Int
Storable, ExternalSemaphoreFeatureFlagBits
ExternalSemaphoreFeatureFlagBits
-> Zero ExternalSemaphoreFeatureFlagBits
forall a. a -> Zero a
zero :: ExternalSemaphoreFeatureFlagBits
$czero :: ExternalSemaphoreFeatureFlagBits
Zero, Eq ExternalSemaphoreFeatureFlagBits
ExternalSemaphoreFeatureFlagBits
Eq ExternalSemaphoreFeatureFlagBits =>
(ExternalSemaphoreFeatureFlagBits
 -> ExternalSemaphoreFeatureFlagBits
 -> ExternalSemaphoreFeatureFlagBits)
-> (ExternalSemaphoreFeatureFlagBits
    -> ExternalSemaphoreFeatureFlagBits
    -> ExternalSemaphoreFeatureFlagBits)
-> (ExternalSemaphoreFeatureFlagBits
    -> ExternalSemaphoreFeatureFlagBits
    -> ExternalSemaphoreFeatureFlagBits)
-> (ExternalSemaphoreFeatureFlagBits
    -> ExternalSemaphoreFeatureFlagBits)
-> (ExternalSemaphoreFeatureFlagBits
    -> Int -> ExternalSemaphoreFeatureFlagBits)
-> (ExternalSemaphoreFeatureFlagBits
    -> Int -> ExternalSemaphoreFeatureFlagBits)
-> ExternalSemaphoreFeatureFlagBits
-> (Int -> ExternalSemaphoreFeatureFlagBits)
-> (ExternalSemaphoreFeatureFlagBits
    -> Int -> ExternalSemaphoreFeatureFlagBits)
-> (ExternalSemaphoreFeatureFlagBits
    -> Int -> ExternalSemaphoreFeatureFlagBits)
-> (ExternalSemaphoreFeatureFlagBits
    -> Int -> ExternalSemaphoreFeatureFlagBits)
-> (ExternalSemaphoreFeatureFlagBits -> Int -> Bool)
-> (ExternalSemaphoreFeatureFlagBits -> Maybe Int)
-> (ExternalSemaphoreFeatureFlagBits -> Int)
-> (ExternalSemaphoreFeatureFlagBits -> Bool)
-> (ExternalSemaphoreFeatureFlagBits
    -> Int -> ExternalSemaphoreFeatureFlagBits)
-> (ExternalSemaphoreFeatureFlagBits
    -> Int -> ExternalSemaphoreFeatureFlagBits)
-> (ExternalSemaphoreFeatureFlagBits
    -> Int -> ExternalSemaphoreFeatureFlagBits)
-> (ExternalSemaphoreFeatureFlagBits
    -> Int -> ExternalSemaphoreFeatureFlagBits)
-> (ExternalSemaphoreFeatureFlagBits
    -> Int -> ExternalSemaphoreFeatureFlagBits)
-> (ExternalSemaphoreFeatureFlagBits
    -> Int -> ExternalSemaphoreFeatureFlagBits)
-> (ExternalSemaphoreFeatureFlagBits -> Int)
-> Bits ExternalSemaphoreFeatureFlagBits
Int -> ExternalSemaphoreFeatureFlagBits
ExternalSemaphoreFeatureFlagBits -> Bool
ExternalSemaphoreFeatureFlagBits -> Int
ExternalSemaphoreFeatureFlagBits -> Maybe Int
ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
ExternalSemaphoreFeatureFlagBits -> Int -> Bool
ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
popCount :: ExternalSemaphoreFeatureFlagBits -> Int
$cpopCount :: ExternalSemaphoreFeatureFlagBits -> Int
rotateR :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
$crotateR :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
rotateL :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
$crotateL :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
unsafeShiftR :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
$cunsafeShiftR :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
shiftR :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
$cshiftR :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
unsafeShiftL :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
$cunsafeShiftL :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
shiftL :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
$cshiftL :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
isSigned :: ExternalSemaphoreFeatureFlagBits -> Bool
$cisSigned :: ExternalSemaphoreFeatureFlagBits -> Bool
bitSize :: ExternalSemaphoreFeatureFlagBits -> Int
$cbitSize :: ExternalSemaphoreFeatureFlagBits -> Int
bitSizeMaybe :: ExternalSemaphoreFeatureFlagBits -> Maybe Int
$cbitSizeMaybe :: ExternalSemaphoreFeatureFlagBits -> Maybe Int
testBit :: ExternalSemaphoreFeatureFlagBits -> Int -> Bool
$ctestBit :: ExternalSemaphoreFeatureFlagBits -> Int -> Bool
complementBit :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
$ccomplementBit :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
clearBit :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
$cclearBit :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
setBit :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
$csetBit :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
bit :: Int -> ExternalSemaphoreFeatureFlagBits
$cbit :: Int -> ExternalSemaphoreFeatureFlagBits
zeroBits :: ExternalSemaphoreFeatureFlagBits
$czeroBits :: ExternalSemaphoreFeatureFlagBits
rotate :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
$crotate :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
shift :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
$cshift :: ExternalSemaphoreFeatureFlagBits
-> Int -> ExternalSemaphoreFeatureFlagBits
complement :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
$ccomplement :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
xor :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
$cxor :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
.|. :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
$c.|. :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
.&. :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
$c.&. :: ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
-> ExternalSemaphoreFeatureFlagBits
$cp1Bits :: Eq ExternalSemaphoreFeatureFlagBits
Bits)

-- | 'EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT' specifies that handles of
-- this type /can/ be exported from Vulkan semaphore objects.
pattern $bEXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT :: ExternalSemaphoreFeatureFlagBits
$mEXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT :: forall r.
ExternalSemaphoreFeatureFlagBits
-> (Void# -> r) -> (Void# -> r) -> r
EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = ExternalSemaphoreFeatureFlagBits 0x00000001
-- | 'EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT' specifies that handles of
-- this type /can/ be imported as Vulkan semaphore objects.
pattern $bEXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT :: ExternalSemaphoreFeatureFlagBits
$mEXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT :: forall r.
ExternalSemaphoreFeatureFlagBits
-> (Void# -> r) -> (Void# -> r) -> r
EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = ExternalSemaphoreFeatureFlagBits 0x00000002

type ExternalSemaphoreFeatureFlags = ExternalSemaphoreFeatureFlagBits

instance Show ExternalSemaphoreFeatureFlagBits where
  showsPrec :: Int -> ExternalSemaphoreFeatureFlagBits -> ShowS
showsPrec p :: Int
p = \case
    EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT -> String -> ShowS
showString "EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"
    EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT -> String -> ShowS
showString "EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"
    ExternalSemaphoreFeatureFlagBits x :: Flags
x -> Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= 11) (String -> ShowS
showString "ExternalSemaphoreFeatureFlagBits 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Flags -> ShowS
forall a. (Integral a, Show a) => a -> ShowS
showHex Flags
x)

instance Read ExternalSemaphoreFeatureFlagBits where
  readPrec :: ReadPrec ExternalSemaphoreFeatureFlagBits
readPrec = ReadPrec ExternalSemaphoreFeatureFlagBits
-> ReadPrec ExternalSemaphoreFeatureFlagBits
forall a. ReadPrec a -> ReadPrec a
parens ([(String, ReadPrec ExternalSemaphoreFeatureFlagBits)]
-> ReadPrec ExternalSemaphoreFeatureFlagBits
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose [("EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT", ExternalSemaphoreFeatureFlagBits
-> ReadPrec ExternalSemaphoreFeatureFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure ExternalSemaphoreFeatureFlagBits
EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT)
                            , ("EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT", ExternalSemaphoreFeatureFlagBits
-> ReadPrec ExternalSemaphoreFeatureFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure ExternalSemaphoreFeatureFlagBits
EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT)]
                     ReadPrec ExternalSemaphoreFeatureFlagBits
-> ReadPrec ExternalSemaphoreFeatureFlagBits
-> ReadPrec ExternalSemaphoreFeatureFlagBits
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
                     Int
-> ReadPrec ExternalSemaphoreFeatureFlagBits
-> ReadPrec ExternalSemaphoreFeatureFlagBits
forall a. Int -> ReadPrec a -> ReadPrec a
prec 10 (do
                       Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident "ExternalSemaphoreFeatureFlagBits")
                       Flags
v <- ReadPrec Flags -> ReadPrec Flags
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Flags
forall a. Read a => ReadPrec a
readPrec
                       ExternalSemaphoreFeatureFlagBits
-> ReadPrec ExternalSemaphoreFeatureFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Flags -> ExternalSemaphoreFeatureFlagBits
ExternalSemaphoreFeatureFlagBits Flags
v)))