use types::c; export type CURL = opaque; export type CURLcode = int; export type CURLINFO = int; export def CURLOPT_URL = 10002; export def CURLOPT_WRITEFUNCTION = 20011; export def CURLOPT_WRITEDATA = 10001; export def CURLINFO_LONG = 0x200000; export def CURLINFO_RESPONSE_CODE = CURLINFO_LONG + 2; export @symbol("curl_easy_init") fn curl_easy_init() nullable *CURL; export @symbol("curl_easy_cleanup") fn curl_easy_cleanup(handle: nullable *CURL) void; export type write_callback = fn(ptr: *c::char, sz: c::ssize, nmemb: c::ssize, userdata: *opaque) c::ssize; export @symbol("curl_easy_setopt") fn curl_easy_setopt( handle: nullable *CURL, option: int, parameter: const *c::char, ) CURLcode; export @symbol("curl_easy_setopt") fn curl_easy_setopt_writefunction( handle: nullable *CURL, option: int, parameter: *write_callback, ) CURLcode; export @symbol("curl_easy_setopt") fn curl_easy_setopt_writedata( handle: nullable *CURL, option: int, parameter: *opaque, ) CURLcode; //export @symbol("curl_easy_setopt") fn curl_easy_setopt( // handle: nullable *CURL, // option: int, // parameter: (const *c::char | nullable opaque) //) CURLcode; export @symbol("curl_easy_perform") fn curl_easy_perform(easy_handle: nullable *CURL) CURLcode; export @symbol("curl_easy_getinfo") fn curl_easy_getinfo( easy_handle: nullable *CURL, info: CURLINFO, code: nullable *c::long ) CURLcode;