refactor: Move to new FFI combined interaction model #414
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.
The previous FFI separated sync and async interactions and so the API of PactNet reflected this. The new FFI, particularly in specification v4, brings these two back together as a single unified 'interaction' and so the API of PactNet can now reflect this also.
This means that MessagePactHandle and MessageHandle are removed in favour of the existing PactHandle and InteractionHandle types, which were previously only used for synchronous interactions but now support asynchronous message interactions also.
In turn, this allowed the MockServer and MessageMockServer classes to be combined, with an internal API refactor to extract the common methods whilst keeping the sync- and async-specific methods separate.
The next stage will be to wrap the unsafe interop calls entirely within the new sync and async drivers so that the remainder of the code doesn't need to deal with unsafe primitives like PactHandle and InteractionHandle.
There are no breaking public API changes as part of this refactor, although there are some backwards-compatible deprecations.