package peerstream_multiplex import ( "context" "github.com/libp2p/go-libp2p-core/mux" mp "github.com/libp2p/go-mplex" ) type conn mp.Multiplex func (c *conn) Close() error { return c.mplex().Close() } func (c *conn) IsClosed() bool { return c.mplex().IsClosed() } // OpenStream creates a new stream. func (c *conn) OpenStream(ctx context.Context) (mux.MuxedStream, error) { s, err := c.mplex().NewStream(ctx) if err != nil { return nil, err } return (*stream)(s), nil } // AcceptStream accepts a stream opened by the other side. func (c *conn) AcceptStream() (mux.MuxedStream, error) { s, err := c.mplex().Accept() if err != nil { return nil, err } return (*stream)(s), nil } func (c *conn) mplex() *mp.Multiplex { return (*mp.Multiplex)(c) } var _ mux.MuxedConn = &conn{}