refactor: Backwards compatible Encapsulate/Decapsulate/Join #272
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 changes
Multiaddr.Encapsulate
andMultiaddr.Decapsulate
to be able to accept either a Multiaddr or Component as before. This reduces the amount of breaking changes in v0.15. The downside is more complexity and introducing another Component pointer in NewComponent so that it just works with Encapsulate/Decapsulate/Join.We may also be able to get rid of the
.Empty
check and have folks check against nil as before. Note that this should avoid the original problems in v0.14 as we aren't behind an interface. It does however make it possible to hit a nil pointer panic where you couldn't before as you didn't have a pointer to begin with.This would obviate the need for these changes: