gio: add methods for returning and propagating boolean and int in/from a Task
#1762
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.
When using Rust we prefer to use a
Value
for everything but gio also lets you return explicitly agboolean
orgssize
which avoid boxing.Usage of these functions to return these kinds of values requires a call to the corresponding propagate function and you cannot mix them. Trying to extract a
Value
when either of them were used leads to an incorrect value.Expose methods in
Task
andLocalTask
to return and propagate these kinds instead of assuming everything can go through aValue
.Given that you must match the result setter with its setter or you might get a nonsense result, and worse, without the
v2_64
feature flag, you can segfault or read the wrong memory, I've also marked the getters asunsafe
. I wasn't sure about marking the setters as unsafe, as they themselves aren't doing anything bad (though for one of them they'll be unsafe anyway because of cloning).This is meant to address #1730