The executor methods to invoke functions have different return types which could lead to confusion for users.
The async methods return a std::future, with the int representing the error code.
The execute methods return either:
- a tuple with a boolean and int, to indicate success and output buffer size
- a single boolean to indicate success
The return types could be unified to always return a tuple with a boolean as a success code and an integer for output buffer size.