The PackedOption<T> struct uses the same amount of memory as T, but can represent None via a reserved value.