Release v0.10.0
Asio completion token support and thread-safe Session operations.
New features:
- Callback functions,
yield_context,use_awaitable, anduse_futurenow supported as completion tokens. - C++20 coroutines now supported
- Migrated from
AsyncResultto newErrorOrclass which better emulates the proposedstd::expected. Session's asynchonous operations now return anErrorOrresult when passed ayield_contextas the completion token.- Added
Sessionoverloads with theThreadSafetag type which can be called concurrently by multiple threads. - Added
Realm::captureAbort. Session'ssetWarningHandler,setTraceHandler,setStateChangeHandler, andsetChallengeHandlernow take effect immediately even when connected.- Users can bind custom executors to their handlers and
Sessionwill use them when executing those handlers. - Boost.Asio cancellation slot support for
Session::call. - Added
Rpc::withCancelModewhich specifies the cancel mode to use when triggered by Asio cancellation slots. - Added
withArgsTuple,convertToTupleandmoveToTupletoPayloadclass. - Added the
Defermenttag type (withdefermentconstexpr variable) to more conveniently return a deferredOutcome` from an RPC handler.