Refactor storage interface and mysql implementation #131
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR makes two main changes:
build_azks) from theStoragetrait toDbRecord. This is so thatDbRecordcan build structs without knowledge of the specificStorageimplementor.MySqlStorabletrait and impl into its own module. The idea is to separate the logic for the storage API and database handling (e.g. connection setup) from the struct handling logic (e.g. row deserialization). The separation is still not fully complete in this PR and some struct-specific logic is still left in the implementor ofStorage, but this is a start.Note: Since this PR changes logic and moves code across files, it'll be easier to review commit-by-commit rather than as a combined hunk.