private TcpConnectionConnector(IBandwidthLimiter senderBandwidthLimiter, IBandwidthLimiter receiverBandwidthLimiter, ISocks5ProxyClientFactory socks5ProxyClientFactory, IHttpProxyClientFactory httpProxyClientFactory, IBatchActionDispatcher batchActionDispatcher, IBytesPool bytesPool, TcpConnectionConnectorOptions options)
 {
     _senderBandwidthLimiter   = senderBandwidthLimiter;
     _receiverBandwidthLimiter = receiverBandwidthLimiter;
     _socks5ProxyClientFactory = socks5ProxyClientFactory;
     _httpProxyClientFactory   = httpProxyClientFactory;
     _batchActionDispatcher    = batchActionDispatcher;
     _bytesPool = bytesPool;
     _options   = options;
 }
    public static async ValueTask <TcpConnectionConnector> CreateAsync(IBandwidthLimiter senderBandwidthLimiter, IBandwidthLimiter receiverBandwidthLimiter, ISocks5ProxyClientFactory socks5ProxyClientFactory, IHttpProxyClientFactory httpProxyClientFactory, IBatchActionDispatcher batchActionDispatcher, IBytesPool bytesPool, TcpConnectionConnectorOptions options, CancellationToken cancellationToken = default)
    {
        var tcpConnectionConnector = new TcpConnectionConnector(senderBandwidthLimiter, receiverBandwidthLimiter, socks5ProxyClientFactory, httpProxyClientFactory, batchActionDispatcher, bytesPool, options);

        return(tcpConnectionConnector);
    }