Enums are a way to define different variants of a single type.
using :: you can access the Message variants within the scope of the enum.
enum constructors are technically functions, and can be useful once we start using iterators, and closures; to functions to functions, like when converting a vector of strings to a vector of Messages.