refactor: Remove clone trait from key and SNARK structs #268
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.
Summary
We've been a bit loose in allowing macro-derived Clone implementations in spartan SNARK structures. This removes the unused ones, and checks that we won't re-introduce these Clone implementations in the future for structs where this will not make sense (
ProverKey
,VerifierKey
,SNARK
).Details
Clone
trait from various structs across multiple files, includingProverKey
,VerifierKey
, and multiple versions ofRelaxedR1CSSNARK
andBatchedRelaxedR1CSSNARK
, among others.Clone
trait is not implemented for previously mentioned structs where Clone will not make sense.static_assertions
dependency to the project configuration file, Cargo.toml.