Skip to content

Encapsulate relay::client::Connection into an Newtype type that only exposes AsyncRead and AsyncWrite #3255

@jxs

Description

@jxs

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    difficulty:easygetting-startedIssues that can be tackled if you don't know the internals of libp2p very well

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions