Provide blanket implementations for ClientHandler and ServerHandler traits #609
+347
−1
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.
Adds blanket implementations for
Box<T>andArc<T>whenTimplementsClientHandlerorServerHandler.Motivation and Context
When building an MCP service, we may want to wrap it in a smart pointer before passing it into the tower service constructor. In my case, I want to spawn a background thread to do some work using some session state as requests are processed. However, introducing the
Arcresults in a compilation error:How Has This Been Tested?
Added integration tests and confirmed this fixes the compilation error in my project.
Breaking Changes
I believe adding blanket implementations of this kind is typically considered a breaking change, although it should be a no-op for most users.
Types of changes
Checklist
Additional context
I omitted blanket implementations for
&Tand&mut Tdue to the'staticbound on the traits, and I omittedRc<T>due to theSyncbound.