Add Entity::new_with_tags()
and Entity::tag()
#1402
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.
Description of changes
Adds public methods
Entity::new_with_tags()
andEntity::tag()
as discussed in #1374.Discussion points:
new_with_tags()
more generic than the existingEntity::new()
; we can take anyIntoIterator
for theattrs
andparents
parameters, there's no reason we need to force callers to haveHashMap
andHashSet
specifically. Theoretically I believe we could adjust theEntity::new()
signature in the same way without breaking semver if we wanted to keep these aligned.String
for attribute and tag names; the implementation immediately converts toSmolStr
anyway, so we could take anyToSmolStr
for instance. I haven't made that change in the current version of this PR because I'm not sure how much we want to keepSmolStr
and related types/functions as an implementation detail.Issue #, if available
Fixes #1374
Checklist for requesting a review
The change in this PR is (choose one, and delete the other options):
cedar-policy
(e.g., addition of a new API).I confirm that this PR (choose one, and delete the other options):
I confirm that
cedar-spec
(choose one, and delete the other options):I confirm that
docs.cedarpolicy.com
(choose one, and delete the other options):