public HttpClient(model.HttpClientSetup __options = null)
        {
            if (__options == null)
            {
                this.options = new nac.CurlHttpClient.model.HttpClientSetup();
            }
            else
            {
                this.options = __options;
            }

            this.http = new nac.CurlHttpClient.LowLevel.http(this.options);
        }
        public static nac.CurlHttpClient.LowLevel.http create(Action <nac.CurlHttpClient.LowLevel.model.HttpSetup> onSetup = null)
        {
            var options = new nac.CurlHttpClient.LowLevel.model.HttpSetup()
            {
                onNewHttpResponse = (_curlResult) =>
                {
                    System.Diagnostics.Debug.WriteLine(_curlResult.ToString());
                }
            };

            onSetup?.Invoke(options);

            var http = new nac.CurlHttpClient.LowLevel.http(options);

            return(http);
        }