ivory-0.1.0.9: Safe embedded C programming.

Safe HaskellNone
LanguageHaskell2010

Ivory.Language.Struct

Contents

Synopsis

Documentation

newtype StructDef (sym :: Symbol) Source #

Constructors

StructDef 

Fields

type family StructName (a :: Area *) :: Symbol Source #

Instances
type StructName (Struct sym :: Area Type) Source # 
Instance details

Defined in Ivory.Language.Struct

type StructName (Struct sym :: Area Type) = sym

class (IvoryArea (Struct sym), ASymbol sym) => IvoryStruct (sym :: Symbol) where Source #

Methods

structDef :: StructDef sym Source #

newtype Label (sym :: Symbol) (field :: Area *) Source #

Struct field labels.

Constructors

Label 

Fields

Instances
Eq (Label sym field) Source # 
Instance details

Defined in Ivory.Language.Struct

Methods

(==) :: Label sym field -> Label sym field -> Bool #

(/=) :: Label sym field -> Label sym field -> Bool #

(~>) :: forall ref s sym field. (IvoryStruct sym, IvoryRef ref, IvoryExpr (ref s (Struct sym)), IvoryExpr (ref s field)) => ref s (Struct sym) -> Label sym field -> ref s field Source #

Label indexing in a structure.

Orphan instances

(IvoryStruct sym, ASymbol sym) => IvoryArea (Struct sym :: Area Type) Source # 
Instance details

Methods

ivoryArea :: Proxy (Struct sym) -> Type0 Source #