1 #ifdef __clang__
2 #define CBINDGEN_NONNULL _Nonnull
3 #else
4 #define CBINDGEN_NONNULL
5 #endif
6 
7 
8 #include <stdarg.h>
9 #include <stdbool.h>
10 #include <stdint.h>
11 #include <stdlib.h>
12 
13 typedef struct Opaque Opaque;
14 
15 typedef struct References {
16   const struct Opaque *CBINDGEN_NONNULL a;
17   struct Opaque *CBINDGEN_NONNULL b;
18   const struct Opaque *c;
19   struct Opaque *d;
20 } References;
21 
22 typedef struct Pointers_u64 {
23   float *CBINDGEN_NONNULL a;
24   uint64_t *CBINDGEN_NONNULL b;
25   struct Opaque *CBINDGEN_NONNULL c;
26   uint64_t *CBINDGEN_NONNULL *CBINDGEN_NONNULL d;
27   float *CBINDGEN_NONNULL *CBINDGEN_NONNULL e;
28   struct Opaque *CBINDGEN_NONNULL *CBINDGEN_NONNULL f;
29   uint64_t *g;
30   int32_t *h;
31   int32_t *CBINDGEN_NONNULL *i;
32   const uint64_t *j;
33   uint64_t *k;
34 } Pointers_u64;
35 
36 void value_arg(struct References arg);
37 
38 void mutltiple_args(int32_t *CBINDGEN_NONNULL arg,
39                     struct Pointers_u64 *foo,
40                     struct Opaque *CBINDGEN_NONNULL *CBINDGEN_NONNULL d);
41 
42 void ref_arg(const struct Pointers_u64 *CBINDGEN_NONNULL arg);
43 
44 void mut_ref_arg(struct Pointers_u64 *CBINDGEN_NONNULL arg);
45 
46 void optional_ref_arg(const struct Pointers_u64 *arg);
47 
48 void optional_mut_ref_arg(struct Pointers_u64 *arg);
49 
50 void nullable_const_ptr(const struct Pointers_u64 *arg);
51 
52 void nullable_mut_ptr(struct Pointers_u64 *arg);
53