Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- req :: QuasiQuoter
- reqs :: QuasiQuoter
Documentation
req :: QuasiQuoter Source #
Parse a requirement and produce an appropriate DeviceRequirement
DeviceVersionRequirement
s are specified by in the form
major.minor[.patch]
DeviceFeatureRequirement
s are specified in the form name.<member
name>
and produce a RequireDeviceFeature
which checks and sets this
feature.
DevicePropertyRequirement
s are specified like feature requirements except
with an additional description of the constraint. This may be any of
myFunctionName
: To check with an in-scope function taking the property type and returningBool
> 123
: To indicate a minimum bound on a integral property>= 123
: To indicate an inclusive minimum bound on a integral property& SOMETHING_BIT
: To indicate that the specified bit must be present in the bitmask value
DeviceExtensionRequirement
s are specified in the form name
version
. name
must start with VK_
. The version
will be compared against the specVersion
field of the
ExtensionProperties
record.
- Names may be qualified.
- The separator between the type and member can be any of
.
::
:
->
or any amount of space
>>>
let r = [req|PhysicalDeviceRayTracingPipelineFeaturesKHR.rayTracingPipeline|]
>>>
featureName r
"PhysicalDeviceRayTracingPipelineFeaturesKHR.rayTracingPipeline"
>>>
let r = [req|PhysicalDeviceVulkan11Features.multiview|]
>>>
featureName r
"PhysicalDeviceVulkan11Features.multiview"
>>>
let r = [reqs| PhysicalDeviceTimelineSemaphoreFeatures.timelineSemaphore |]
>>>
featureName <$> r
["PhysicalDeviceTimelineSemaphoreFeatures.timelineSemaphore"]
>>>
let r = [req|PhysicalDeviceMultiviewFeatures.doesn'tExist|]
... • Couldn't find member "doesn'tExist" in Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewFeatures ...
>>>
let r = [req|Doesn'tExist.multiview|]
... • Couldn't find type name "Doesn'tExist" ...
>>>
let r = [req|Either.multiview|]
... • Data.Either.Either doesn't seem to be the type of a record constructor ...
reqs :: QuasiQuoter Source #
Like reqs
except that this parses a list of newline separated
requirements
It ignores
- Blank lines
- Lines beginning with
--
or#