Skip to main content

Enums and Validation

Use enums when callers must choose from a known set of values. Use validation and clear errors when values are open-ended but constrained.

Enums​

Enums are useful for:

  • Environments.
  • Output formats.
  • Severity levels.
  • Deployment targets.
  • Package managers.
  • Runtime choices.

Enums teach valid choices through help output and generated clients. They also let invalid values fail before expensive work starts.

Validation​

Validation should be early, specific, and written in caller language.

Good validation:

  • Names the invalid input.
  • States the accepted shape.
  • Does not start expensive work first.
  • Avoids leaking secrets.
  • Preserves useful lower-level context.

Writing Assignment​

TODO: Add examples of values that should be enums, values that should stay strings, and values that need custom validation.