{-# language CPP #-}
module Vulkan.Core11.Enums.PeerMemoryFeatureFlagBits  ( PeerMemoryFeatureFlagBits( PEER_MEMORY_FEATURE_COPY_SRC_BIT
                                                                                 , PEER_MEMORY_FEATURE_COPY_DST_BIT
                                                                                 , PEER_MEMORY_FEATURE_GENERIC_SRC_BIT
                                                                                 , PEER_MEMORY_FEATURE_GENERIC_DST_BIT
                                                                                 , ..
                                                                                 )
                                                      , PeerMemoryFeatureFlags
                                                      ) 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.FundamentalTypes (Flags)
import Vulkan.Zero (Zero)
-- | VkPeerMemoryFeatureFlagBits - Bitmask specifying supported peer memory
-- features
--
-- = Description
--
-- Note
--
-- The peer memory features of a memory heap also apply to any accesses
-- that /may/ be performed during
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>.
--
-- 'PEER_MEMORY_FEATURE_COPY_DST_BIT' /must/ be supported for all host
-- local heaps and for at least one device local heap.
--
-- If a device does not support a peer memory feature, it is still valid to
-- use a resource that includes both local and peer memory bindings with
-- the corresponding access type as long as only the local bindings are
-- actually accessed. For example, an application doing split-frame
-- rendering would use framebuffer attachments that include both local and
-- peer memory bindings, but would scissor the rendering to only update
-- local memory.
--
-- = See Also
--
-- 'PeerMemoryFeatureFlags'
newtype PeerMemoryFeatureFlagBits = PeerMemoryFeatureFlagBits Flags
  deriving newtype (PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool
(PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool)
-> (PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool)
-> Eq PeerMemoryFeatureFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool
$c/= :: PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool
== :: PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool
$c== :: PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool
Eq, Eq PeerMemoryFeatureFlagBits
Eq PeerMemoryFeatureFlagBits =>
(PeerMemoryFeatureFlagBits
 -> PeerMemoryFeatureFlagBits -> Ordering)
-> (PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool)
-> (PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool)
-> (PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool)
-> (PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool)
-> (PeerMemoryFeatureFlagBits
    -> PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits)
-> (PeerMemoryFeatureFlagBits
    -> PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits)
-> Ord PeerMemoryFeatureFlagBits
PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool
PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Ordering
PeerMemoryFeatureFlagBits
-> PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits
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 :: PeerMemoryFeatureFlagBits
-> PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits
$cmin :: PeerMemoryFeatureFlagBits
-> PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits
max :: PeerMemoryFeatureFlagBits
-> PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits
$cmax :: PeerMemoryFeatureFlagBits
-> PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits
>= :: PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool
$c>= :: PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool
> :: PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool
$c> :: PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool
<= :: PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool
$c<= :: PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool
< :: PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool
$c< :: PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Bool
compare :: PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Ordering
$ccompare :: PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> Ordering
$cp1Ord :: Eq PeerMemoryFeatureFlagBits
Ord, Ptr b -> Int -> IO PeerMemoryFeatureFlagBits
Ptr b -> Int -> PeerMemoryFeatureFlagBits -> IO ()
Ptr PeerMemoryFeatureFlagBits -> IO PeerMemoryFeatureFlagBits
Ptr PeerMemoryFeatureFlagBits
-> Int -> IO PeerMemoryFeatureFlagBits
Ptr PeerMemoryFeatureFlagBits
-> Int -> PeerMemoryFeatureFlagBits -> IO ()
Ptr PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> IO ()
PeerMemoryFeatureFlagBits -> Int
(PeerMemoryFeatureFlagBits -> Int)
-> (PeerMemoryFeatureFlagBits -> Int)
-> (Ptr PeerMemoryFeatureFlagBits
    -> Int -> IO PeerMemoryFeatureFlagBits)
-> (Ptr PeerMemoryFeatureFlagBits
    -> Int -> PeerMemoryFeatureFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO PeerMemoryFeatureFlagBits)
-> (forall b. Ptr b -> Int -> PeerMemoryFeatureFlagBits -> IO ())
-> (Ptr PeerMemoryFeatureFlagBits -> IO PeerMemoryFeatureFlagBits)
-> (Ptr PeerMemoryFeatureFlagBits
    -> PeerMemoryFeatureFlagBits -> IO ())
-> Storable PeerMemoryFeatureFlagBits
forall b. Ptr b -> Int -> IO PeerMemoryFeatureFlagBits
forall b. Ptr b -> Int -> PeerMemoryFeatureFlagBits -> 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 PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> IO ()
$cpoke :: Ptr PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits -> IO ()
peek :: Ptr PeerMemoryFeatureFlagBits -> IO PeerMemoryFeatureFlagBits
$cpeek :: Ptr PeerMemoryFeatureFlagBits -> IO PeerMemoryFeatureFlagBits
pokeByteOff :: Ptr b -> Int -> PeerMemoryFeatureFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> PeerMemoryFeatureFlagBits -> IO ()
peekByteOff :: Ptr b -> Int -> IO PeerMemoryFeatureFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO PeerMemoryFeatureFlagBits
pokeElemOff :: Ptr PeerMemoryFeatureFlagBits
-> Int -> PeerMemoryFeatureFlagBits -> IO ()
$cpokeElemOff :: Ptr PeerMemoryFeatureFlagBits
-> Int -> PeerMemoryFeatureFlagBits -> IO ()
peekElemOff :: Ptr PeerMemoryFeatureFlagBits
-> Int -> IO PeerMemoryFeatureFlagBits
$cpeekElemOff :: Ptr PeerMemoryFeatureFlagBits
-> Int -> IO PeerMemoryFeatureFlagBits
alignment :: PeerMemoryFeatureFlagBits -> Int
$calignment :: PeerMemoryFeatureFlagBits -> Int
sizeOf :: PeerMemoryFeatureFlagBits -> Int
$csizeOf :: PeerMemoryFeatureFlagBits -> Int
Storable, PeerMemoryFeatureFlagBits
PeerMemoryFeatureFlagBits -> Zero PeerMemoryFeatureFlagBits
forall a. a -> Zero a
zero :: PeerMemoryFeatureFlagBits
$czero :: PeerMemoryFeatureFlagBits
Zero, Eq PeerMemoryFeatureFlagBits
PeerMemoryFeatureFlagBits
Eq PeerMemoryFeatureFlagBits =>
(PeerMemoryFeatureFlagBits
 -> PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits)
-> (PeerMemoryFeatureFlagBits
    -> PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits)
-> (PeerMemoryFeatureFlagBits
    -> PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits)
-> (PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits)
-> (PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits)
-> (PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits)
-> PeerMemoryFeatureFlagBits
-> (Int -> PeerMemoryFeatureFlagBits)
-> (PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits)
-> (PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits)
-> (PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits)
-> (PeerMemoryFeatureFlagBits -> Int -> Bool)
-> (PeerMemoryFeatureFlagBits -> Maybe Int)
-> (PeerMemoryFeatureFlagBits -> Int)
-> (PeerMemoryFeatureFlagBits -> Bool)
-> (PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits)
-> (PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits)
-> (PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits)
-> (PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits)
-> (PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits)
-> (PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits)
-> (PeerMemoryFeatureFlagBits -> Int)
-> Bits PeerMemoryFeatureFlagBits
Int -> PeerMemoryFeatureFlagBits
PeerMemoryFeatureFlagBits -> Bool
PeerMemoryFeatureFlagBits -> Int
PeerMemoryFeatureFlagBits -> Maybe Int
PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits
PeerMemoryFeatureFlagBits -> Int -> Bool
PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
PeerMemoryFeatureFlagBits
-> PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits
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 :: PeerMemoryFeatureFlagBits -> Int
$cpopCount :: PeerMemoryFeatureFlagBits -> Int
rotateR :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
$crotateR :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
rotateL :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
$crotateL :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
unsafeShiftR :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
$cunsafeShiftR :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
shiftR :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
$cshiftR :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
unsafeShiftL :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
$cunsafeShiftL :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
shiftL :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
$cshiftL :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
isSigned :: PeerMemoryFeatureFlagBits -> Bool
$cisSigned :: PeerMemoryFeatureFlagBits -> Bool
bitSize :: PeerMemoryFeatureFlagBits -> Int
$cbitSize :: PeerMemoryFeatureFlagBits -> Int
bitSizeMaybe :: PeerMemoryFeatureFlagBits -> Maybe Int
$cbitSizeMaybe :: PeerMemoryFeatureFlagBits -> Maybe Int
testBit :: PeerMemoryFeatureFlagBits -> Int -> Bool
$ctestBit :: PeerMemoryFeatureFlagBits -> Int -> Bool
complementBit :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
$ccomplementBit :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
clearBit :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
$cclearBit :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
setBit :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
$csetBit :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
bit :: Int -> PeerMemoryFeatureFlagBits
$cbit :: Int -> PeerMemoryFeatureFlagBits
zeroBits :: PeerMemoryFeatureFlagBits
$czeroBits :: PeerMemoryFeatureFlagBits
rotate :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
$crotate :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
shift :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
$cshift :: PeerMemoryFeatureFlagBits -> Int -> PeerMemoryFeatureFlagBits
complement :: PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits
$ccomplement :: PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits
xor :: PeerMemoryFeatureFlagBits
-> PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits
$cxor :: PeerMemoryFeatureFlagBits
-> PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits
.|. :: PeerMemoryFeatureFlagBits
-> PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits
$c.|. :: PeerMemoryFeatureFlagBits
-> PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits
.&. :: PeerMemoryFeatureFlagBits
-> PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits
$c.&. :: PeerMemoryFeatureFlagBits
-> PeerMemoryFeatureFlagBits -> PeerMemoryFeatureFlagBits
$cp1Bits :: Eq PeerMemoryFeatureFlagBits
Bits)

-- | 'PEER_MEMORY_FEATURE_COPY_SRC_BIT' specifies that the memory /can/ be
-- accessed as the source of any @vkCmdCopy*@ command.
pattern $bPEER_MEMORY_FEATURE_COPY_SRC_BIT :: PeerMemoryFeatureFlagBits
$mPEER_MEMORY_FEATURE_COPY_SRC_BIT :: forall r.
PeerMemoryFeatureFlagBits -> (Void# -> r) -> (Void# -> r) -> r
PEER_MEMORY_FEATURE_COPY_SRC_BIT = PeerMemoryFeatureFlagBits 0x00000001
-- | 'PEER_MEMORY_FEATURE_COPY_DST_BIT' specifies that the memory /can/ be
-- accessed as the destination of any @vkCmdCopy*@ command.
pattern $bPEER_MEMORY_FEATURE_COPY_DST_BIT :: PeerMemoryFeatureFlagBits
$mPEER_MEMORY_FEATURE_COPY_DST_BIT :: forall r.
PeerMemoryFeatureFlagBits -> (Void# -> r) -> (Void# -> r) -> r
PEER_MEMORY_FEATURE_COPY_DST_BIT = PeerMemoryFeatureFlagBits 0x00000002
-- | 'PEER_MEMORY_FEATURE_GENERIC_SRC_BIT' specifies that the memory /can/ be
-- read as any memory access type.
pattern $bPEER_MEMORY_FEATURE_GENERIC_SRC_BIT :: PeerMemoryFeatureFlagBits
$mPEER_MEMORY_FEATURE_GENERIC_SRC_BIT :: forall r.
PeerMemoryFeatureFlagBits -> (Void# -> r) -> (Void# -> r) -> r
PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = PeerMemoryFeatureFlagBits 0x00000004
-- | 'PEER_MEMORY_FEATURE_GENERIC_DST_BIT' specifies that the memory /can/ be
-- written as any memory access type. Shader atomics are considered to be
-- writes.
pattern $bPEER_MEMORY_FEATURE_GENERIC_DST_BIT :: PeerMemoryFeatureFlagBits
$mPEER_MEMORY_FEATURE_GENERIC_DST_BIT :: forall r.
PeerMemoryFeatureFlagBits -> (Void# -> r) -> (Void# -> r) -> r
PEER_MEMORY_FEATURE_GENERIC_DST_BIT = PeerMemoryFeatureFlagBits 0x00000008

type PeerMemoryFeatureFlags = PeerMemoryFeatureFlagBits

instance Show PeerMemoryFeatureFlagBits where
  showsPrec :: Int -> PeerMemoryFeatureFlagBits -> ShowS
showsPrec p :: Int
p = \case
    PEER_MEMORY_FEATURE_COPY_SRC_BIT -> String -> ShowS
showString "PEER_MEMORY_FEATURE_COPY_SRC_BIT"
    PEER_MEMORY_FEATURE_COPY_DST_BIT -> String -> ShowS
showString "PEER_MEMORY_FEATURE_COPY_DST_BIT"
    PEER_MEMORY_FEATURE_GENERIC_SRC_BIT -> String -> ShowS
showString "PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"
    PEER_MEMORY_FEATURE_GENERIC_DST_BIT -> String -> ShowS
showString "PEER_MEMORY_FEATURE_GENERIC_DST_BIT"
    PeerMemoryFeatureFlagBits x :: Flags
x -> Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= 11) (String -> ShowS
showString "PeerMemoryFeatureFlagBits 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 PeerMemoryFeatureFlagBits where
  readPrec :: ReadPrec PeerMemoryFeatureFlagBits
readPrec = ReadPrec PeerMemoryFeatureFlagBits
-> ReadPrec PeerMemoryFeatureFlagBits
forall a. ReadPrec a -> ReadPrec a
parens ([(String, ReadPrec PeerMemoryFeatureFlagBits)]
-> ReadPrec PeerMemoryFeatureFlagBits
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose [("PEER_MEMORY_FEATURE_COPY_SRC_BIT", PeerMemoryFeatureFlagBits -> ReadPrec PeerMemoryFeatureFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure PeerMemoryFeatureFlagBits
PEER_MEMORY_FEATURE_COPY_SRC_BIT)
                            , ("PEER_MEMORY_FEATURE_COPY_DST_BIT", PeerMemoryFeatureFlagBits -> ReadPrec PeerMemoryFeatureFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure PeerMemoryFeatureFlagBits
PEER_MEMORY_FEATURE_COPY_DST_BIT)
                            , ("PEER_MEMORY_FEATURE_GENERIC_SRC_BIT", PeerMemoryFeatureFlagBits -> ReadPrec PeerMemoryFeatureFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure PeerMemoryFeatureFlagBits
PEER_MEMORY_FEATURE_GENERIC_SRC_BIT)
                            , ("PEER_MEMORY_FEATURE_GENERIC_DST_BIT", PeerMemoryFeatureFlagBits -> ReadPrec PeerMemoryFeatureFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure PeerMemoryFeatureFlagBits
PEER_MEMORY_FEATURE_GENERIC_DST_BIT)]
                     ReadPrec PeerMemoryFeatureFlagBits
-> ReadPrec PeerMemoryFeatureFlagBits
-> ReadPrec PeerMemoryFeatureFlagBits
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
                     Int
-> ReadPrec PeerMemoryFeatureFlagBits
-> ReadPrec PeerMemoryFeatureFlagBits
forall a. Int -> ReadPrec a -> ReadPrec a
prec 10 (do
                       Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident "PeerMemoryFeatureFlagBits")
                       Flags
v <- ReadPrec Flags -> ReadPrec Flags
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Flags
forall a. Read a => ReadPrec a
readPrec
                       PeerMemoryFeatureFlagBits -> ReadPrec PeerMemoryFeatureFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Flags -> PeerMemoryFeatureFlagBits
PeerMemoryFeatureFlagBits Flags
v)))