fix!: consume BeatmapAttributesBuilder on build #23
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.
Turns out #22 was only a band-aid for an underlying issue.
Passing a
Beatmap
toBeatmapAttributesBuilder
would make the builder hold onto it even afterbuild
is called, meaning the map would still be marked as used. This is becausebuild
does not consume the builder to allow for re-use.This PR makes
build
take ownership of the builder, causing future interactions with that same builder instance to fail with"null pointer passed to rust"
. Since ownership is taken, returning frombuild
will dropself
and all its fields, including the beatmap, causing it to no longer be marked as used.Until a version containing this fix is released (which will be
v2.0.0
), there is an available workaround:BeatmapAttributesBuilder
and storing it in a variable.build()
on that variable