aboutsummaryrefslogtreecommitdiff
path: root/vendor/curl/curl_header.odin
blob: c90f9b30bfc904ea3e439919a31c0a17fbe81cc5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package vendor_curl

import c "core:c/libc"


header :: struct {
	name:   cstring,  /* this might not use the same case */
	value:  cstring,
	amount: c.size_t, /* number of headers using this name  */
	index:  c.size_t, /* ... of this instance, 0 or higher */
	origin: header_origin_bits, /* see bits below */
	anchor: rawptr,   /* handle privately used by libcurl */
}

header_origin_bits :: distinct bit_set[header_origin_bit; c.uint]
/* 'origin' bits */
header_origin_bit :: enum c.uint {
	H_HEADER  = 0, /* plain server header */
	H_TRAILER = 1, /* trailers */
	H_CONNECT = 2, /* CONNECT headers */
	H_1XX     = 3, /* 1xx headers */
	H_PSEUDO  = 4, /* pseudo headers */
}

H_HEADER  :: header_origin_bits{.H_HEADER} /* plain server header */
H_TRAILER :: header_origin_bits{.H_TRAILER} /* trailers */
H_CONNECT :: header_origin_bits{.H_CONNECT} /* CONNECT headers */
H_1XX     :: header_origin_bits{.H_1XX} /* 1xx headers */
H_PSEUDO  :: header_origin_bits{.H_PSEUDO} /* pseudo headers */

Hcode :: enum c.int {
	E_OK,
	E_BADINDEX,      /* header exists but not with this index */
	E_MISSING,       /* no such header exists */
	E_NOHEADERS,     /* no headers at all exist (yet) */
	E_NOREQUEST,     /* no request with this number was used */
	E_OUT_OF_MEMORY, /* out of memory while processing */
	E_BAD_ARGUMENT,  /* a function argument was not okay */
	E_NOT_BUILT_IN,  /* if API was disabled in the build */
}

@(default_calling_convention="c", link_prefix="curl_")
foreign lib {
	easy_header :: proc(easy:    ^CURL,
	                    name:    cstring,
	                    index:   c.size_t,
	                    origin:  c.uint,
	                    request: c.int,
	                    hout:    ^^header) -> Hcode ---

	easy_nextheader :: proc(easy:    ^CURL,
	                        origin:  c.uint,
	                        request: c.int,
	                        prev:    ^header) -> ^header ---
}