Add macros package and the with_components macro #1282
Draft
+1,394
−0
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.
Quickstart #1258
NOTE: A summary of the features included in the macro is added below after the example:
Example:
Simplifies this:
Into this:
Summary of features:
IT DOES:
use openzeppelin_access::ownable::OwnableComponent;
)component!(path: OwnableComponent, storage: ownable, event: OwnableEvent);
).impl OwnableInternalImpl = OwnableComponent::InternalImpl<ContractState>;
)ownable: OwnableComponent::Storage,
)IT DOES NOT:
Things to be considered still:
openzeppelin_access
vsopenzeppelin::access
in use clauses (configurable notation?)Some may be addressed in different PRs/issues.
NOTE: I have plans to include a
with_component
macro which will accept only a single component but more configuration, like replacing the storage entry. People then may use both macros together (with_components
andwith_component
)PR Checklist