Motivation
As per #3238/files#r1050261660 Connection is a public enum variant with struct variants, any change to it becomes a subsequent breaking change.
Desired changes
Encapsulate that one into an Newtype that only exposes AsyncRead and AsyncWrite as its interface:
- Rename the type to
ConnectionState & make it private
- Create a struct
Connection as Newtype that encapsulates ConnectionState.
- Move the AsyncRead and AsyncWrite implementations from the enum to the struct
this depends on #3238 as it renames RelayedConnection to Connection and is itself a breaking change. Probably should also wait on the discussion started on #3221 (comment).
CC @thomaseizinger
Are you planning to do it yourself in a pull request?
Yes if required.