Skip to content

Commit b7fb275

Browse files
authored
Update enums.md
1 parent b736b80 commit b7fb275

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

graph/patterns/enums.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,3 +131,13 @@ With such enum, customers can select multiple values in a single field:
131131
`displayMethod = tip | alert`
132132

133133
In cases where two properties want to use the same *conceptual* `EnumType`, but one property is a collection while the other is single-values, the model should define *two* separate `EnumType`s, one being a non-flags enum with a singular name and the other marked as a flags enum with its name being the plural form of the non-flags enum.
134+
135+
#### Flag enum + non-flag enum
136+
137+
There are occasions where one API will want to use a non-flag enum, but another API will want a flags enum.
138+
For example, the `displayMethod` example above may have one API that is configuring which display methods to use, and another API which is configuring that particular display method.
139+
In this case, the first API will want a flags enum, but the second API will want to only allow configuring one display method at a time, and will therefore prefer a non-flags enum.
140+
141+
Two enum types should be defined, one as a flags enum and the other as a non-flags enum.
142+
The flags enum should be named such that it is plural, and the non-flags enum should be named such that it is singular.
143+
The two types should be kept in sync with each other.

0 commit comments

Comments
 (0)