If an interface uses an enum type, it means that all implementations have to implement all specified enum values. It is possible to specify exceptions at the interface. Extending enums is incompatible . Naming Enum types begin with a capital letter and are put in studly caps. If there is a possible name-conflict with structs which use the same name, add Type or Style to the enum identifier.
Enum values are completely capitalized and words are seperated by underscores.
Do not use a version of the enum type as a prefix for the values, some language bindings will do that anyway. In this case, offer a method which returns a sequence of all possible values of this string. Definition Typedefs specify new names for existing types. Naming Typedefs begin with a capital letter and are put in studly caps. Structs Definition Structs are static collections of multiple values which belong to a single aspect and could be considered as a single, complex value.