Add anyhow-inspired error utilities #1052
Merged
+291
−0
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 adds a set of ergonomic error handling utilities to the
src/hyperlight_guest/src/error.rsmodule, making it easier to attach context and custom error codes to errors in guest code. The changes include a new trait for contextual error conversion, implementations forOptionandResult, two macros for concise error handling, and comprehensive unit tests to ensure correct behavior.Error handling improvements:
GuestErrorContexttrait, which allows attaching context and error codes toOptionandResulttypes, making it easier to convert them into rich error types (HyperlightGuestError).GuestErrorContextfor bothOption<T>andResult<T, E>, enabling context-aware error conversion for these types.Convenience macros for error handling:
bail!macro to immediately return an error with a message and optional error code, and theensure!macro to assert conditions and return errors if the condition fails.Testing and validation: