Make enum type safe via struct instead of enum class