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.
I started doing this as part of #6762, but since this refactoring is a self-contained change, I figured I'd split it into its own PR.
Two primary changes:
event_dispatcher.rsinto multiple files to make it easier to work with, andEventObserverinto a "dumb" struct that contains nothing more than the actual subscriber information and has no functionality of its own, with theEventDispatcherbeing the one doing the real work.I would strongly suggest reviewing commit-by-commit.
The individual commits are structured so that the largely mechanical changes (like moving code from one file to another) can be more quickly verified by diffing the code that was remove from one file with the corresponding code that was added to another. Also take not of the individual commit messages.