package yamux

import (
	

	

	
)

// conn implements mux.MuxedConn over yamux.Session.
type conn yamux.Session

var _ network.MuxedConn = &conn{}

// NewMuxedConn constructs a new MuxedConn from a yamux.Session.
func ( *yamux.Session) network.MuxedConn {
	return (*conn)()
}

// Close closes underlying yamux
func ( *conn) () error {
	return .yamux().Close()
}

func ( *conn) ( network.ConnErrorCode) error {
	return .yamux().CloseWithError(uint32())
}

// IsClosed checks if yamux.Session is in closed state.
func ( *conn) () bool {
	return .yamux().IsClosed()
}

// OpenStream creates a new stream.
func ( *conn) ( context.Context) (network.MuxedStream, error) {
	,  := .yamux().OpenStream()
	if  != nil {
		return nil, parseError()
	}

	return (*stream)(), nil
}

// AcceptStream accepts a stream opened by the other side.
func ( *conn) () (network.MuxedStream, error) {
	,  := .yamux().AcceptStream()
	return (*stream)(), parseError()
}

func ( *conn) () *yamux.Session {
	return (*yamux.Session)()
}