Merged
Conversation
8 tasks
NathaelB
requested changes
Feb 9, 2026
Replace async_trait-based async fns with impl Future return types in traits and implementations. Update mocks and tests to return Box::pin futures, use Arc for shared test data, and add a HeraldServiceTestBuilder helper. Derive Clone for HeraldError and remove async-trait from Cargo.toml and Cargo.lock
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This pull request restructures and modernizes the
aether-herald-coredomain module, primarily by grouping related entities into a newentitiesmodule, updating trait definitions to use the standard library'sFutureinstead of theasync-traitcrate, and making several related code and dependency updates. These changes improve code organization, testability, and future compatibility.Domain module restructuring and code organization:
action,dataplane,deployment, andshardmodules into a newentitiesmodule, and updated imports throughout the codebase to referenceentities::*instead of the previous flat structure. [1] [2] [3]Async trait modernization and testability:
async-traitcrate with direct use ofimpl Futurein trait method signatures forHeraldService,ControlPlaneRepository, andMessageBusRepository. This also introduces#[cfg_attr(test, mockall::automock)]to enable easier mocking in tests.async-traitdependency fromCargo.tomland addedtokioas a dev-dependency for async testing. [1] [2]Error handling improvements:
HeraldErrorenumClonein addition toDebugandError, enabling easier error propagation and handling.Minor code and test updates:
ActiontoActionEventto use a more concise assignment.preferred_usernamefromStringtoOption<String>in test stubs and assertions to better reflect possible nullability in user data. [1] [2] [3]