def-enum — Defines a C enumeration.
Macro
def-enumname fields &key separator-string
nameA symbol that names the enumeration.
fieldsA list of field defintions. Each definition can be
a symbol or a list of two elements. Symbols get assigned a value of the
current counter which starts at 0 and
increments by 1 for each subsequent symbol. It the field definition is a list, the first position is the symbol and the second
position is the value to assign the the symbol. The current counter gets set
to 1+ this value.
separator-stringA string that governs the creation of constants. The
default is "#".
Declares a C enumeration. It generates constants with integer values for the elements of the enumeration. The symbols for the these constant
values are created by the concatenation of the
enumeration name, separator-string, and field symbol. Also creates
a foreign type with the name name of type
:int.
(def-enum abc (:a :b :c)) ;; Creates constants abc#a (1), abc#b (2), abc#c (3) and defines ;; the foreign type "abc" to be :int (def-enum efoo (:e1 (:e2 10) :e3) :separator-string "-") ;; Creates constants efoo-e1 (1), efoo-e2 (10), efoo-e3 (11) and defines ;; the foreign type efoo to be :int