&str
-based FromSql
impls for firewall/route types
#8303
Merged
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.
A few types (target & filter specifications, ranges) associated with firewall rules and routes rely on a custom string-based representation in CRDB. However, when deserializing them today we end up cycling through
PgValue
->String
->ParsedEnumType
, needlessly allocating and copying strings per element. This PR prevents us from doing so by generating theseimpl
s for any type which implements the existingDatabaseString
trait.While there are more types in
nexus-db-model
usingFromSql<Text, _>
, most seem to make use of aString
internally regardless, so there's no immediate benefit (other than consistency) in changing them up at this time.Motivated by some of the discussion in #8194.