feat: include insert error messages in GenerationFailure#93
Merged
Conversation
chris-martin
approved these changes
Jun 18, 2025
This adds `*Either` versions of our two insert functions in the frontend class, which return `Left String` errors, rather than `Nothing`s. We define the maybe and either versions in terms of each other, making this a backwards-compatible change, and use `MINIMAL` to ensure one or the other always gets defined. Then, we update our own instance to define either variants, with informative messages for the failing cases. Lastly, by using those either variants within the main loop, we can collect (at least the final) `Left` value and report it as part of the `GenerationFailure`. The new README test confirms it works and shows what such an exception will look like now. Fixes #17.
0553054 to
90f1621
Compare
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 adds
*Eitherversions of our two insert functions in the frontendclass, which return
Left Stringerrors, rather thanNothings.We define the maybe and either versions in terms of each other, making
this a backwards-compatible change, and use
MINIMALto ensure one orthe other always gets defined.
Then, we update our own instance to define either variants, with
informative messages for the failing cases.
Lastly, by using those either variants within the main loop, we can
collect (at least the final)
Leftvalue and report it as part of theGenerationFailure.The new README test confirms it works and shows what such an exception
will look like now.
Fixes #17.