clay_layout/bindings/
bindings.rs

1/* automatically generated by rust-bindgen 0.71.1 */
2
3#[derive(PartialEq, Copy, Clone, Hash, Debug, Default)]
4#[repr(C)]
5pub struct __BindgenComplex<T> {
6    pub re: T,
7    pub im: T,
8}
9#[derive(PartialEq, Copy, Clone, Hash, Debug, Default)]
10#[repr(transparent)]
11pub struct __BindgenFloat16(pub u16);
12pub const _STDINT_H: u32 = 1;
13pub const _FEATURES_H: u32 = 1;
14pub const _DEFAULT_SOURCE: u32 = 1;
15pub const __GLIBC_USE_ISOC2Y: u32 = 0;
16pub const __GLIBC_USE_ISOC23: u32 = 0;
17pub const __USE_ISOC11: u32 = 1;
18pub const __USE_ISOC99: u32 = 1;
19pub const __USE_ISOC95: u32 = 1;
20pub const __USE_POSIX_IMPLICITLY: u32 = 1;
21pub const _POSIX_SOURCE: u32 = 1;
22pub const _POSIX_C_SOURCE: u32 = 200809;
23pub const __USE_POSIX: u32 = 1;
24pub const __USE_POSIX2: u32 = 1;
25pub const __USE_POSIX199309: u32 = 1;
26pub const __USE_POSIX199506: u32 = 1;
27pub const __USE_XOPEN2K: u32 = 1;
28pub const __USE_XOPEN2K8: u32 = 1;
29pub const _ATFILE_SOURCE: u32 = 1;
30pub const __WORDSIZE: u32 = 64;
31pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
32pub const __SYSCALL_WORDSIZE: u32 = 64;
33pub const __TIMESIZE: u32 = 64;
34pub const __USE_TIME_BITS64: u32 = 1;
35pub const __USE_MISC: u32 = 1;
36pub const __USE_ATFILE: u32 = 1;
37pub const __USE_FORTIFY_LEVEL: u32 = 0;
38pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
39pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
40pub const __GLIBC_USE_C23_STRTOL: u32 = 0;
41pub const _STDC_PREDEF_H: u32 = 1;
42pub const __STDC_IEC_559__: u32 = 1;
43pub const __STDC_IEC_60559_BFP__: u32 = 201404;
44pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
45pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404;
46pub const __STDC_ISO_10646__: u32 = 201706;
47pub const __GNU_LIBRARY__: u32 = 6;
48pub const __GLIBC__: u32 = 2;
49pub const __GLIBC_MINOR__: u32 = 41;
50pub const _SYS_CDEFS_H: u32 = 1;
51pub const __glibc_c99_flexarr_available: u32 = 1;
52pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0;
53pub const __HAVE_GENERIC_SELECTION: u32 = 1;
54pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
55pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
56pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23: u32 = 0;
57pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0;
58pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
59pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C23: u32 = 0;
60pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
61pub const _BITS_TYPES_H: u32 = 1;
62pub const _BITS_TYPESIZES_H: u32 = 1;
63pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
64pub const __INO_T_MATCHES_INO64_T: u32 = 1;
65pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
66pub const __STATFS_MATCHES_STATFS64: u32 = 1;
67pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1;
68pub const __FD_SETSIZE: u32 = 1024;
69pub const _BITS_TIME64_H: u32 = 1;
70pub const _BITS_WCHAR_H: u32 = 1;
71pub const _BITS_STDINT_INTN_H: u32 = 1;
72pub const _BITS_STDINT_UINTN_H: u32 = 1;
73pub const _BITS_STDINT_LEAST_H: u32 = 1;
74pub const INT8_MIN: i32 = -128;
75pub const INT16_MIN: i32 = -32768;
76pub const INT32_MIN: i32 = -2147483648;
77pub const INT8_MAX: u32 = 127;
78pub const INT16_MAX: u32 = 32767;
79pub const INT32_MAX: u32 = 2147483647;
80pub const UINT8_MAX: u32 = 255;
81pub const UINT16_MAX: u32 = 65535;
82pub const UINT32_MAX: u32 = 4294967295;
83pub const INT_LEAST8_MIN: i32 = -128;
84pub const INT_LEAST16_MIN: i32 = -32768;
85pub const INT_LEAST32_MIN: i32 = -2147483648;
86pub const INT_LEAST8_MAX: u32 = 127;
87pub const INT_LEAST16_MAX: u32 = 32767;
88pub const INT_LEAST32_MAX: u32 = 2147483647;
89pub const UINT_LEAST8_MAX: u32 = 255;
90pub const UINT_LEAST16_MAX: u32 = 65535;
91pub const UINT_LEAST32_MAX: u32 = 4294967295;
92pub const INT_FAST8_MIN: i32 = -128;
93pub const INT_FAST16_MIN: i64 = -9223372036854775808;
94pub const INT_FAST32_MIN: i64 = -9223372036854775808;
95pub const INT_FAST8_MAX: u32 = 127;
96pub const INT_FAST16_MAX: u64 = 9223372036854775807;
97pub const INT_FAST32_MAX: u64 = 9223372036854775807;
98pub const UINT_FAST8_MAX: u32 = 255;
99pub const UINT_FAST16_MAX: i32 = -1;
100pub const UINT_FAST32_MAX: i32 = -1;
101pub const INTPTR_MIN: i64 = -9223372036854775808;
102pub const INTPTR_MAX: u64 = 9223372036854775807;
103pub const UINTPTR_MAX: i32 = -1;
104pub const PTRDIFF_MIN: i64 = -9223372036854775808;
105pub const PTRDIFF_MAX: u64 = 9223372036854775807;
106pub const SIG_ATOMIC_MIN: i32 = -2147483648;
107pub const SIG_ATOMIC_MAX: u32 = 2147483647;
108pub const SIZE_MAX: i32 = -1;
109pub const WINT_MIN: u32 = 0;
110pub const WINT_MAX: u32 = 4294967295;
111pub const __bool_true_false_are_defined: u32 = 1;
112pub const true_: u32 = 1;
113pub const false_: u32 = 0;
114pub const WNOHANG: u32 = 1;
115pub const WUNTRACED: u32 = 2;
116pub const WSTOPPED: u32 = 2;
117pub const WEXITED: u32 = 4;
118pub const WCONTINUED: u32 = 8;
119pub const WNOWAIT: u32 = 16777216;
120pub const __WNOTHREAD: u32 = 536870912;
121pub const __WALL: u32 = 1073741824;
122pub const __WCLONE: u32 = 2147483648;
123pub const __W_CONTINUED: u32 = 65535;
124pub const __WCOREFLAG: u32 = 128;
125pub const __HAVE_FLOAT128: u32 = 1;
126pub const __HAVE_DISTINCT_FLOAT128: u32 = 1;
127pub const __HAVE_FLOAT64X: u32 = 1;
128pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1;
129pub const __HAVE_FLOAT16: u32 = 0;
130pub const __HAVE_FLOAT32: u32 = 1;
131pub const __HAVE_FLOAT64: u32 = 1;
132pub const __HAVE_FLOAT32X: u32 = 1;
133pub const __HAVE_FLOAT128X: u32 = 0;
134pub const __HAVE_DISTINCT_FLOAT16: u32 = 0;
135pub const __HAVE_DISTINCT_FLOAT32: u32 = 0;
136pub const __HAVE_DISTINCT_FLOAT64: u32 = 0;
137pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0;
138pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0;
139pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0;
140pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0;
141pub const _SYS_TYPES_H: u32 = 1;
142pub const __clock_t_defined: u32 = 1;
143pub const __clockid_t_defined: u32 = 1;
144pub const __time_t_defined: u32 = 1;
145pub const __timer_t_defined: u32 = 1;
146pub const __BIT_TYPES_DEFINED__: u32 = 1;
147pub const _ENDIAN_H: u32 = 1;
148pub const _BITS_ENDIAN_H: u32 = 1;
149pub const __LITTLE_ENDIAN: u32 = 1234;
150pub const __BIG_ENDIAN: u32 = 4321;
151pub const __PDP_ENDIAN: u32 = 3412;
152pub const _BITS_ENDIANNESS_H: u32 = 1;
153pub const __BYTE_ORDER: u32 = 1234;
154pub const __FLOAT_WORD_ORDER: u32 = 1234;
155pub const LITTLE_ENDIAN: u32 = 1234;
156pub const BIG_ENDIAN: u32 = 4321;
157pub const PDP_ENDIAN: u32 = 3412;
158pub const BYTE_ORDER: u32 = 1234;
159pub const _BITS_BYTESWAP_H: u32 = 1;
160pub const _BITS_UINTN_IDENTITY_H: u32 = 1;
161pub const _SYS_SELECT_H: u32 = 1;
162pub const __sigset_t_defined: u32 = 1;
163pub const __timeval_defined: u32 = 1;
164pub const _STRUCT_TIMESPEC: u32 = 1;
165pub const FD_SETSIZE: u32 = 1024;
166pub const _THREAD_SHARED_TYPES_H: u32 = 1;
167pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1;
168pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1;
169pub const _ALLOCA_H: u32 = 1;
170pub const _MM_HINT_ET0: u32 = 7;
171pub const _MM_HINT_ET1: u32 = 6;
172pub const _MM_HINT_T0: u32 = 3;
173pub const _MM_HINT_T1: u32 = 2;
174pub const _MM_HINT_T2: u32 = 1;
175pub const _MM_HINT_NTA: u32 = 0;
176pub const _CMP_EQ_OQ: u32 = 0;
177pub const _CMP_LT_OS: u32 = 1;
178pub const _CMP_LE_OS: u32 = 2;
179pub const _CMP_UNORD_Q: u32 = 3;
180pub const _CMP_NEQ_UQ: u32 = 4;
181pub const _CMP_NLT_US: u32 = 5;
182pub const _CMP_NLE_US: u32 = 6;
183pub const _CMP_ORD_Q: u32 = 7;
184pub const _MM_EXCEPT_INVALID: u32 = 1;
185pub const _MM_EXCEPT_DENORM: u32 = 2;
186pub const _MM_EXCEPT_DIV_ZERO: u32 = 4;
187pub const _MM_EXCEPT_OVERFLOW: u32 = 8;
188pub const _MM_EXCEPT_UNDERFLOW: u32 = 16;
189pub const _MM_EXCEPT_INEXACT: u32 = 32;
190pub const _MM_EXCEPT_MASK: u32 = 63;
191pub const _MM_MASK_INVALID: u32 = 128;
192pub const _MM_MASK_DENORM: u32 = 256;
193pub const _MM_MASK_DIV_ZERO: u32 = 512;
194pub const _MM_MASK_OVERFLOW: u32 = 1024;
195pub const _MM_MASK_UNDERFLOW: u32 = 2048;
196pub const _MM_MASK_INEXACT: u32 = 4096;
197pub const _MM_MASK_MASK: u32 = 8064;
198pub const _MM_ROUND_NEAREST: u32 = 0;
199pub const _MM_ROUND_DOWN: u32 = 8192;
200pub const _MM_ROUND_UP: u32 = 16384;
201pub const _MM_ROUND_TOWARD_ZERO: u32 = 24576;
202pub const _MM_ROUND_MASK: u32 = 24576;
203pub const _MM_FLUSH_ZERO_MASK: u32 = 32768;
204pub const _MM_FLUSH_ZERO_ON: u32 = 32768;
205pub const _MM_FLUSH_ZERO_OFF: u32 = 0;
206pub const _MM_DENORMALS_ZERO_ON: u32 = 64;
207pub const _MM_DENORMALS_ZERO_OFF: u32 = 0;
208pub const _MM_DENORMALS_ZERO_MASK: u32 = 64;
209pub type __u_char = ::core::ffi::c_uchar;
210pub type __u_short = ::core::ffi::c_ushort;
211pub type __u_int = ::core::ffi::c_uint;
212pub type __u_long = ::core::ffi::c_ulong;
213pub type __int8_t = ::core::ffi::c_schar;
214pub type __uint8_t = ::core::ffi::c_uchar;
215pub type __int16_t = ::core::ffi::c_short;
216pub type __uint16_t = ::core::ffi::c_ushort;
217pub type __int32_t = ::core::ffi::c_int;
218pub type __uint32_t = ::core::ffi::c_uint;
219pub type __int64_t = ::core::ffi::c_long;
220pub type __uint64_t = ::core::ffi::c_ulong;
221pub type __int_least8_t = __int8_t;
222pub type __uint_least8_t = __uint8_t;
223pub type __int_least16_t = __int16_t;
224pub type __uint_least16_t = __uint16_t;
225pub type __int_least32_t = __int32_t;
226pub type __uint_least32_t = __uint32_t;
227pub type __int_least64_t = __int64_t;
228pub type __uint_least64_t = __uint64_t;
229pub type __quad_t = ::core::ffi::c_long;
230pub type __u_quad_t = ::core::ffi::c_ulong;
231pub type __intmax_t = ::core::ffi::c_long;
232pub type __uintmax_t = ::core::ffi::c_ulong;
233pub type __dev_t = ::core::ffi::c_ulong;
234pub type __uid_t = ::core::ffi::c_uint;
235pub type __gid_t = ::core::ffi::c_uint;
236pub type __ino_t = ::core::ffi::c_ulong;
237pub type __ino64_t = ::core::ffi::c_ulong;
238pub type __mode_t = ::core::ffi::c_uint;
239pub type __nlink_t = ::core::ffi::c_ulong;
240pub type __off_t = ::core::ffi::c_long;
241pub type __off64_t = ::core::ffi::c_long;
242pub type __pid_t = ::core::ffi::c_int;
243#[repr(C)]
244#[derive(Debug, Copy, Clone)]
245pub struct __fsid_t {
246    pub __val: [::core::ffi::c_int; 2usize],
247}
248pub type __clock_t = ::core::ffi::c_long;
249pub type __rlim_t = ::core::ffi::c_ulong;
250pub type __rlim64_t = ::core::ffi::c_ulong;
251pub type __id_t = ::core::ffi::c_uint;
252pub type __time_t = ::core::ffi::c_long;
253pub type __useconds_t = ::core::ffi::c_uint;
254pub type __suseconds_t = ::core::ffi::c_long;
255pub type __suseconds64_t = ::core::ffi::c_long;
256pub type __daddr_t = ::core::ffi::c_int;
257pub type __key_t = ::core::ffi::c_int;
258pub type __clockid_t = ::core::ffi::c_int;
259pub type __timer_t = *mut ::core::ffi::c_void;
260pub type __blksize_t = ::core::ffi::c_long;
261pub type __blkcnt_t = ::core::ffi::c_long;
262pub type __blkcnt64_t = ::core::ffi::c_long;
263pub type __fsblkcnt_t = ::core::ffi::c_ulong;
264pub type __fsblkcnt64_t = ::core::ffi::c_ulong;
265pub type __fsfilcnt_t = ::core::ffi::c_ulong;
266pub type __fsfilcnt64_t = ::core::ffi::c_ulong;
267pub type __fsword_t = ::core::ffi::c_long;
268pub type __ssize_t = ::core::ffi::c_long;
269pub type __syscall_slong_t = ::core::ffi::c_long;
270pub type __syscall_ulong_t = ::core::ffi::c_ulong;
271pub type __loff_t = __off64_t;
272pub type __caddr_t = *mut ::core::ffi::c_char;
273pub type __intptr_t = ::core::ffi::c_long;
274pub type __socklen_t = ::core::ffi::c_uint;
275pub type __sig_atomic_t = ::core::ffi::c_int;
276pub type int_least8_t = __int_least8_t;
277pub type int_least16_t = __int_least16_t;
278pub type int_least32_t = __int_least32_t;
279pub type int_least64_t = __int_least64_t;
280pub type uint_least8_t = __uint_least8_t;
281pub type uint_least16_t = __uint_least16_t;
282pub type uint_least32_t = __uint_least32_t;
283pub type uint_least64_t = __uint_least64_t;
284pub type int_fast8_t = ::core::ffi::c_schar;
285pub type int_fast16_t = ::core::ffi::c_long;
286pub type int_fast32_t = ::core::ffi::c_long;
287pub type int_fast64_t = ::core::ffi::c_long;
288pub type uint_fast8_t = ::core::ffi::c_uchar;
289pub type uint_fast16_t = ::core::ffi::c_ulong;
290pub type uint_fast32_t = ::core::ffi::c_ulong;
291pub type uint_fast64_t = ::core::ffi::c_ulong;
292pub type intmax_t = __intmax_t;
293pub type uintmax_t = __uintmax_t;
294pub type wchar_t = ::core::ffi::c_int;
295#[repr(C)]
296#[repr(align(16))]
297#[derive(Debug, Copy, Clone)]
298pub struct max_align_t {
299    pub __clang_max_align_nonce1: ::core::ffi::c_longlong,
300    pub __bindgen_padding_0: u64,
301    pub __clang_max_align_nonce2: u128,
302}
303pub type __m64 = [::core::ffi::c_longlong; 1usize];
304pub type __v1di = [::core::ffi::c_longlong; 1usize];
305pub type __v2si = [::core::ffi::c_int; 2usize];
306pub type __v4hi = [::core::ffi::c_short; 4usize];
307pub type __v8qi = [::core::ffi::c_char; 8usize];
308pub type __v4si = [::core::ffi::c_int; 4usize];
309pub type __v4sf = [f32; 4usize];
310pub type __m128 = [f32; 4usize];
311pub type __m128_u = [f32; 4usize];
312pub type __v4su = [::core::ffi::c_uint; 4usize];
313pub type __cfloat128 = __BindgenComplex<u128>;
314pub type _Float128 = u128;
315pub type _Float32 = f32;
316pub type _Float64 = f64;
317pub type _Float32x = f64;
318pub type _Float64x = u128;
319pub type u_char = __u_char;
320pub type u_short = __u_short;
321pub type u_int = __u_int;
322pub type u_long = __u_long;
323pub type quad_t = __quad_t;
324pub type u_quad_t = __u_quad_t;
325pub type fsid_t = __fsid_t;
326pub type loff_t = __loff_t;
327pub type ino_t = __ino_t;
328pub type dev_t = __dev_t;
329pub type gid_t = __gid_t;
330pub type mode_t = __mode_t;
331pub type nlink_t = __nlink_t;
332pub type uid_t = __uid_t;
333pub type off_t = __off_t;
334pub type pid_t = __pid_t;
335pub type id_t = __id_t;
336pub type daddr_t = __daddr_t;
337pub type caddr_t = __caddr_t;
338pub type key_t = __key_t;
339pub type clock_t = __clock_t;
340pub type clockid_t = __clockid_t;
341pub type time_t = __time_t;
342pub type timer_t = __timer_t;
343pub type ulong = ::core::ffi::c_ulong;
344pub type ushort = ::core::ffi::c_ushort;
345pub type uint = ::core::ffi::c_uint;
346pub type u_int8_t = __uint8_t;
347pub type u_int16_t = __uint16_t;
348pub type u_int32_t = __uint32_t;
349pub type u_int64_t = __uint64_t;
350pub type register_t = ::core::ffi::c_long;
351#[repr(C)]
352#[derive(Debug, Copy, Clone)]
353pub struct __sigset_t {
354    pub __val: [::core::ffi::c_ulong; 16usize],
355}
356pub type sigset_t = __sigset_t;
357#[repr(C)]
358#[derive(Debug, Copy, Clone)]
359pub struct timeval {
360    pub tv_sec: __time_t,
361    pub tv_usec: __suseconds_t,
362}
363#[repr(C)]
364#[derive(Debug, Copy, Clone)]
365pub struct timespec {
366    pub tv_sec: __time_t,
367    pub tv_nsec: __syscall_slong_t,
368}
369pub type suseconds_t = __suseconds_t;
370pub type __fd_mask = ::core::ffi::c_long;
371#[repr(C)]
372#[derive(Debug, Copy, Clone)]
373pub struct fd_set {
374    pub __fds_bits: [__fd_mask; 16usize],
375}
376pub type fd_mask = __fd_mask;
377unsafe extern "C" {
378    pub fn select(
379        __nfds: ::core::ffi::c_int,
380        __readfds: *mut fd_set,
381        __writefds: *mut fd_set,
382        __exceptfds: *mut fd_set,
383        __timeout: *mut timeval,
384    ) -> ::core::ffi::c_int;
385}
386unsafe extern "C" {
387    pub fn pselect(
388        __nfds: ::core::ffi::c_int,
389        __readfds: *mut fd_set,
390        __writefds: *mut fd_set,
391        __exceptfds: *mut fd_set,
392        __timeout: *const timespec,
393        __sigmask: *const __sigset_t,
394    ) -> ::core::ffi::c_int;
395}
396pub type blksize_t = __blksize_t;
397pub type blkcnt_t = __blkcnt_t;
398pub type fsblkcnt_t = __fsblkcnt_t;
399pub type fsfilcnt_t = __fsfilcnt_t;
400#[repr(C)]
401#[derive(Copy, Clone)]
402pub union __atomic_wide_counter {
403    pub __value64: ::core::ffi::c_ulonglong,
404    pub __value32: __atomic_wide_counter__bindgen_ty_1,
405}
406#[repr(C)]
407#[derive(Debug, Copy, Clone)]
408pub struct __atomic_wide_counter__bindgen_ty_1 {
409    pub __low: ::core::ffi::c_uint,
410    pub __high: ::core::ffi::c_uint,
411}
412#[repr(C)]
413#[derive(Debug, Copy, Clone)]
414pub struct __pthread_internal_list {
415    pub __prev: *mut __pthread_internal_list,
416    pub __next: *mut __pthread_internal_list,
417}
418pub type __pthread_list_t = __pthread_internal_list;
419#[repr(C)]
420#[derive(Debug, Copy, Clone)]
421pub struct __pthread_internal_slist {
422    pub __next: *mut __pthread_internal_slist,
423}
424pub type __pthread_slist_t = __pthread_internal_slist;
425#[repr(C)]
426#[derive(Debug, Copy, Clone)]
427pub struct __pthread_mutex_s {
428    pub __lock: ::core::ffi::c_int,
429    pub __count: ::core::ffi::c_uint,
430    pub __owner: ::core::ffi::c_int,
431    pub __nusers: ::core::ffi::c_uint,
432    pub __kind: ::core::ffi::c_int,
433    pub __spins: ::core::ffi::c_short,
434    pub __elision: ::core::ffi::c_short,
435    pub __list: __pthread_list_t,
436}
437#[repr(C)]
438#[derive(Debug, Copy, Clone)]
439pub struct __pthread_rwlock_arch_t {
440    pub __readers: ::core::ffi::c_uint,
441    pub __writers: ::core::ffi::c_uint,
442    pub __wrphase_futex: ::core::ffi::c_uint,
443    pub __writers_futex: ::core::ffi::c_uint,
444    pub __pad3: ::core::ffi::c_uint,
445    pub __pad4: ::core::ffi::c_uint,
446    pub __cur_writer: ::core::ffi::c_int,
447    pub __shared: ::core::ffi::c_int,
448    pub __rwelision: ::core::ffi::c_schar,
449    pub __pad1: [::core::ffi::c_uchar; 7usize],
450    pub __pad2: ::core::ffi::c_ulong,
451    pub __flags: ::core::ffi::c_uint,
452}
453#[repr(C)]
454#[derive(Copy, Clone)]
455pub struct __pthread_cond_s {
456    pub __wseq: __atomic_wide_counter,
457    pub __g1_start: __atomic_wide_counter,
458    pub __g_size: [::core::ffi::c_uint; 2usize],
459    pub __g1_orig_size: ::core::ffi::c_uint,
460    pub __wrefs: ::core::ffi::c_uint,
461    pub __g_signals: [::core::ffi::c_uint; 2usize],
462    pub __unused_initialized_1: ::core::ffi::c_uint,
463    pub __unused_initialized_2: ::core::ffi::c_uint,
464}
465pub type __tss_t = ::core::ffi::c_uint;
466pub type __thrd_t = ::core::ffi::c_ulong;
467#[repr(C)]
468#[derive(Debug, Copy, Clone)]
469pub struct __once_flag {
470    pub __data: ::core::ffi::c_int,
471}
472unsafe extern "C" {
473    pub fn alloca(__size: ::core::ffi::c_ulong) -> *mut ::core::ffi::c_void;
474}
475unsafe extern "C" {
476    pub fn posix_memalign(
477        __memptr: *mut *mut ::core::ffi::c_void,
478        __alignment: usize,
479        __size: usize,
480    ) -> ::core::ffi::c_int;
481}
482unsafe extern "C" {
483    pub fn _mm_sfence();
484}
485unsafe extern "C" {
486    pub fn _mm_getcsr() -> ::core::ffi::c_uint;
487}
488unsafe extern "C" {
489    pub fn _mm_setcsr(__i: ::core::ffi::c_uint);
490}
491pub type __m128d = [f64; 2usize];
492pub type __m128i = [::core::ffi::c_longlong; 2usize];
493pub type __m128d_u = [f64; 2usize];
494pub type __m128i_u = [::core::ffi::c_longlong; 2usize];
495pub type __v2df = [f64; 2usize];
496pub type __v2di = [::core::ffi::c_longlong; 2usize];
497pub type __v8hi = [::core::ffi::c_short; 8usize];
498pub type __v16qi = [::core::ffi::c_char; 16usize];
499pub type __v2du = [::core::ffi::c_ulonglong; 2usize];
500pub type __v8hu = [::core::ffi::c_ushort; 8usize];
501pub type __v16qu = [::core::ffi::c_uchar; 16usize];
502pub type __v16qs = [::core::ffi::c_schar; 16usize];
503pub type __v8hf = [__BindgenFloat16; 8usize];
504pub type __m128h = [__BindgenFloat16; 8usize];
505pub type __m128h_u = [__BindgenFloat16; 8usize];
506pub type __v8bf = u128;
507pub type __m128bh = u128;
508unsafe extern "C" {
509    pub fn _mm_clflush(__p: *const ::core::ffi::c_void);
510}
511unsafe extern "C" {
512    pub fn _mm_lfence();
513}
514unsafe extern "C" {
515    pub fn _mm_mfence();
516}
517unsafe extern "C" {
518    pub fn _mm_pause();
519}
520unsafe extern "C" {
521    pub static mut CLAY__ELEMENT_DEFINITION_LATCH: u8;
522}
523#[repr(C)]
524#[derive(Debug, Copy, Clone)]
525pub struct Clay_String {
526    pub isStaticallyAllocated: bool,
527    pub length: i32,
528    pub chars: *const ::core::ffi::c_char,
529}
530#[repr(C)]
531#[derive(Debug, Copy, Clone)]
532pub struct Clay_StringSlice {
533    pub length: i32,
534    pub chars: *const ::core::ffi::c_char,
535    pub baseChars: *const ::core::ffi::c_char,
536}
537#[repr(C)]
538#[derive(Debug, Copy, Clone)]
539pub struct Clay_Context {
540    _unused: [u8; 0],
541}
542#[repr(C)]
543#[derive(Debug, Copy, Clone)]
544pub struct Clay_Arena {
545    pub nextAllocation: usize,
546    pub capacity: usize,
547    pub memory: *mut ::core::ffi::c_char,
548}
549#[repr(C)]
550#[derive(Debug, Copy, Clone)]
551pub struct Clay_Dimensions {
552    pub width: f32,
553    pub height: f32,
554}
555#[repr(C)]
556#[derive(Debug, Copy, Clone)]
557pub struct Clay_Vector2 {
558    pub x: f32,
559    pub y: f32,
560}
561#[repr(C)]
562#[derive(Debug, Copy, Clone)]
563pub struct Clay_Color {
564    pub r: f32,
565    pub g: f32,
566    pub b: f32,
567    pub a: f32,
568}
569#[repr(C)]
570#[derive(Debug, Copy, Clone)]
571pub struct Clay_BoundingBox {
572    pub x: f32,
573    pub y: f32,
574    pub width: f32,
575    pub height: f32,
576}
577#[repr(C)]
578#[derive(Debug, Copy, Clone)]
579pub struct Clay_ElementId {
580    pub id: u32,
581    pub offset: u32,
582    pub baseId: u32,
583    pub stringId: Clay_String,
584}
585#[repr(C)]
586#[derive(Debug, Copy, Clone)]
587pub struct Clay_ElementIdArray {
588    pub capacity: i32,
589    pub length: i32,
590    pub internalArray: *mut Clay_ElementId,
591}
592#[repr(C)]
593#[derive(Debug, Copy, Clone)]
594pub struct Clay_CornerRadius {
595    pub topLeft: f32,
596    pub topRight: f32,
597    pub bottomLeft: f32,
598    pub bottomRight: f32,
599}
600pub const Clay_LayoutDirection_CLAY_LEFT_TO_RIGHT: Clay_LayoutDirection = 0;
601pub const Clay_LayoutDirection_CLAY_TOP_TO_BOTTOM: Clay_LayoutDirection = 1;
602pub type Clay_LayoutDirection = ::core::ffi::c_uchar;
603pub const Clay_LayoutAlignmentX_CLAY_ALIGN_X_LEFT: Clay_LayoutAlignmentX = 0;
604pub const Clay_LayoutAlignmentX_CLAY_ALIGN_X_RIGHT: Clay_LayoutAlignmentX = 1;
605pub const Clay_LayoutAlignmentX_CLAY_ALIGN_X_CENTER: Clay_LayoutAlignmentX = 2;
606pub type Clay_LayoutAlignmentX = ::core::ffi::c_uchar;
607pub const Clay_LayoutAlignmentY_CLAY_ALIGN_Y_TOP: Clay_LayoutAlignmentY = 0;
608pub const Clay_LayoutAlignmentY_CLAY_ALIGN_Y_BOTTOM: Clay_LayoutAlignmentY = 1;
609pub const Clay_LayoutAlignmentY_CLAY_ALIGN_Y_CENTER: Clay_LayoutAlignmentY = 2;
610pub type Clay_LayoutAlignmentY = ::core::ffi::c_uchar;
611pub const Clay__SizingType_CLAY__SIZING_TYPE_FIT: Clay__SizingType = 0;
612pub const Clay__SizingType_CLAY__SIZING_TYPE_GROW: Clay__SizingType = 1;
613pub const Clay__SizingType_CLAY__SIZING_TYPE_PERCENT: Clay__SizingType = 2;
614pub const Clay__SizingType_CLAY__SIZING_TYPE_FIXED: Clay__SizingType = 3;
615pub type Clay__SizingType = ::core::ffi::c_uchar;
616#[repr(C)]
617#[derive(Debug, Copy, Clone)]
618pub struct Clay_ChildAlignment {
619    pub x: Clay_LayoutAlignmentX,
620    pub y: Clay_LayoutAlignmentY,
621}
622#[repr(C)]
623#[derive(Debug, Copy, Clone)]
624pub struct Clay_SizingMinMax {
625    pub min: f32,
626    pub max: f32,
627}
628#[repr(C)]
629#[derive(Copy, Clone)]
630pub struct Clay_SizingAxis {
631    pub size: Clay_SizingAxis__bindgen_ty_1,
632    pub type_: Clay__SizingType,
633}
634#[repr(C)]
635#[derive(Copy, Clone)]
636pub union Clay_SizingAxis__bindgen_ty_1 {
637    pub minMax: Clay_SizingMinMax,
638    pub percent: f32,
639}
640#[repr(C)]
641#[derive(Copy, Clone)]
642pub struct Clay_Sizing {
643    pub width: Clay_SizingAxis,
644    pub height: Clay_SizingAxis,
645}
646#[repr(C)]
647#[derive(Debug, Copy, Clone)]
648pub struct Clay_Padding {
649    pub left: u16,
650    pub right: u16,
651    pub top: u16,
652    pub bottom: u16,
653}
654#[repr(C)]
655#[derive(Debug, Copy, Clone)]
656pub struct Clay__Clay_PaddingWrapper {
657    pub wrapped: Clay_Padding,
658}
659#[repr(C)]
660#[derive(Copy, Clone)]
661pub struct Clay_LayoutConfig {
662    pub sizing: Clay_Sizing,
663    pub padding: Clay_Padding,
664    pub childGap: u16,
665    pub childAlignment: Clay_ChildAlignment,
666    pub layoutDirection: Clay_LayoutDirection,
667}
668#[repr(C)]
669#[derive(Copy, Clone)]
670pub struct Clay__Clay_LayoutConfigWrapper {
671    pub wrapped: Clay_LayoutConfig,
672}
673unsafe extern "C" {
674    pub static mut CLAY_LAYOUT_DEFAULT: Clay_LayoutConfig;
675}
676pub const Clay_TextElementConfigWrapMode_CLAY_TEXT_WRAP_WORDS: Clay_TextElementConfigWrapMode = 0;
677pub const Clay_TextElementConfigWrapMode_CLAY_TEXT_WRAP_NEWLINES: Clay_TextElementConfigWrapMode =
678    1;
679pub const Clay_TextElementConfigWrapMode_CLAY_TEXT_WRAP_NONE: Clay_TextElementConfigWrapMode = 2;
680pub type Clay_TextElementConfigWrapMode = ::core::ffi::c_uchar;
681pub const Clay_TextAlignment_CLAY_TEXT_ALIGN_LEFT: Clay_TextAlignment = 0;
682pub const Clay_TextAlignment_CLAY_TEXT_ALIGN_CENTER: Clay_TextAlignment = 1;
683pub const Clay_TextAlignment_CLAY_TEXT_ALIGN_RIGHT: Clay_TextAlignment = 2;
684pub type Clay_TextAlignment = ::core::ffi::c_uchar;
685#[repr(C)]
686#[derive(Debug, Copy, Clone)]
687pub struct Clay_TextElementConfig {
688    pub userData: *mut ::core::ffi::c_void,
689    pub textColor: Clay_Color,
690    pub fontId: u16,
691    pub fontSize: u16,
692    pub letterSpacing: u16,
693    pub lineHeight: u16,
694    pub wrapMode: Clay_TextElementConfigWrapMode,
695    pub textAlignment: Clay_TextAlignment,
696}
697#[repr(C)]
698#[derive(Debug, Copy, Clone)]
699pub struct Clay__Clay_TextElementConfigWrapper {
700    pub wrapped: Clay_TextElementConfig,
701}
702#[repr(C)]
703#[derive(Debug, Copy, Clone)]
704pub struct Clay_AspectRatioElementConfig {
705    pub aspectRatio: f32,
706}
707#[repr(C)]
708#[derive(Debug, Copy, Clone)]
709pub struct Clay__Clay_AspectRatioElementConfigWrapper {
710    pub wrapped: Clay_AspectRatioElementConfig,
711}
712#[repr(C)]
713#[derive(Debug, Copy, Clone)]
714pub struct Clay_ImageElementConfig {
715    pub imageData: *mut ::core::ffi::c_void,
716}
717#[repr(C)]
718#[derive(Debug, Copy, Clone)]
719pub struct Clay__Clay_ImageElementConfigWrapper {
720    pub wrapped: Clay_ImageElementConfig,
721}
722pub const Clay_FloatingAttachPointType_CLAY_ATTACH_POINT_LEFT_TOP: Clay_FloatingAttachPointType = 0;
723pub const Clay_FloatingAttachPointType_CLAY_ATTACH_POINT_LEFT_CENTER: Clay_FloatingAttachPointType =
724    1;
725pub const Clay_FloatingAttachPointType_CLAY_ATTACH_POINT_LEFT_BOTTOM: Clay_FloatingAttachPointType =
726    2;
727pub const Clay_FloatingAttachPointType_CLAY_ATTACH_POINT_CENTER_TOP: Clay_FloatingAttachPointType =
728    3;
729pub const Clay_FloatingAttachPointType_CLAY_ATTACH_POINT_CENTER_CENTER:
730    Clay_FloatingAttachPointType = 4;
731pub const Clay_FloatingAttachPointType_CLAY_ATTACH_POINT_CENTER_BOTTOM:
732    Clay_FloatingAttachPointType = 5;
733pub const Clay_FloatingAttachPointType_CLAY_ATTACH_POINT_RIGHT_TOP: Clay_FloatingAttachPointType =
734    6;
735pub const Clay_FloatingAttachPointType_CLAY_ATTACH_POINT_RIGHT_CENTER:
736    Clay_FloatingAttachPointType = 7;
737pub const Clay_FloatingAttachPointType_CLAY_ATTACH_POINT_RIGHT_BOTTOM:
738    Clay_FloatingAttachPointType = 8;
739pub type Clay_FloatingAttachPointType = ::core::ffi::c_uchar;
740#[repr(C)]
741#[derive(Debug, Copy, Clone)]
742pub struct Clay_FloatingAttachPoints {
743    pub element: Clay_FloatingAttachPointType,
744    pub parent: Clay_FloatingAttachPointType,
745}
746pub const Clay_PointerCaptureMode_CLAY_POINTER_CAPTURE_MODE_CAPTURE: Clay_PointerCaptureMode = 0;
747pub const Clay_PointerCaptureMode_CLAY_POINTER_CAPTURE_MODE_PASSTHROUGH: Clay_PointerCaptureMode =
748    1;
749pub type Clay_PointerCaptureMode = ::core::ffi::c_uchar;
750pub const Clay_FloatingAttachToElement_CLAY_ATTACH_TO_NONE: Clay_FloatingAttachToElement = 0;
751pub const Clay_FloatingAttachToElement_CLAY_ATTACH_TO_PARENT: Clay_FloatingAttachToElement = 1;
752pub const Clay_FloatingAttachToElement_CLAY_ATTACH_TO_ELEMENT_WITH_ID:
753    Clay_FloatingAttachToElement = 2;
754pub const Clay_FloatingAttachToElement_CLAY_ATTACH_TO_ROOT: Clay_FloatingAttachToElement = 3;
755pub type Clay_FloatingAttachToElement = ::core::ffi::c_uchar;
756pub const Clay_FloatingClipToElement_CLAY_CLIP_TO_NONE: Clay_FloatingClipToElement = 0;
757pub const Clay_FloatingClipToElement_CLAY_CLIP_TO_ATTACHED_PARENT: Clay_FloatingClipToElement = 1;
758pub type Clay_FloatingClipToElement = ::core::ffi::c_uchar;
759#[repr(C)]
760#[derive(Debug, Copy, Clone)]
761pub struct Clay_FloatingElementConfig {
762    pub offset: Clay_Vector2,
763    pub expand: Clay_Dimensions,
764    pub parentId: u32,
765    pub zIndex: i16,
766    pub attachPoints: Clay_FloatingAttachPoints,
767    pub pointerCaptureMode: Clay_PointerCaptureMode,
768    pub attachTo: Clay_FloatingAttachToElement,
769    pub clipTo: Clay_FloatingClipToElement,
770}
771#[repr(C)]
772#[derive(Debug, Copy, Clone)]
773pub struct Clay__Clay_FloatingElementConfigWrapper {
774    pub wrapped: Clay_FloatingElementConfig,
775}
776#[repr(C)]
777#[derive(Debug, Copy, Clone)]
778pub struct Clay_CustomElementConfig {
779    pub customData: *mut ::core::ffi::c_void,
780}
781#[repr(C)]
782#[derive(Debug, Copy, Clone)]
783pub struct Clay__Clay_CustomElementConfigWrapper {
784    pub wrapped: Clay_CustomElementConfig,
785}
786#[repr(C)]
787#[derive(Debug, Copy, Clone)]
788pub struct Clay_ClipElementConfig {
789    pub horizontal: bool,
790    pub vertical: bool,
791    pub childOffset: Clay_Vector2,
792}
793#[repr(C)]
794#[derive(Debug, Copy, Clone)]
795pub struct Clay__Clay_ClipElementConfigWrapper {
796    pub wrapped: Clay_ClipElementConfig,
797}
798#[repr(C)]
799#[derive(Debug, Copy, Clone)]
800pub struct Clay_BorderWidth {
801    pub left: u16,
802    pub right: u16,
803    pub top: u16,
804    pub bottom: u16,
805    pub betweenChildren: u16,
806}
807#[repr(C)]
808#[derive(Debug, Copy, Clone)]
809pub struct Clay_BorderElementConfig {
810    pub color: Clay_Color,
811    pub width: Clay_BorderWidth,
812}
813#[repr(C)]
814#[derive(Debug, Copy, Clone)]
815pub struct Clay__Clay_BorderElementConfigWrapper {
816    pub wrapped: Clay_BorderElementConfig,
817}
818#[repr(C)]
819#[derive(Debug, Copy, Clone)]
820pub struct Clay_TextRenderData {
821    pub stringContents: Clay_StringSlice,
822    pub textColor: Clay_Color,
823    pub fontId: u16,
824    pub fontSize: u16,
825    pub letterSpacing: u16,
826    pub lineHeight: u16,
827}
828#[repr(C)]
829#[derive(Debug, Copy, Clone)]
830pub struct Clay_RectangleRenderData {
831    pub backgroundColor: Clay_Color,
832    pub cornerRadius: Clay_CornerRadius,
833}
834#[repr(C)]
835#[derive(Debug, Copy, Clone)]
836pub struct Clay_ImageRenderData {
837    pub backgroundColor: Clay_Color,
838    pub cornerRadius: Clay_CornerRadius,
839    pub imageData: *mut ::core::ffi::c_void,
840}
841#[repr(C)]
842#[derive(Debug, Copy, Clone)]
843pub struct Clay_CustomRenderData {
844    pub backgroundColor: Clay_Color,
845    pub cornerRadius: Clay_CornerRadius,
846    pub customData: *mut ::core::ffi::c_void,
847}
848#[repr(C)]
849#[derive(Debug, Copy, Clone)]
850pub struct Clay_ScrollRenderData {
851    pub horizontal: bool,
852    pub vertical: bool,
853}
854pub type Clay_ClipRenderData = Clay_ScrollRenderData;
855#[repr(C)]
856#[derive(Debug, Copy, Clone)]
857pub struct Clay_BorderRenderData {
858    pub color: Clay_Color,
859    pub cornerRadius: Clay_CornerRadius,
860    pub width: Clay_BorderWidth,
861}
862#[repr(C)]
863#[derive(Copy, Clone)]
864pub union Clay_RenderData {
865    pub rectangle: Clay_RectangleRenderData,
866    pub text: Clay_TextRenderData,
867    pub image: Clay_ImageRenderData,
868    pub custom: Clay_CustomRenderData,
869    pub border: Clay_BorderRenderData,
870    pub clip: Clay_ClipRenderData,
871}
872#[repr(C)]
873#[derive(Debug, Copy, Clone)]
874pub struct Clay_ScrollContainerData {
875    pub scrollPosition: *mut Clay_Vector2,
876    pub scrollContainerDimensions: Clay_Dimensions,
877    pub contentDimensions: Clay_Dimensions,
878    pub config: Clay_ClipElementConfig,
879    pub found: bool,
880}
881#[repr(C)]
882#[derive(Debug, Copy, Clone)]
883pub struct Clay_ElementData {
884    pub boundingBox: Clay_BoundingBox,
885    pub found: bool,
886}
887pub const Clay_RenderCommandType_CLAY_RENDER_COMMAND_TYPE_NONE: Clay_RenderCommandType = 0;
888pub const Clay_RenderCommandType_CLAY_RENDER_COMMAND_TYPE_RECTANGLE: Clay_RenderCommandType = 1;
889pub const Clay_RenderCommandType_CLAY_RENDER_COMMAND_TYPE_BORDER: Clay_RenderCommandType = 2;
890pub const Clay_RenderCommandType_CLAY_RENDER_COMMAND_TYPE_TEXT: Clay_RenderCommandType = 3;
891pub const Clay_RenderCommandType_CLAY_RENDER_COMMAND_TYPE_IMAGE: Clay_RenderCommandType = 4;
892pub const Clay_RenderCommandType_CLAY_RENDER_COMMAND_TYPE_SCISSOR_START: Clay_RenderCommandType = 5;
893pub const Clay_RenderCommandType_CLAY_RENDER_COMMAND_TYPE_SCISSOR_END: Clay_RenderCommandType = 6;
894pub const Clay_RenderCommandType_CLAY_RENDER_COMMAND_TYPE_CUSTOM: Clay_RenderCommandType = 7;
895pub type Clay_RenderCommandType = ::core::ffi::c_uchar;
896#[repr(C)]
897#[derive(Copy, Clone)]
898pub struct Clay_RenderCommand {
899    pub boundingBox: Clay_BoundingBox,
900    pub renderData: Clay_RenderData,
901    pub userData: *mut ::core::ffi::c_void,
902    pub id: u32,
903    pub zIndex: i16,
904    pub commandType: Clay_RenderCommandType,
905}
906#[repr(C)]
907#[derive(Debug, Copy, Clone)]
908pub struct Clay_RenderCommandArray {
909    pub capacity: i32,
910    pub length: i32,
911    pub internalArray: *mut Clay_RenderCommand,
912}
913pub const Clay_PointerDataInteractionState_CLAY_POINTER_DATA_PRESSED_THIS_FRAME:
914    Clay_PointerDataInteractionState = 0;
915pub const Clay_PointerDataInteractionState_CLAY_POINTER_DATA_PRESSED:
916    Clay_PointerDataInteractionState = 1;
917pub const Clay_PointerDataInteractionState_CLAY_POINTER_DATA_RELEASED_THIS_FRAME:
918    Clay_PointerDataInteractionState = 2;
919pub const Clay_PointerDataInteractionState_CLAY_POINTER_DATA_RELEASED:
920    Clay_PointerDataInteractionState = 3;
921pub type Clay_PointerDataInteractionState = ::core::ffi::c_uchar;
922#[repr(C)]
923#[derive(Debug, Copy, Clone)]
924pub struct Clay_PointerData {
925    pub position: Clay_Vector2,
926    pub state: Clay_PointerDataInteractionState,
927}
928#[repr(C)]
929#[derive(Copy, Clone)]
930pub struct Clay_ElementDeclaration {
931    pub id: Clay_ElementId,
932    pub layout: Clay_LayoutConfig,
933    pub backgroundColor: Clay_Color,
934    pub cornerRadius: Clay_CornerRadius,
935    pub aspectRatio: Clay_AspectRatioElementConfig,
936    pub image: Clay_ImageElementConfig,
937    pub floating: Clay_FloatingElementConfig,
938    pub custom: Clay_CustomElementConfig,
939    pub clip: Clay_ClipElementConfig,
940    pub border: Clay_BorderElementConfig,
941    pub userData: *mut ::core::ffi::c_void,
942}
943#[repr(C)]
944#[derive(Copy, Clone)]
945pub struct Clay__Clay_ElementDeclarationWrapper {
946    pub wrapped: Clay_ElementDeclaration,
947}
948pub const Clay_ErrorType_CLAY_ERROR_TYPE_TEXT_MEASUREMENT_FUNCTION_NOT_PROVIDED: Clay_ErrorType = 0;
949pub const Clay_ErrorType_CLAY_ERROR_TYPE_ARENA_CAPACITY_EXCEEDED: Clay_ErrorType = 1;
950pub const Clay_ErrorType_CLAY_ERROR_TYPE_ELEMENTS_CAPACITY_EXCEEDED: Clay_ErrorType = 2;
951pub const Clay_ErrorType_CLAY_ERROR_TYPE_TEXT_MEASUREMENT_CAPACITY_EXCEEDED: Clay_ErrorType = 3;
952pub const Clay_ErrorType_CLAY_ERROR_TYPE_DUPLICATE_ID: Clay_ErrorType = 4;
953pub const Clay_ErrorType_CLAY_ERROR_TYPE_FLOATING_CONTAINER_PARENT_NOT_FOUND: Clay_ErrorType = 5;
954pub const Clay_ErrorType_CLAY_ERROR_TYPE_PERCENTAGE_OVER_1: Clay_ErrorType = 6;
955pub const Clay_ErrorType_CLAY_ERROR_TYPE_INTERNAL_ERROR: Clay_ErrorType = 7;
956pub type Clay_ErrorType = ::core::ffi::c_uchar;
957#[repr(C)]
958#[derive(Debug, Copy, Clone)]
959pub struct Clay_ErrorData {
960    pub errorType: Clay_ErrorType,
961    pub errorText: Clay_String,
962    pub userData: *mut ::core::ffi::c_void,
963}
964#[repr(C)]
965#[derive(Debug, Copy, Clone)]
966pub struct Clay_ErrorHandler {
967    pub errorHandlerFunction:
968        ::core::option::Option<unsafe extern "C" fn(errorText: Clay_ErrorData)>,
969    pub userData: *mut ::core::ffi::c_void,
970}
971unsafe extern "C" {
972    pub fn Clay_MinMemorySize() -> u32;
973}
974unsafe extern "C" {
975    pub fn Clay_CreateArenaWithCapacityAndMemory(
976        capacity: usize,
977        memory: *mut ::core::ffi::c_void,
978    ) -> Clay_Arena;
979}
980unsafe extern "C" {
981    pub fn Clay_SetPointerState(position: Clay_Vector2, pointerDown: bool);
982}
983unsafe extern "C" {
984    pub fn Clay_Initialize(
985        arena: Clay_Arena,
986        layoutDimensions: Clay_Dimensions,
987        errorHandler: Clay_ErrorHandler,
988    ) -> *mut Clay_Context;
989}
990unsafe extern "C" {
991    pub fn Clay_GetCurrentContext() -> *mut Clay_Context;
992}
993unsafe extern "C" {
994    pub fn Clay_SetCurrentContext(context: *mut Clay_Context);
995}
996unsafe extern "C" {
997    pub fn Clay_UpdateScrollContainers(
998        enableDragScrolling: bool,
999        scrollDelta: Clay_Vector2,
1000        deltaTime: f32,
1001    );
1002}
1003unsafe extern "C" {
1004    pub fn Clay_GetScrollOffset() -> Clay_Vector2;
1005}
1006unsafe extern "C" {
1007    pub fn Clay_SetLayoutDimensions(dimensions: Clay_Dimensions);
1008}
1009unsafe extern "C" {
1010    pub fn Clay_BeginLayout();
1011}
1012unsafe extern "C" {
1013    pub fn Clay_EndLayout() -> Clay_RenderCommandArray;
1014}
1015unsafe extern "C" {
1016    pub fn Clay_GetElementId(idString: Clay_String) -> Clay_ElementId;
1017}
1018unsafe extern "C" {
1019    pub fn Clay_GetElementIdWithIndex(idString: Clay_String, index: u32) -> Clay_ElementId;
1020}
1021unsafe extern "C" {
1022    pub fn Clay_GetElementData(id: Clay_ElementId) -> Clay_ElementData;
1023}
1024unsafe extern "C" {
1025    pub fn Clay_Hovered() -> bool;
1026}
1027unsafe extern "C" {
1028    pub fn Clay_OnHover(
1029        onHoverFunction: ::core::option::Option<
1030            unsafe extern "C" fn(
1031                elementId: Clay_ElementId,
1032                pointerData: Clay_PointerData,
1033                userData: isize,
1034            ),
1035        >,
1036        userData: isize,
1037    );
1038}
1039unsafe extern "C" {
1040    pub fn Clay_PointerOver(elementId: Clay_ElementId) -> bool;
1041}
1042unsafe extern "C" {
1043    pub fn Clay_GetPointerOverIds() -> Clay_ElementIdArray;
1044}
1045unsafe extern "C" {
1046    pub fn Clay_GetScrollContainerData(id: Clay_ElementId) -> Clay_ScrollContainerData;
1047}
1048unsafe extern "C" {
1049    pub fn Clay_SetMeasureTextFunction(
1050        measureTextFunction: ::core::option::Option<
1051            unsafe extern "C" fn(
1052                text: Clay_StringSlice,
1053                config: *mut Clay_TextElementConfig,
1054                userData: *mut ::core::ffi::c_void,
1055            ) -> Clay_Dimensions,
1056        >,
1057        userData: *mut ::core::ffi::c_void,
1058    );
1059}
1060unsafe extern "C" {
1061    pub fn Clay_SetQueryScrollOffsetFunction(
1062        queryScrollOffsetFunction: ::core::option::Option<
1063            unsafe extern "C" fn(
1064                elementId: u32,
1065                userData: *mut ::core::ffi::c_void,
1066            ) -> Clay_Vector2,
1067        >,
1068        userData: *mut ::core::ffi::c_void,
1069    );
1070}
1071unsafe extern "C" {
1072    pub fn Clay_RenderCommandArray_Get(
1073        array: *mut Clay_RenderCommandArray,
1074        index: i32,
1075    ) -> *mut Clay_RenderCommand;
1076}
1077unsafe extern "C" {
1078    pub fn Clay_SetDebugModeEnabled(enabled: bool);
1079}
1080unsafe extern "C" {
1081    pub fn Clay_IsDebugModeEnabled() -> bool;
1082}
1083unsafe extern "C" {
1084    pub fn Clay_SetCullingEnabled(enabled: bool);
1085}
1086unsafe extern "C" {
1087    pub fn Clay_GetMaxElementCount() -> i32;
1088}
1089unsafe extern "C" {
1090    pub fn Clay_SetMaxElementCount(maxElementCount: i32);
1091}
1092unsafe extern "C" {
1093    pub fn Clay_GetMaxMeasureTextCacheWordCount() -> i32;
1094}
1095unsafe extern "C" {
1096    pub fn Clay_SetMaxMeasureTextCacheWordCount(maxMeasureTextCacheWordCount: i32);
1097}
1098unsafe extern "C" {
1099    pub fn Clay_ResetMeasureTextCache();
1100}
1101unsafe extern "C" {
1102    pub fn Clay__OpenElement();
1103}
1104unsafe extern "C" {
1105    pub fn Clay__ConfigureOpenElement(config: Clay_ElementDeclaration);
1106}
1107unsafe extern "C" {
1108    pub fn Clay__ConfigureOpenElementPtr(config: *const Clay_ElementDeclaration);
1109}
1110unsafe extern "C" {
1111    pub fn Clay__CloseElement();
1112}
1113unsafe extern "C" {
1114    pub fn Clay__HashString(key: Clay_String, offset: u32, seed: u32) -> Clay_ElementId;
1115}
1116unsafe extern "C" {
1117    pub fn Clay__OpenTextElement(text: Clay_String, textConfig: *mut Clay_TextElementConfig);
1118}
1119unsafe extern "C" {
1120    pub fn Clay__StoreTextElementConfig(
1121        config: Clay_TextElementConfig,
1122    ) -> *mut Clay_TextElementConfig;
1123}
1124unsafe extern "C" {
1125    pub fn Clay__GetParentElementId() -> u32;
1126}
1127unsafe extern "C" {
1128    pub static mut Clay__debugViewHighlightColor: Clay_Color;
1129}
1130unsafe extern "C" {
1131    pub static mut Clay__debugViewWidth: u32;
1132}