refactor(core): Remove lifetime parameter from Arguments trait #3960
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.
Arguments
trait by removing the lifetime parameterquery!
macro'sprintln!
similar usage to be enforced at compile time across allDatabase
implementations.Builds on #3958.
New commits with this pr are the last two:
refactor(core): Remove lifetime parameter from Arguments trait
refactor(core): Also relax lifetime of argument passed to Query::bind and Query::try_bind
Does your PR solve an issue?
No, but it standardizes that all argument buffers own their data, which means that we also standardize how references can be used when passing bind parameters to
query!
macros so it is similar to theprintln!
macro. Previous to #3957, only the Postgres and MySQL drivers allowed thequery!
macro to be similar to theprintln!
macro.This ensures the flexibility of the Postgres driver is also supported with other drivers by preventing the introduction of a lifetime constraint to their implementation-specific argument buffer containers.
Is this a breaking change?
Yes - removes lifetime argument on two traits that are a part of the public api (
Arguments
andArgumentBuffer
) and makes cascading changes to query related traits and theEncode
trait.