-
Notifications
You must be signed in to change notification settings - Fork 0
Feature/code cleanup rust v2 #49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
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
- Removed deprecated methods from `ActorSystemCoreExt` and `ActorSystemAdvancedExt` to simplify the API. - Consolidated actor spawning logic into a single internal method, enhancing clarity and reducing redundancy. - Updated usage of actor spawning in tests and examples to utilize the new builder pattern for improved readability and maintainability. - Adjusted imports and module structure for better organization and consistency across the codebase.
…ptions - Simplified the handling of lazy actor references by delegating message sending to resolved references, reducing complexity and avoiding recursion. - Introduced a new `Format` enum for message serialization, supporting binary and JSON formats, with auto-detection capabilities for improved flexibility. - Updated the `SpawnOptions` and `ResolveOptions` structures to utilize default constructors, enhancing code clarity and consistency. - Improved error handling in the `SpawnBuilder` for actor name validation, ensuring clearer feedback on invalid paths. - Adjusted documentation and examples to reflect the new default options and serialization methods.
- Updated the ActorLifecycle struct to replace string-based identifiers with ActorId for both watchers and targets, enhancing type safety and consistency. - Modified watch and unwatch methods to accept ActorId parameters, streamlining the registration and removal of watchers. - Adjusted related methods and tests to reflect the new ActorId usage, ensuring proper functionality and improved clarity in actor relationships. - Enhanced logging to utilize ActorId for better traceability during watch operations.
- Introduced UUID-based ActorId and NodeId, replacing previous numeric identifiers for improved uniqueness and traceability. - Updated ActorAddress to support new UUID format, ensuring backward compatibility with legacy formats. - Refactored tests and system components to utilize the new ActorId structure, enhancing clarity and consistency across the codebase. - Added `uuid` dependency to the project for UUID generation and handling. - Modified Justfile to include necessary build dependencies for Python and C++ integration.
- Introduced SystemActorProxy and PythonActorServiceProxy for direct method calls, improving interaction with system and service actors. - Refactored BucketStorage and TopicBroker to utilize remote method support, streamlining actor communication. - Updated tests to validate new proxy methods and ensure proper functionality across various scenarios. - Enhanced message serialization and error handling for improved robustness and clarity in actor interactions.
… handling - Converted StorageManager from an Actor to a remote class, enabling direct method calls. - Replaced message-based communication with explicit method calls for bucket and topic management. - Updated related methods to enhance clarity and maintainability, including get_bucket, get_topic, list_buckets, and get_stats. - Adjusted tests to validate the new proxy method interactions, ensuring proper functionality across scenarios.
- Unified error handling by introducing a clear hierarchy of error types, including `PulsingError`, `RuntimeError`, and `ActorError`. - Updated the `PulsingError` enum to categorize errors into `RuntimeError` for framework-level issues and `ActorError` for user-defined execution errors. - Refactored error conversion logic to ensure seamless integration between Rust and Python, allowing for better error classification and handling. - Enhanced error messages for clarity and consistency across the system, improving debugging and user feedback. - Updated tests to validate the new error handling mechanisms and ensure proper functionality across various scenarios.
Signed-off-by: Reiase <reiase@gmail.com>
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.
Overview:
Details:
Where should the reviewer start?
Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)