vinyl-gl-0.2.0.1: Utilities for working with OpenGL's GLSL shading language and vinyl records.

Safe HaskellNone
LanguageHaskell2010

Data.Vinyl.Reflect

Description

Reflection utilities for vinyl records.

Synopsis

Documentation

class HasFieldNames a where Source

List all field names in a record.

Methods

fieldNames :: a -> [String] Source

Instances

class HasFieldSizes a where Source

Compute the size in bytes of of each field in a record.

Methods

fieldSizes :: a -> [Int] Source

Instances

class HasFieldDims a where Source

Compute the dimensionality of each field in a record. This is primarily useful for things like the small finite vector types provided by Linear.

Methods

fieldDims :: a -> [Int] Source

Instances

(HasFieldDims (PlainFieldRec ts), Foldable v, Num (v a)) => HasFieldDims (PlainFieldRec ((:) * ((:::) Symbol sy (v a)) ts)) 
HasFieldDims (FieldRec f ([] *))