An enumerated type is a data type consisting of an ordered list of values.
An enumerated type can be declared in a schema declaration using the following syntax:
scalar type Color extending enum<Red, Green, Blue>;
Enum values can then be accessed directly:
SELECT Color.Red IS Color;
Casting can be used to obtain an
enum value in an expression:
SELECT 'Red' IS Color;
SELECT <Color>'Red' IS Color;
SELECT <Color>'Red' = Color.Red;
The enum values in EdgeQL are string-like in the fact that they can contain any characters that the strings can. This is different from some other languages where enum values are identifier-like and thus cannot contain some characters. For example, when working with GraphQL enum values that contain characters that aren’t allowed in identifiers cannot be properly reflected. To address this, consider using only identifier-like enum values in cases where such compatibility is needed.