HORIZON HASKELLDocslts/ghc-10.0.xfc4e5982026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · fc4e598 · 2026-10-11

Modulevulkan-3.27GHC2021

Vulkan.CStruct.Extends

  • 3 types
  • 3 classes
  • 6 values
  • Packagevulkan-3.27
  • Exports17
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceExtends.hs
datadata BaseOutStructure
#

VkBaseOutStructure - Base structure for a read-only pointer chain

Description

BaseOutStructure can be used to facilitate iterating through a structure pointer chain that returns data back to the application.

See Also

VK_VERSION_1_0, BaseOutStructure, StructureType, getPhysicalDeviceQueueFamilyDataGraphEngineOperationPropertiesARM, getPipelinePropertiesEXT

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
datadata BaseInStructure
#

VkBaseInStructure - Base structure for a read-only pointer chain

Description

BaseInStructure can be used to facilitate iterating through a read-only structure pointer chain.

See Also

VK_VERSION_1_0, BaseInStructure, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
familytype family Extends (a :: [Type] -> Type) b :: Constraint where
#

Equations

valuepokeSomeCStruct
  1. :: forall (es :: [Type]). (Extendss a es, PokeChain es) => ToCStruct (a es)
  2. => Ptr (SomeStruct a)

    Pointer to some memory at least the size of the head of the struct chain.

  3. -> SomeStruct a

    The struct to poke

  4. -> IO b

    Computation to run while the poked tail is valid

  5. -> IO b
#

Given some memory for the head of the chain, allocate and poke the tail and run an action.

classclass Extensible (a :: [Type] -> Type) where
#

Methods

Instances126Extensible, …
patternpattern (::&) :: Extensible a => a es' -> Chain es -> a es
#

A pattern synonym to separate the head of a struct chain from the tail, use in conjunction with :& to extract several members.

Head{..} ::& () <- returningNoTail a b c
-- Equivalent to
Head{..} <- returningNoTail @'[] a b c
Head{..} ::& Foo{..} :& Bar{..} :& () <- returningWithTail a b c
myFun (Head{..} :&& Foo{..} :& ())
patternpattern (:&) :: e -> Chain es -> Chain (e ': es)
#

View the head and tail of a Chain, see ::&

Equivalent to (,)