#pragma once #ifdef EMSCRIPTEN # include # include # include # include // Libgit2 internals that we want to use so they are reproduced here in some form. // asserts # define GIT_ASSERT(expr) GIT_ASSERT_WITH_RETVAL(expr, -1) # define GIT_ASSERT_ARG(expr) GIT_ASSERT_ARG_WITH_RETVAL(expr, -1) # define GIT_ASSERT_WITH_RETVAL(expr, fail) \ GIT_ASSERT__WITH_RETVAL(expr, 0, "unrecoverable internal error", fail) # define GIT_ASSERT_ARG_WITH_RETVAL(expr, fail) GIT_ASSERT__WITH_RETVAL(expr, 0, "invalid argument", fail) # define GIT_ASSERT__WITH_RETVAL(expr, code, msg, fail) \ do \ { \ if (!(expr)) \ { \ git_error_set(code, "%s: '%s'", msg, #expr); \ return fail; \ } \ } while (0) // http status code, method and service. # define GIT_HTTP_STATUS_CONTINUE 100 # define GIT_HTTP_STATUS_OK 200 # define GIT_HTTP_MOVED_PERMANENTLY 301 # define GIT_HTTP_FOUND 302 # define GIT_HTTP_SEE_OTHER 303 # define GIT_HTTP_TEMPORARY_REDIRECT 307 # define GIT_HTTP_PERMANENT_REDIRECT 308 # define GIT_HTTP_STATUS_UNAUTHORIZED 401 # define GIT_HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED 407 typedef enum { GIT_HTTP_METHOD_GET, GIT_HTTP_METHOD_POST, GIT_HTTP_METHOD_CONNECT } git_http_method; typedef struct { git_http_method m_method; std::string m_url; std::string m_request_type; std::string m_response_type; unsigned int m_initial : 1, m_chunked : 1; } http_service; std::string name_for_method(git_http_method method); std::optional select_service(git_smart_service_t action); #endif // EMSCRIPTEN