Draft: WIP: Replace string UUID with structural UUID
Status
-
For each API call making use of a UUID we need to examine what form of the UUID it expects, whether with or without dashes, and then encode that into the string-serialization. The forDisplay
andforAPI
abstraction may fail here and we might need to rework the names. -
There are a couple places where non-UUID string values are currently conflated into the Uuid
type. These need to be refactored, likely turned into parsing-into-a-Union-type, in separate preliminary PRs.
It came to my attention that much of this refactor could occur as a preliminary step by creating the Uuid
module while retaining the existing String
type. If refactored to perform this change first we could split a lot of incidental details, such as changing which functions and types are imported into a module, from those logical or structural changes, such as those requiring calls to stringify a UUID.
Overview
Resolves #595
Alternative to !554 (closed) (from feedback to update the UUID library)
Replaces String
type for UUIDs throughout app with new opaque Uuid
type.
How to Test
Smoke-test the app. Things break. This isn't finished.
Screenshots
This is neither a functional nor visual change. As a refactor it should produce no change in the app's behavior.