func NewDialer(p peer.ID, pk ci.PrivKey, wrap ConnWrapper) *Dialer {
	return &Dialer{
		LocalPeer:  p,
		PrivateKey: pk,
		Wrapper:    wrap,
		fallback:   new(transport.FallbackDialer),
	}
}
func NewDialer(p peer.ID, pk ci.PrivKey, wrap ConnWrapper) *Dialer {
	return &Dialer{
		LocalPeer:  p,
		PrivateKey: pk,
		Wrapper:    wrap,
		fallback:   new(transport.FallbackDialer),
	}
}
func NewDialer ( p peer . ID , pk ci . PrivKey , wrap ConnWrapper ) * Dialer { return & Dialer { LocalPeer : p , PrivateKey : pk , Wrapper : wrap , fallback : new ( transport . FallbackDialer ) , } }
// NewDialer creates a new Dialer object.
//
// Before any calls to Dial are made, underlying dialers must be added
// with AddDialer, and Protector (if any) must be set.
NewDialer creates a new Dialer object . Before any calls to Dial are made underlying dialers must be added with AddDialer and Protector ( if any ) must be set .