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 PR allows users to costruct a new
Telnet
object without having to implicitly use aTcpStream
. This is to allow users to provide their own streams which is useful if they want to, for example, unit test code that interacts with Telnet, or wrap their TcpStream in TLS.This is accomplished by introducing a new trait
Stream
which isRead + Write
and captures the interface fromTcpStream
implicitly used by theTelnet
client. The cost of this is thatstream
we now use dynamic dispatch to interact with the stream.This could be avoided by making
Telnet
generic over the type ofstream
but this would change the external interface.