Reflect

Enums

⚠️ TODO

Example

// integer based enum, implicitly converts to int
enum Fruit {
	apple,               // 0
	banana,              // 1
	orange,              // 2
	cherry = 10,         // 10
	raspberry            // 11
}

// other types can be used as the base type
enum Name: string {
	peter = "Peter",
	tom = "Tom",
	cloe = "Cloé"
}

// type based enum - values of this enum are
// represented internally as a tagged union
enum DatabaseField {
	fruit: Fruit,
	name: Name
}

var field = DatabaseField.fruit(Fruit.banana);
assert (field.isFruit);
assert (field.fruit == Fruit.banana)

switch (field) {
	case .fruit: print("Fruit: ", field.fruit);
	case .name: pring("Name: ", field.name);
}