nostrdb-rs

nostrdb in rust!
git clone git://jb55.com/nostrdb-rs
Log | Files | Refs | Submodules | README | LICENSE

bindings_posix.rs (161455B)


      1 /* automatically generated by rust-bindgen 0.69.4 */
      2 
      3 #[repr(C)]
      4 #[derive(Default)]
      5 pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
      6 impl<T> __IncompleteArrayField<T> {
      7     #[inline]
      8     pub const fn new() -> Self {
      9         __IncompleteArrayField(::std::marker::PhantomData, [])
     10     }
     11     #[inline]
     12     pub fn as_ptr(&self) -> *const T {
     13         self as *const _ as *const T
     14     }
     15     #[inline]
     16     pub fn as_mut_ptr(&mut self) -> *mut T {
     17         self as *mut _ as *mut T
     18     }
     19     #[inline]
     20     pub unsafe fn as_slice(&self, len: usize) -> &[T] {
     21         ::std::slice::from_raw_parts(self.as_ptr(), len)
     22     }
     23     #[inline]
     24     pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
     25         ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
     26     }
     27 }
     28 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
     29     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
     30         fmt.write_str("__IncompleteArrayField")
     31     }
     32 }
     33 pub const _INTTYPES_H: u32 = 1;
     34 pub const _FEATURES_H: u32 = 1;
     35 pub const _DEFAULT_SOURCE: u32 = 1;
     36 pub const __GLIBC_USE_ISOC23: u32 = 0;
     37 pub const __USE_ISOC11: u32 = 1;
     38 pub const __USE_ISOC99: u32 = 1;
     39 pub const __USE_ISOC95: u32 = 1;
     40 pub const __USE_POSIX_IMPLICITLY: u32 = 1;
     41 pub const _POSIX_SOURCE: u32 = 1;
     42 pub const _POSIX_C_SOURCE: u32 = 200809;
     43 pub const __USE_POSIX: u32 = 1;
     44 pub const __USE_POSIX2: u32 = 1;
     45 pub const __USE_POSIX199309: u32 = 1;
     46 pub const __USE_POSIX199506: u32 = 1;
     47 pub const __USE_XOPEN2K: u32 = 1;
     48 pub const __USE_XOPEN2K8: u32 = 1;
     49 pub const _ATFILE_SOURCE: u32 = 1;
     50 pub const __WORDSIZE: u32 = 64;
     51 pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
     52 pub const __SYSCALL_WORDSIZE: u32 = 64;
     53 pub const __TIMESIZE: u32 = 64;
     54 pub const __USE_TIME_BITS64: u32 = 1;
     55 pub const __USE_MISC: u32 = 1;
     56 pub const __USE_ATFILE: u32 = 1;
     57 pub const __USE_FORTIFY_LEVEL: u32 = 0;
     58 pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
     59 pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
     60 pub const __GLIBC_USE_C23_STRTOL: u32 = 0;
     61 pub const _STDC_PREDEF_H: u32 = 1;
     62 pub const __STDC_IEC_559__: u32 = 1;
     63 pub const __STDC_IEC_60559_BFP__: u32 = 201404;
     64 pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
     65 pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404;
     66 pub const __STDC_ISO_10646__: u32 = 201706;
     67 pub const __GNU_LIBRARY__: u32 = 6;
     68 pub const __GLIBC__: u32 = 2;
     69 pub const __GLIBC_MINOR__: u32 = 40;
     70 pub const _SYS_CDEFS_H: u32 = 1;
     71 pub const __glibc_c99_flexarr_available: u32 = 1;
     72 pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0;
     73 pub const __HAVE_GENERIC_SELECTION: u32 = 1;
     74 pub const _STDINT_H: u32 = 1;
     75 pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
     76 pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
     77 pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23: u32 = 0;
     78 pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0;
     79 pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
     80 pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C23: u32 = 0;
     81 pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
     82 pub const _BITS_TYPES_H: u32 = 1;
     83 pub const _BITS_TYPESIZES_H: u32 = 1;
     84 pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
     85 pub const __INO_T_MATCHES_INO64_T: u32 = 1;
     86 pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
     87 pub const __STATFS_MATCHES_STATFS64: u32 = 1;
     88 pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1;
     89 pub const __FD_SETSIZE: u32 = 1024;
     90 pub const _BITS_TIME64_H: u32 = 1;
     91 pub const _BITS_WCHAR_H: u32 = 1;
     92 pub const _BITS_STDINT_INTN_H: u32 = 1;
     93 pub const _BITS_STDINT_UINTN_H: u32 = 1;
     94 pub const _BITS_STDINT_LEAST_H: u32 = 1;
     95 pub const INT8_MIN: i32 = -128;
     96 pub const INT16_MIN: i32 = -32768;
     97 pub const INT32_MIN: i32 = -2147483648;
     98 pub const INT8_MAX: u32 = 127;
     99 pub const INT16_MAX: u32 = 32767;
    100 pub const INT32_MAX: u32 = 2147483647;
    101 pub const UINT8_MAX: u32 = 255;
    102 pub const UINT16_MAX: u32 = 65535;
    103 pub const UINT32_MAX: u32 = 4294967295;
    104 pub const INT_LEAST8_MIN: i32 = -128;
    105 pub const INT_LEAST16_MIN: i32 = -32768;
    106 pub const INT_LEAST32_MIN: i32 = -2147483648;
    107 pub const INT_LEAST8_MAX: u32 = 127;
    108 pub const INT_LEAST16_MAX: u32 = 32767;
    109 pub const INT_LEAST32_MAX: u32 = 2147483647;
    110 pub const UINT_LEAST8_MAX: u32 = 255;
    111 pub const UINT_LEAST16_MAX: u32 = 65535;
    112 pub const UINT_LEAST32_MAX: u32 = 4294967295;
    113 pub const INT_FAST8_MIN: i32 = -128;
    114 pub const INT_FAST16_MIN: i64 = -9223372036854775808;
    115 pub const INT_FAST32_MIN: i64 = -9223372036854775808;
    116 pub const INT_FAST8_MAX: u32 = 127;
    117 pub const INT_FAST16_MAX: u64 = 9223372036854775807;
    118 pub const INT_FAST32_MAX: u64 = 9223372036854775807;
    119 pub const UINT_FAST8_MAX: u32 = 255;
    120 pub const UINT_FAST16_MAX: i32 = -1;
    121 pub const UINT_FAST32_MAX: i32 = -1;
    122 pub const INTPTR_MIN: i64 = -9223372036854775808;
    123 pub const INTPTR_MAX: u64 = 9223372036854775807;
    124 pub const UINTPTR_MAX: i32 = -1;
    125 pub const PTRDIFF_MIN: i64 = -9223372036854775808;
    126 pub const PTRDIFF_MAX: u64 = 9223372036854775807;
    127 pub const SIG_ATOMIC_MIN: i32 = -2147483648;
    128 pub const SIG_ATOMIC_MAX: u32 = 2147483647;
    129 pub const SIZE_MAX: i32 = -1;
    130 pub const WINT_MIN: u32 = 0;
    131 pub const WINT_MAX: u32 = 4294967295;
    132 pub const ____gwchar_t_defined: u32 = 1;
    133 pub const __PRI64_PREFIX: &[u8; 2] = b"l\0";
    134 pub const __PRIPTR_PREFIX: &[u8; 2] = b"l\0";
    135 pub const PRId8: &[u8; 2] = b"d\0";
    136 pub const PRId16: &[u8; 2] = b"d\0";
    137 pub const PRId32: &[u8; 2] = b"d\0";
    138 pub const PRId64: &[u8; 3] = b"ld\0";
    139 pub const PRIdLEAST8: &[u8; 2] = b"d\0";
    140 pub const PRIdLEAST16: &[u8; 2] = b"d\0";
    141 pub const PRIdLEAST32: &[u8; 2] = b"d\0";
    142 pub const PRIdLEAST64: &[u8; 3] = b"ld\0";
    143 pub const PRIdFAST8: &[u8; 2] = b"d\0";
    144 pub const PRIdFAST16: &[u8; 3] = b"ld\0";
    145 pub const PRIdFAST32: &[u8; 3] = b"ld\0";
    146 pub const PRIdFAST64: &[u8; 3] = b"ld\0";
    147 pub const PRIi8: &[u8; 2] = b"i\0";
    148 pub const PRIi16: &[u8; 2] = b"i\0";
    149 pub const PRIi32: &[u8; 2] = b"i\0";
    150 pub const PRIi64: &[u8; 3] = b"li\0";
    151 pub const PRIiLEAST8: &[u8; 2] = b"i\0";
    152 pub const PRIiLEAST16: &[u8; 2] = b"i\0";
    153 pub const PRIiLEAST32: &[u8; 2] = b"i\0";
    154 pub const PRIiLEAST64: &[u8; 3] = b"li\0";
    155 pub const PRIiFAST8: &[u8; 2] = b"i\0";
    156 pub const PRIiFAST16: &[u8; 3] = b"li\0";
    157 pub const PRIiFAST32: &[u8; 3] = b"li\0";
    158 pub const PRIiFAST64: &[u8; 3] = b"li\0";
    159 pub const PRIo8: &[u8; 2] = b"o\0";
    160 pub const PRIo16: &[u8; 2] = b"o\0";
    161 pub const PRIo32: &[u8; 2] = b"o\0";
    162 pub const PRIo64: &[u8; 3] = b"lo\0";
    163 pub const PRIoLEAST8: &[u8; 2] = b"o\0";
    164 pub const PRIoLEAST16: &[u8; 2] = b"o\0";
    165 pub const PRIoLEAST32: &[u8; 2] = b"o\0";
    166 pub const PRIoLEAST64: &[u8; 3] = b"lo\0";
    167 pub const PRIoFAST8: &[u8; 2] = b"o\0";
    168 pub const PRIoFAST16: &[u8; 3] = b"lo\0";
    169 pub const PRIoFAST32: &[u8; 3] = b"lo\0";
    170 pub const PRIoFAST64: &[u8; 3] = b"lo\0";
    171 pub const PRIu8: &[u8; 2] = b"u\0";
    172 pub const PRIu16: &[u8; 2] = b"u\0";
    173 pub const PRIu32: &[u8; 2] = b"u\0";
    174 pub const PRIu64: &[u8; 3] = b"lu\0";
    175 pub const PRIuLEAST8: &[u8; 2] = b"u\0";
    176 pub const PRIuLEAST16: &[u8; 2] = b"u\0";
    177 pub const PRIuLEAST32: &[u8; 2] = b"u\0";
    178 pub const PRIuLEAST64: &[u8; 3] = b"lu\0";
    179 pub const PRIuFAST8: &[u8; 2] = b"u\0";
    180 pub const PRIuFAST16: &[u8; 3] = b"lu\0";
    181 pub const PRIuFAST32: &[u8; 3] = b"lu\0";
    182 pub const PRIuFAST64: &[u8; 3] = b"lu\0";
    183 pub const PRIx8: &[u8; 2] = b"x\0";
    184 pub const PRIx16: &[u8; 2] = b"x\0";
    185 pub const PRIx32: &[u8; 2] = b"x\0";
    186 pub const PRIx64: &[u8; 3] = b"lx\0";
    187 pub const PRIxLEAST8: &[u8; 2] = b"x\0";
    188 pub const PRIxLEAST16: &[u8; 2] = b"x\0";
    189 pub const PRIxLEAST32: &[u8; 2] = b"x\0";
    190 pub const PRIxLEAST64: &[u8; 3] = b"lx\0";
    191 pub const PRIxFAST8: &[u8; 2] = b"x\0";
    192 pub const PRIxFAST16: &[u8; 3] = b"lx\0";
    193 pub const PRIxFAST32: &[u8; 3] = b"lx\0";
    194 pub const PRIxFAST64: &[u8; 3] = b"lx\0";
    195 pub const PRIX8: &[u8; 2] = b"X\0";
    196 pub const PRIX16: &[u8; 2] = b"X\0";
    197 pub const PRIX32: &[u8; 2] = b"X\0";
    198 pub const PRIX64: &[u8; 3] = b"lX\0";
    199 pub const PRIXLEAST8: &[u8; 2] = b"X\0";
    200 pub const PRIXLEAST16: &[u8; 2] = b"X\0";
    201 pub const PRIXLEAST32: &[u8; 2] = b"X\0";
    202 pub const PRIXLEAST64: &[u8; 3] = b"lX\0";
    203 pub const PRIXFAST8: &[u8; 2] = b"X\0";
    204 pub const PRIXFAST16: &[u8; 3] = b"lX\0";
    205 pub const PRIXFAST32: &[u8; 3] = b"lX\0";
    206 pub const PRIXFAST64: &[u8; 3] = b"lX\0";
    207 pub const PRIdMAX: &[u8; 3] = b"ld\0";
    208 pub const PRIiMAX: &[u8; 3] = b"li\0";
    209 pub const PRIoMAX: &[u8; 3] = b"lo\0";
    210 pub const PRIuMAX: &[u8; 3] = b"lu\0";
    211 pub const PRIxMAX: &[u8; 3] = b"lx\0";
    212 pub const PRIXMAX: &[u8; 3] = b"lX\0";
    213 pub const PRIdPTR: &[u8; 3] = b"ld\0";
    214 pub const PRIiPTR: &[u8; 3] = b"li\0";
    215 pub const PRIoPTR: &[u8; 3] = b"lo\0";
    216 pub const PRIuPTR: &[u8; 3] = b"lu\0";
    217 pub const PRIxPTR: &[u8; 3] = b"lx\0";
    218 pub const PRIXPTR: &[u8; 3] = b"lX\0";
    219 pub const SCNd8: &[u8; 4] = b"hhd\0";
    220 pub const SCNd16: &[u8; 3] = b"hd\0";
    221 pub const SCNd32: &[u8; 2] = b"d\0";
    222 pub const SCNd64: &[u8; 3] = b"ld\0";
    223 pub const SCNdLEAST8: &[u8; 4] = b"hhd\0";
    224 pub const SCNdLEAST16: &[u8; 3] = b"hd\0";
    225 pub const SCNdLEAST32: &[u8; 2] = b"d\0";
    226 pub const SCNdLEAST64: &[u8; 3] = b"ld\0";
    227 pub const SCNdFAST8: &[u8; 4] = b"hhd\0";
    228 pub const SCNdFAST16: &[u8; 3] = b"ld\0";
    229 pub const SCNdFAST32: &[u8; 3] = b"ld\0";
    230 pub const SCNdFAST64: &[u8; 3] = b"ld\0";
    231 pub const SCNi8: &[u8; 4] = b"hhi\0";
    232 pub const SCNi16: &[u8; 3] = b"hi\0";
    233 pub const SCNi32: &[u8; 2] = b"i\0";
    234 pub const SCNi64: &[u8; 3] = b"li\0";
    235 pub const SCNiLEAST8: &[u8; 4] = b"hhi\0";
    236 pub const SCNiLEAST16: &[u8; 3] = b"hi\0";
    237 pub const SCNiLEAST32: &[u8; 2] = b"i\0";
    238 pub const SCNiLEAST64: &[u8; 3] = b"li\0";
    239 pub const SCNiFAST8: &[u8; 4] = b"hhi\0";
    240 pub const SCNiFAST16: &[u8; 3] = b"li\0";
    241 pub const SCNiFAST32: &[u8; 3] = b"li\0";
    242 pub const SCNiFAST64: &[u8; 3] = b"li\0";
    243 pub const SCNu8: &[u8; 4] = b"hhu\0";
    244 pub const SCNu16: &[u8; 3] = b"hu\0";
    245 pub const SCNu32: &[u8; 2] = b"u\0";
    246 pub const SCNu64: &[u8; 3] = b"lu\0";
    247 pub const SCNuLEAST8: &[u8; 4] = b"hhu\0";
    248 pub const SCNuLEAST16: &[u8; 3] = b"hu\0";
    249 pub const SCNuLEAST32: &[u8; 2] = b"u\0";
    250 pub const SCNuLEAST64: &[u8; 3] = b"lu\0";
    251 pub const SCNuFAST8: &[u8; 4] = b"hhu\0";
    252 pub const SCNuFAST16: &[u8; 3] = b"lu\0";
    253 pub const SCNuFAST32: &[u8; 3] = b"lu\0";
    254 pub const SCNuFAST64: &[u8; 3] = b"lu\0";
    255 pub const SCNo8: &[u8; 4] = b"hho\0";
    256 pub const SCNo16: &[u8; 3] = b"ho\0";
    257 pub const SCNo32: &[u8; 2] = b"o\0";
    258 pub const SCNo64: &[u8; 3] = b"lo\0";
    259 pub const SCNoLEAST8: &[u8; 4] = b"hho\0";
    260 pub const SCNoLEAST16: &[u8; 3] = b"ho\0";
    261 pub const SCNoLEAST32: &[u8; 2] = b"o\0";
    262 pub const SCNoLEAST64: &[u8; 3] = b"lo\0";
    263 pub const SCNoFAST8: &[u8; 4] = b"hho\0";
    264 pub const SCNoFAST16: &[u8; 3] = b"lo\0";
    265 pub const SCNoFAST32: &[u8; 3] = b"lo\0";
    266 pub const SCNoFAST64: &[u8; 3] = b"lo\0";
    267 pub const SCNx8: &[u8; 4] = b"hhx\0";
    268 pub const SCNx16: &[u8; 3] = b"hx\0";
    269 pub const SCNx32: &[u8; 2] = b"x\0";
    270 pub const SCNx64: &[u8; 3] = b"lx\0";
    271 pub const SCNxLEAST8: &[u8; 4] = b"hhx\0";
    272 pub const SCNxLEAST16: &[u8; 3] = b"hx\0";
    273 pub const SCNxLEAST32: &[u8; 2] = b"x\0";
    274 pub const SCNxLEAST64: &[u8; 3] = b"lx\0";
    275 pub const SCNxFAST8: &[u8; 4] = b"hhx\0";
    276 pub const SCNxFAST16: &[u8; 3] = b"lx\0";
    277 pub const SCNxFAST32: &[u8; 3] = b"lx\0";
    278 pub const SCNxFAST64: &[u8; 3] = b"lx\0";
    279 pub const SCNdMAX: &[u8; 3] = b"ld\0";
    280 pub const SCNiMAX: &[u8; 3] = b"li\0";
    281 pub const SCNoMAX: &[u8; 3] = b"lo\0";
    282 pub const SCNuMAX: &[u8; 3] = b"lu\0";
    283 pub const SCNxMAX: &[u8; 3] = b"lx\0";
    284 pub const SCNdPTR: &[u8; 3] = b"ld\0";
    285 pub const SCNiPTR: &[u8; 3] = b"li\0";
    286 pub const SCNoPTR: &[u8; 3] = b"lo\0";
    287 pub const SCNuPTR: &[u8; 3] = b"lu\0";
    288 pub const SCNxPTR: &[u8; 3] = b"lx\0";
    289 pub const CCAN_COMPILER: &[u8; 3] = b"cc\0";
    290 pub const CCAN_CFLAGS : & [u8 ; 111] = b"-g3 -ggdb -Wall -Wundef -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wold-style-definition\0" ;
    291 pub const CCAN_OUTPUT_EXE_CFLAG: &[u8; 3] = b"-o\0";
    292 pub const HAVE_CCAN: u32 = 1;
    293 pub const HAVE_UNALIGNED_ACCESS: u32 = 1;
    294 pub const HAVE_TYPEOF: u32 = 1;
    295 pub const HAVE_BIG_ENDIAN: u32 = 0;
    296 pub const HAVE_BYTESWAP_H: u32 = 0;
    297 pub const HAVE_BSWAP_64: u32 = 0;
    298 pub const HAVE_LITTLE_ENDIAN: u32 = 1;
    299 pub const __bool_true_false_are_defined: u32 = 1;
    300 pub const true_: u32 = 1;
    301 pub const false_: u32 = 0;
    302 pub const _STDIO_H: u32 = 1;
    303 pub const _____fpos_t_defined: u32 = 1;
    304 pub const ____mbstate_t_defined: u32 = 1;
    305 pub const _____fpos64_t_defined: u32 = 1;
    306 pub const ____FILE_defined: u32 = 1;
    307 pub const __FILE_defined: u32 = 1;
    308 pub const __struct_FILE_defined: u32 = 1;
    309 pub const _IO_EOF_SEEN: u32 = 16;
    310 pub const _IO_ERR_SEEN: u32 = 32;
    311 pub const _IO_USER_LOCK: u32 = 32768;
    312 pub const __cookie_io_functions_t_defined: u32 = 1;
    313 pub const _IOFBF: u32 = 0;
    314 pub const _IOLBF: u32 = 1;
    315 pub const _IONBF: u32 = 2;
    316 pub const BUFSIZ: u32 = 8192;
    317 pub const EOF: i32 = -1;
    318 pub const SEEK_SET: u32 = 0;
    319 pub const SEEK_CUR: u32 = 1;
    320 pub const SEEK_END: u32 = 2;
    321 pub const P_tmpdir: &[u8; 5] = b"/tmp\0";
    322 pub const L_tmpnam: u32 = 20;
    323 pub const TMP_MAX: u32 = 238328;
    324 pub const _BITS_STDIO_LIM_H: u32 = 1;
    325 pub const FILENAME_MAX: u32 = 4096;
    326 pub const L_ctermid: u32 = 9;
    327 pub const FOPEN_MAX: u32 = 16;
    328 pub const __HAVE_FLOAT128: u32 = 0;
    329 pub const __HAVE_DISTINCT_FLOAT128: u32 = 0;
    330 pub const __HAVE_FLOAT64X: u32 = 1;
    331 pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1;
    332 pub const __HAVE_FLOAT16: u32 = 0;
    333 pub const __HAVE_FLOAT32: u32 = 1;
    334 pub const __HAVE_FLOAT64: u32 = 1;
    335 pub const __HAVE_FLOAT32X: u32 = 1;
    336 pub const __HAVE_FLOAT128X: u32 = 0;
    337 pub const __HAVE_DISTINCT_FLOAT16: u32 = 0;
    338 pub const __HAVE_DISTINCT_FLOAT32: u32 = 0;
    339 pub const __HAVE_DISTINCT_FLOAT64: u32 = 0;
    340 pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0;
    341 pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0;
    342 pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0;
    343 pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0;
    344 pub const _CTYPE_H: u32 = 1;
    345 pub const _BITS_ENDIAN_H: u32 = 1;
    346 pub const __LITTLE_ENDIAN: u32 = 1234;
    347 pub const __BIG_ENDIAN: u32 = 4321;
    348 pub const __PDP_ENDIAN: u32 = 3412;
    349 pub const _BITS_ENDIANNESS_H: u32 = 1;
    350 pub const __BYTE_ORDER: u32 = 1234;
    351 pub const __FLOAT_WORD_ORDER: u32 = 1234;
    352 pub const _BITS_TYPES_LOCALE_T_H: u32 = 1;
    353 pub const _BITS_TYPES___LOCALE_T_H: u32 = 1;
    354 pub const _ASSERT_H: u32 = 1;
    355 pub const _STRING_H: u32 = 1;
    356 pub const _STRINGS_H: u32 = 1;
    357 pub const NDB_PACKED_STR: u32 = 1;
    358 pub const NDB_PACKED_ID: u32 = 2;
    359 pub const NDB_FLAG_NOMIGRATE: u32 = 1;
    360 pub const NDB_FLAG_SKIP_NOTE_VERIFY: u32 = 2;
    361 pub const NDB_NUM_FILTERS: u32 = 7;
    362 pub const MAX_TEXT_SEARCH_RESULTS: u32 = 128;
    363 pub const MAX_TEXT_SEARCH_WORDS: u32 = 8;
    364 pub const NDB_NUM_BLOCK_TYPES: u32 = 6;
    365 pub const NDB_MAX_RELAYS: u32 = 24;
    366 pub const NOSTR_BECH32_KNOWN_TYPES: u32 = 7;
    367 pub type __u_char = ::std::os::raw::c_uchar;
    368 pub type __u_short = ::std::os::raw::c_ushort;
    369 pub type __u_int = ::std::os::raw::c_uint;
    370 pub type __u_long = ::std::os::raw::c_ulong;
    371 pub type __int8_t = ::std::os::raw::c_schar;
    372 pub type __uint8_t = ::std::os::raw::c_uchar;
    373 pub type __int16_t = ::std::os::raw::c_short;
    374 pub type __uint16_t = ::std::os::raw::c_ushort;
    375 pub type __int32_t = ::std::os::raw::c_int;
    376 pub type __uint32_t = ::std::os::raw::c_uint;
    377 pub type __int64_t = ::std::os::raw::c_long;
    378 pub type __uint64_t = ::std::os::raw::c_ulong;
    379 pub type __int_least8_t = __int8_t;
    380 pub type __uint_least8_t = __uint8_t;
    381 pub type __int_least16_t = __int16_t;
    382 pub type __uint_least16_t = __uint16_t;
    383 pub type __int_least32_t = __int32_t;
    384 pub type __uint_least32_t = __uint32_t;
    385 pub type __int_least64_t = __int64_t;
    386 pub type __uint_least64_t = __uint64_t;
    387 pub type __quad_t = ::std::os::raw::c_long;
    388 pub type __u_quad_t = ::std::os::raw::c_ulong;
    389 pub type __intmax_t = ::std::os::raw::c_long;
    390 pub type __uintmax_t = ::std::os::raw::c_ulong;
    391 pub type __dev_t = ::std::os::raw::c_ulong;
    392 pub type __uid_t = ::std::os::raw::c_uint;
    393 pub type __gid_t = ::std::os::raw::c_uint;
    394 pub type __ino_t = ::std::os::raw::c_ulong;
    395 pub type __ino64_t = ::std::os::raw::c_ulong;
    396 pub type __mode_t = ::std::os::raw::c_uint;
    397 pub type __nlink_t = ::std::os::raw::c_ulong;
    398 pub type __off_t = ::std::os::raw::c_long;
    399 pub type __off64_t = ::std::os::raw::c_long;
    400 pub type __pid_t = ::std::os::raw::c_int;
    401 #[repr(C)]
    402 #[derive(Debug, Copy, Clone)]
    403 pub struct __fsid_t {
    404     pub __val: [::std::os::raw::c_int; 2usize],
    405 }
    406 #[test]
    407 fn bindgen_test_layout___fsid_t() {
    408     const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit();
    409     let ptr = UNINIT.as_ptr();
    410     assert_eq!(
    411         ::std::mem::size_of::<__fsid_t>(),
    412         8usize,
    413         concat!("Size of: ", stringify!(__fsid_t))
    414     );
    415     assert_eq!(
    416         ::std::mem::align_of::<__fsid_t>(),
    417         4usize,
    418         concat!("Alignment of ", stringify!(__fsid_t))
    419     );
    420     assert_eq!(
    421         unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize },
    422         0usize,
    423         concat!(
    424             "Offset of field: ",
    425             stringify!(__fsid_t),
    426             "::",
    427             stringify!(__val)
    428         )
    429     );
    430 }
    431 pub type __clock_t = ::std::os::raw::c_long;
    432 pub type __rlim_t = ::std::os::raw::c_ulong;
    433 pub type __rlim64_t = ::std::os::raw::c_ulong;
    434 pub type __id_t = ::std::os::raw::c_uint;
    435 pub type __time_t = ::std::os::raw::c_long;
    436 pub type __useconds_t = ::std::os::raw::c_uint;
    437 pub type __suseconds_t = ::std::os::raw::c_long;
    438 pub type __suseconds64_t = ::std::os::raw::c_long;
    439 pub type __daddr_t = ::std::os::raw::c_int;
    440 pub type __key_t = ::std::os::raw::c_int;
    441 pub type __clockid_t = ::std::os::raw::c_int;
    442 pub type __timer_t = *mut ::std::os::raw::c_void;
    443 pub type __blksize_t = ::std::os::raw::c_long;
    444 pub type __blkcnt_t = ::std::os::raw::c_long;
    445 pub type __blkcnt64_t = ::std::os::raw::c_long;
    446 pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
    447 pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
    448 pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
    449 pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
    450 pub type __fsword_t = ::std::os::raw::c_long;
    451 pub type __ssize_t = ::std::os::raw::c_long;
    452 pub type __syscall_slong_t = ::std::os::raw::c_long;
    453 pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
    454 pub type __loff_t = __off64_t;
    455 pub type __caddr_t = *mut ::std::os::raw::c_char;
    456 pub type __intptr_t = ::std::os::raw::c_long;
    457 pub type __socklen_t = ::std::os::raw::c_uint;
    458 pub type __sig_atomic_t = ::std::os::raw::c_int;
    459 pub type int_least8_t = __int_least8_t;
    460 pub type int_least16_t = __int_least16_t;
    461 pub type int_least32_t = __int_least32_t;
    462 pub type int_least64_t = __int_least64_t;
    463 pub type uint_least8_t = __uint_least8_t;
    464 pub type uint_least16_t = __uint_least16_t;
    465 pub type uint_least32_t = __uint_least32_t;
    466 pub type uint_least64_t = __uint_least64_t;
    467 pub type int_fast8_t = ::std::os::raw::c_schar;
    468 pub type int_fast16_t = ::std::os::raw::c_long;
    469 pub type int_fast32_t = ::std::os::raw::c_long;
    470 pub type int_fast64_t = ::std::os::raw::c_long;
    471 pub type uint_fast8_t = ::std::os::raw::c_uchar;
    472 pub type uint_fast16_t = ::std::os::raw::c_ulong;
    473 pub type uint_fast32_t = ::std::os::raw::c_ulong;
    474 pub type uint_fast64_t = ::std::os::raw::c_ulong;
    475 pub type intmax_t = __intmax_t;
    476 pub type uintmax_t = __uintmax_t;
    477 pub type __gwchar_t = ::std::os::raw::c_int;
    478 #[repr(C)]
    479 #[derive(Debug, Copy, Clone)]
    480 pub struct imaxdiv_t {
    481     pub quot: ::std::os::raw::c_long,
    482     pub rem: ::std::os::raw::c_long,
    483 }
    484 #[test]
    485 fn bindgen_test_layout_imaxdiv_t() {
    486     const UNINIT: ::std::mem::MaybeUninit<imaxdiv_t> = ::std::mem::MaybeUninit::uninit();
    487     let ptr = UNINIT.as_ptr();
    488     assert_eq!(
    489         ::std::mem::size_of::<imaxdiv_t>(),
    490         16usize,
    491         concat!("Size of: ", stringify!(imaxdiv_t))
    492     );
    493     assert_eq!(
    494         ::std::mem::align_of::<imaxdiv_t>(),
    495         8usize,
    496         concat!("Alignment of ", stringify!(imaxdiv_t))
    497     );
    498     assert_eq!(
    499         unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize },
    500         0usize,
    501         concat!(
    502             "Offset of field: ",
    503             stringify!(imaxdiv_t),
    504             "::",
    505             stringify!(quot)
    506         )
    507     );
    508     assert_eq!(
    509         unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize },
    510         8usize,
    511         concat!(
    512             "Offset of field: ",
    513             stringify!(imaxdiv_t),
    514             "::",
    515             stringify!(rem)
    516         )
    517     );
    518 }
    519 extern "C" {
    520     pub fn imaxabs(__n: intmax_t) -> intmax_t;
    521 }
    522 extern "C" {
    523     pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t;
    524 }
    525 extern "C" {
    526     pub fn strtoimax(
    527         __nptr: *const ::std::os::raw::c_char,
    528         __endptr: *mut *mut ::std::os::raw::c_char,
    529         __base: ::std::os::raw::c_int,
    530     ) -> intmax_t;
    531 }
    532 extern "C" {
    533     pub fn strtoumax(
    534         __nptr: *const ::std::os::raw::c_char,
    535         __endptr: *mut *mut ::std::os::raw::c_char,
    536         __base: ::std::os::raw::c_int,
    537     ) -> uintmax_t;
    538 }
    539 extern "C" {
    540     pub fn wcstoimax(
    541         __nptr: *const __gwchar_t,
    542         __endptr: *mut *mut __gwchar_t,
    543         __base: ::std::os::raw::c_int,
    544     ) -> intmax_t;
    545 }
    546 extern "C" {
    547     pub fn wcstoumax(
    548         __nptr: *const __gwchar_t,
    549         __endptr: *mut *mut __gwchar_t,
    550         __base: ::std::os::raw::c_int,
    551     ) -> uintmax_t;
    552 }
    553 pub type __gnuc_va_list = __builtin_va_list;
    554 #[repr(C)]
    555 #[derive(Copy, Clone)]
    556 pub struct __mbstate_t {
    557     pub __count: ::std::os::raw::c_int,
    558     pub __value: __mbstate_t__bindgen_ty_1,
    559 }
    560 #[repr(C)]
    561 #[derive(Copy, Clone)]
    562 pub union __mbstate_t__bindgen_ty_1 {
    563     pub __wch: ::std::os::raw::c_uint,
    564     pub __wchb: [::std::os::raw::c_char; 4usize],
    565 }
    566 #[test]
    567 fn bindgen_test_layout___mbstate_t__bindgen_ty_1() {
    568     const UNINIT: ::std::mem::MaybeUninit<__mbstate_t__bindgen_ty_1> =
    569         ::std::mem::MaybeUninit::uninit();
    570     let ptr = UNINIT.as_ptr();
    571     assert_eq!(
    572         ::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(),
    573         4usize,
    574         concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1))
    575     );
    576     assert_eq!(
    577         ::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(),
    578         4usize,
    579         concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1))
    580     );
    581     assert_eq!(
    582         unsafe { ::std::ptr::addr_of!((*ptr).__wch) as usize - ptr as usize },
    583         0usize,
    584         concat!(
    585             "Offset of field: ",
    586             stringify!(__mbstate_t__bindgen_ty_1),
    587             "::",
    588             stringify!(__wch)
    589         )
    590     );
    591     assert_eq!(
    592         unsafe { ::std::ptr::addr_of!((*ptr).__wchb) as usize - ptr as usize },
    593         0usize,
    594         concat!(
    595             "Offset of field: ",
    596             stringify!(__mbstate_t__bindgen_ty_1),
    597             "::",
    598             stringify!(__wchb)
    599         )
    600     );
    601 }
    602 #[test]
    603 fn bindgen_test_layout___mbstate_t() {
    604     const UNINIT: ::std::mem::MaybeUninit<__mbstate_t> = ::std::mem::MaybeUninit::uninit();
    605     let ptr = UNINIT.as_ptr();
    606     assert_eq!(
    607         ::std::mem::size_of::<__mbstate_t>(),
    608         8usize,
    609         concat!("Size of: ", stringify!(__mbstate_t))
    610     );
    611     assert_eq!(
    612         ::std::mem::align_of::<__mbstate_t>(),
    613         4usize,
    614         concat!("Alignment of ", stringify!(__mbstate_t))
    615     );
    616     assert_eq!(
    617         unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize },
    618         0usize,
    619         concat!(
    620             "Offset of field: ",
    621             stringify!(__mbstate_t),
    622             "::",
    623             stringify!(__count)
    624         )
    625     );
    626     assert_eq!(
    627         unsafe { ::std::ptr::addr_of!((*ptr).__value) as usize - ptr as usize },
    628         4usize,
    629         concat!(
    630             "Offset of field: ",
    631             stringify!(__mbstate_t),
    632             "::",
    633             stringify!(__value)
    634         )
    635     );
    636 }
    637 #[repr(C)]
    638 #[derive(Copy, Clone)]
    639 pub struct _G_fpos_t {
    640     pub __pos: __off_t,
    641     pub __state: __mbstate_t,
    642 }
    643 #[test]
    644 fn bindgen_test_layout__G_fpos_t() {
    645     const UNINIT: ::std::mem::MaybeUninit<_G_fpos_t> = ::std::mem::MaybeUninit::uninit();
    646     let ptr = UNINIT.as_ptr();
    647     assert_eq!(
    648         ::std::mem::size_of::<_G_fpos_t>(),
    649         16usize,
    650         concat!("Size of: ", stringify!(_G_fpos_t))
    651     );
    652     assert_eq!(
    653         ::std::mem::align_of::<_G_fpos_t>(),
    654         8usize,
    655         concat!("Alignment of ", stringify!(_G_fpos_t))
    656     );
    657     assert_eq!(
    658         unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize },
    659         0usize,
    660         concat!(
    661             "Offset of field: ",
    662             stringify!(_G_fpos_t),
    663             "::",
    664             stringify!(__pos)
    665         )
    666     );
    667     assert_eq!(
    668         unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize },
    669         8usize,
    670         concat!(
    671             "Offset of field: ",
    672             stringify!(_G_fpos_t),
    673             "::",
    674             stringify!(__state)
    675         )
    676     );
    677 }
    678 pub type __fpos_t = _G_fpos_t;
    679 #[repr(C)]
    680 #[derive(Copy, Clone)]
    681 pub struct _G_fpos64_t {
    682     pub __pos: __off64_t,
    683     pub __state: __mbstate_t,
    684 }
    685 #[test]
    686 fn bindgen_test_layout__G_fpos64_t() {
    687     const UNINIT: ::std::mem::MaybeUninit<_G_fpos64_t> = ::std::mem::MaybeUninit::uninit();
    688     let ptr = UNINIT.as_ptr();
    689     assert_eq!(
    690         ::std::mem::size_of::<_G_fpos64_t>(),
    691         16usize,
    692         concat!("Size of: ", stringify!(_G_fpos64_t))
    693     );
    694     assert_eq!(
    695         ::std::mem::align_of::<_G_fpos64_t>(),
    696         8usize,
    697         concat!("Alignment of ", stringify!(_G_fpos64_t))
    698     );
    699     assert_eq!(
    700         unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize },
    701         0usize,
    702         concat!(
    703             "Offset of field: ",
    704             stringify!(_G_fpos64_t),
    705             "::",
    706             stringify!(__pos)
    707         )
    708     );
    709     assert_eq!(
    710         unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize },
    711         8usize,
    712         concat!(
    713             "Offset of field: ",
    714             stringify!(_G_fpos64_t),
    715             "::",
    716             stringify!(__state)
    717         )
    718     );
    719 }
    720 pub type __fpos64_t = _G_fpos64_t;
    721 pub type __FILE = _IO_FILE;
    722 pub type FILE = _IO_FILE;
    723 #[repr(C)]
    724 #[derive(Debug, Copy, Clone)]
    725 pub struct _IO_marker {
    726     _unused: [u8; 0],
    727 }
    728 #[repr(C)]
    729 #[derive(Debug, Copy, Clone)]
    730 pub struct _IO_codecvt {
    731     _unused: [u8; 0],
    732 }
    733 #[repr(C)]
    734 #[derive(Debug, Copy, Clone)]
    735 pub struct _IO_wide_data {
    736     _unused: [u8; 0],
    737 }
    738 pub type _IO_lock_t = ::std::os::raw::c_void;
    739 #[repr(C)]
    740 #[derive(Debug, Copy, Clone)]
    741 pub struct _IO_FILE {
    742     pub _flags: ::std::os::raw::c_int,
    743     pub _IO_read_ptr: *mut ::std::os::raw::c_char,
    744     pub _IO_read_end: *mut ::std::os::raw::c_char,
    745     pub _IO_read_base: *mut ::std::os::raw::c_char,
    746     pub _IO_write_base: *mut ::std::os::raw::c_char,
    747     pub _IO_write_ptr: *mut ::std::os::raw::c_char,
    748     pub _IO_write_end: *mut ::std::os::raw::c_char,
    749     pub _IO_buf_base: *mut ::std::os::raw::c_char,
    750     pub _IO_buf_end: *mut ::std::os::raw::c_char,
    751     pub _IO_save_base: *mut ::std::os::raw::c_char,
    752     pub _IO_backup_base: *mut ::std::os::raw::c_char,
    753     pub _IO_save_end: *mut ::std::os::raw::c_char,
    754     pub _markers: *mut _IO_marker,
    755     pub _chain: *mut _IO_FILE,
    756     pub _fileno: ::std::os::raw::c_int,
    757     pub _flags2: ::std::os::raw::c_int,
    758     pub _old_offset: __off_t,
    759     pub _cur_column: ::std::os::raw::c_ushort,
    760     pub _vtable_offset: ::std::os::raw::c_schar,
    761     pub _shortbuf: [::std::os::raw::c_char; 1usize],
    762     pub _lock: *mut _IO_lock_t,
    763     pub _offset: __off64_t,
    764     pub _codecvt: *mut _IO_codecvt,
    765     pub _wide_data: *mut _IO_wide_data,
    766     pub _freeres_list: *mut _IO_FILE,
    767     pub _freeres_buf: *mut ::std::os::raw::c_void,
    768     pub _prevchain: *mut *mut _IO_FILE,
    769     pub _mode: ::std::os::raw::c_int,
    770     pub _unused2: [::std::os::raw::c_char; 20usize],
    771 }
    772 #[test]
    773 fn bindgen_test_layout__IO_FILE() {
    774     const UNINIT: ::std::mem::MaybeUninit<_IO_FILE> = ::std::mem::MaybeUninit::uninit();
    775     let ptr = UNINIT.as_ptr();
    776     assert_eq!(
    777         ::std::mem::size_of::<_IO_FILE>(),
    778         216usize,
    779         concat!("Size of: ", stringify!(_IO_FILE))
    780     );
    781     assert_eq!(
    782         ::std::mem::align_of::<_IO_FILE>(),
    783         8usize,
    784         concat!("Alignment of ", stringify!(_IO_FILE))
    785     );
    786     assert_eq!(
    787         unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize },
    788         0usize,
    789         concat!(
    790             "Offset of field: ",
    791             stringify!(_IO_FILE),
    792             "::",
    793             stringify!(_flags)
    794         )
    795     );
    796     assert_eq!(
    797         unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize },
    798         8usize,
    799         concat!(
    800             "Offset of field: ",
    801             stringify!(_IO_FILE),
    802             "::",
    803             stringify!(_IO_read_ptr)
    804         )
    805     );
    806     assert_eq!(
    807         unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize },
    808         16usize,
    809         concat!(
    810             "Offset of field: ",
    811             stringify!(_IO_FILE),
    812             "::",
    813             stringify!(_IO_read_end)
    814         )
    815     );
    816     assert_eq!(
    817         unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize },
    818         24usize,
    819         concat!(
    820             "Offset of field: ",
    821             stringify!(_IO_FILE),
    822             "::",
    823             stringify!(_IO_read_base)
    824         )
    825     );
    826     assert_eq!(
    827         unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize },
    828         32usize,
    829         concat!(
    830             "Offset of field: ",
    831             stringify!(_IO_FILE),
    832             "::",
    833             stringify!(_IO_write_base)
    834         )
    835     );
    836     assert_eq!(
    837         unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize },
    838         40usize,
    839         concat!(
    840             "Offset of field: ",
    841             stringify!(_IO_FILE),
    842             "::",
    843             stringify!(_IO_write_ptr)
    844         )
    845     );
    846     assert_eq!(
    847         unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize },
    848         48usize,
    849         concat!(
    850             "Offset of field: ",
    851             stringify!(_IO_FILE),
    852             "::",
    853             stringify!(_IO_write_end)
    854         )
    855     );
    856     assert_eq!(
    857         unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize },
    858         56usize,
    859         concat!(
    860             "Offset of field: ",
    861             stringify!(_IO_FILE),
    862             "::",
    863             stringify!(_IO_buf_base)
    864         )
    865     );
    866     assert_eq!(
    867         unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize },
    868         64usize,
    869         concat!(
    870             "Offset of field: ",
    871             stringify!(_IO_FILE),
    872             "::",
    873             stringify!(_IO_buf_end)
    874         )
    875     );
    876     assert_eq!(
    877         unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize },
    878         72usize,
    879         concat!(
    880             "Offset of field: ",
    881             stringify!(_IO_FILE),
    882             "::",
    883             stringify!(_IO_save_base)
    884         )
    885     );
    886     assert_eq!(
    887         unsafe { ::std::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize },
    888         80usize,
    889         concat!(
    890             "Offset of field: ",
    891             stringify!(_IO_FILE),
    892             "::",
    893             stringify!(_IO_backup_base)
    894         )
    895     );
    896     assert_eq!(
    897         unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize },
    898         88usize,
    899         concat!(
    900             "Offset of field: ",
    901             stringify!(_IO_FILE),
    902             "::",
    903             stringify!(_IO_save_end)
    904         )
    905     );
    906     assert_eq!(
    907         unsafe { ::std::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize },
    908         96usize,
    909         concat!(
    910             "Offset of field: ",
    911             stringify!(_IO_FILE),
    912             "::",
    913             stringify!(_markers)
    914         )
    915     );
    916     assert_eq!(
    917         unsafe { ::std::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize },
    918         104usize,
    919         concat!(
    920             "Offset of field: ",
    921             stringify!(_IO_FILE),
    922             "::",
    923             stringify!(_chain)
    924         )
    925     );
    926     assert_eq!(
    927         unsafe { ::std::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize },
    928         112usize,
    929         concat!(
    930             "Offset of field: ",
    931             stringify!(_IO_FILE),
    932             "::",
    933             stringify!(_fileno)
    934         )
    935     );
    936     assert_eq!(
    937         unsafe { ::std::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize },
    938         116usize,
    939         concat!(
    940             "Offset of field: ",
    941             stringify!(_IO_FILE),
    942             "::",
    943             stringify!(_flags2)
    944         )
    945     );
    946     assert_eq!(
    947         unsafe { ::std::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize },
    948         120usize,
    949         concat!(
    950             "Offset of field: ",
    951             stringify!(_IO_FILE),
    952             "::",
    953             stringify!(_old_offset)
    954         )
    955     );
    956     assert_eq!(
    957         unsafe { ::std::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize },
    958         128usize,
    959         concat!(
    960             "Offset of field: ",
    961             stringify!(_IO_FILE),
    962             "::",
    963             stringify!(_cur_column)
    964         )
    965     );
    966     assert_eq!(
    967         unsafe { ::std::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize },
    968         130usize,
    969         concat!(
    970             "Offset of field: ",
    971             stringify!(_IO_FILE),
    972             "::",
    973             stringify!(_vtable_offset)
    974         )
    975     );
    976     assert_eq!(
    977         unsafe { ::std::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize },
    978         131usize,
    979         concat!(
    980             "Offset of field: ",
    981             stringify!(_IO_FILE),
    982             "::",
    983             stringify!(_shortbuf)
    984         )
    985     );
    986     assert_eq!(
    987         unsafe { ::std::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize },
    988         136usize,
    989         concat!(
    990             "Offset of field: ",
    991             stringify!(_IO_FILE),
    992             "::",
    993             stringify!(_lock)
    994         )
    995     );
    996     assert_eq!(
    997         unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize },
    998         144usize,
    999         concat!(
   1000             "Offset of field: ",
   1001             stringify!(_IO_FILE),
   1002             "::",
   1003             stringify!(_offset)
   1004         )
   1005     );
   1006     assert_eq!(
   1007         unsafe { ::std::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize },
   1008         152usize,
   1009         concat!(
   1010             "Offset of field: ",
   1011             stringify!(_IO_FILE),
   1012             "::",
   1013             stringify!(_codecvt)
   1014         )
   1015     );
   1016     assert_eq!(
   1017         unsafe { ::std::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize },
   1018         160usize,
   1019         concat!(
   1020             "Offset of field: ",
   1021             stringify!(_IO_FILE),
   1022             "::",
   1023             stringify!(_wide_data)
   1024         )
   1025     );
   1026     assert_eq!(
   1027         unsafe { ::std::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize },
   1028         168usize,
   1029         concat!(
   1030             "Offset of field: ",
   1031             stringify!(_IO_FILE),
   1032             "::",
   1033             stringify!(_freeres_list)
   1034         )
   1035     );
   1036     assert_eq!(
   1037         unsafe { ::std::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize },
   1038         176usize,
   1039         concat!(
   1040             "Offset of field: ",
   1041             stringify!(_IO_FILE),
   1042             "::",
   1043             stringify!(_freeres_buf)
   1044         )
   1045     );
   1046     assert_eq!(
   1047         unsafe { ::std::ptr::addr_of!((*ptr)._prevchain) as usize - ptr as usize },
   1048         184usize,
   1049         concat!(
   1050             "Offset of field: ",
   1051             stringify!(_IO_FILE),
   1052             "::",
   1053             stringify!(_prevchain)
   1054         )
   1055     );
   1056     assert_eq!(
   1057         unsafe { ::std::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize },
   1058         192usize,
   1059         concat!(
   1060             "Offset of field: ",
   1061             stringify!(_IO_FILE),
   1062             "::",
   1063             stringify!(_mode)
   1064         )
   1065     );
   1066     assert_eq!(
   1067         unsafe { ::std::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize },
   1068         196usize,
   1069         concat!(
   1070             "Offset of field: ",
   1071             stringify!(_IO_FILE),
   1072             "::",
   1073             stringify!(_unused2)
   1074         )
   1075     );
   1076 }
   1077 pub type cookie_read_function_t = ::std::option::Option<
   1078     unsafe extern "C" fn(
   1079         __cookie: *mut ::std::os::raw::c_void,
   1080         __buf: *mut ::std::os::raw::c_char,
   1081         __nbytes: usize,
   1082     ) -> __ssize_t,
   1083 >;
   1084 pub type cookie_write_function_t = ::std::option::Option<
   1085     unsafe extern "C" fn(
   1086         __cookie: *mut ::std::os::raw::c_void,
   1087         __buf: *const ::std::os::raw::c_char,
   1088         __nbytes: usize,
   1089     ) -> __ssize_t,
   1090 >;
   1091 pub type cookie_seek_function_t = ::std::option::Option<
   1092     unsafe extern "C" fn(
   1093         __cookie: *mut ::std::os::raw::c_void,
   1094         __pos: *mut __off64_t,
   1095         __w: ::std::os::raw::c_int,
   1096     ) -> ::std::os::raw::c_int,
   1097 >;
   1098 pub type cookie_close_function_t = ::std::option::Option<
   1099     unsafe extern "C" fn(__cookie: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
   1100 >;
   1101 #[repr(C)]
   1102 #[derive(Debug, Copy, Clone)]
   1103 pub struct _IO_cookie_io_functions_t {
   1104     pub read: cookie_read_function_t,
   1105     pub write: cookie_write_function_t,
   1106     pub seek: cookie_seek_function_t,
   1107     pub close: cookie_close_function_t,
   1108 }
   1109 #[test]
   1110 fn bindgen_test_layout__IO_cookie_io_functions_t() {
   1111     const UNINIT: ::std::mem::MaybeUninit<_IO_cookie_io_functions_t> =
   1112         ::std::mem::MaybeUninit::uninit();
   1113     let ptr = UNINIT.as_ptr();
   1114     assert_eq!(
   1115         ::std::mem::size_of::<_IO_cookie_io_functions_t>(),
   1116         32usize,
   1117         concat!("Size of: ", stringify!(_IO_cookie_io_functions_t))
   1118     );
   1119     assert_eq!(
   1120         ::std::mem::align_of::<_IO_cookie_io_functions_t>(),
   1121         8usize,
   1122         concat!("Alignment of ", stringify!(_IO_cookie_io_functions_t))
   1123     );
   1124     assert_eq!(
   1125         unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize },
   1126         0usize,
   1127         concat!(
   1128             "Offset of field: ",
   1129             stringify!(_IO_cookie_io_functions_t),
   1130             "::",
   1131             stringify!(read)
   1132         )
   1133     );
   1134     assert_eq!(
   1135         unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize },
   1136         8usize,
   1137         concat!(
   1138             "Offset of field: ",
   1139             stringify!(_IO_cookie_io_functions_t),
   1140             "::",
   1141             stringify!(write)
   1142         )
   1143     );
   1144     assert_eq!(
   1145         unsafe { ::std::ptr::addr_of!((*ptr).seek) as usize - ptr as usize },
   1146         16usize,
   1147         concat!(
   1148             "Offset of field: ",
   1149             stringify!(_IO_cookie_io_functions_t),
   1150             "::",
   1151             stringify!(seek)
   1152         )
   1153     );
   1154     assert_eq!(
   1155         unsafe { ::std::ptr::addr_of!((*ptr).close) as usize - ptr as usize },
   1156         24usize,
   1157         concat!(
   1158             "Offset of field: ",
   1159             stringify!(_IO_cookie_io_functions_t),
   1160             "::",
   1161             stringify!(close)
   1162         )
   1163     );
   1164 }
   1165 pub type cookie_io_functions_t = _IO_cookie_io_functions_t;
   1166 pub type va_list = __gnuc_va_list;
   1167 pub type off_t = __off_t;
   1168 pub type fpos_t = __fpos_t;
   1169 extern "C" {
   1170     pub static mut stdin: *mut FILE;
   1171 }
   1172 extern "C" {
   1173     pub static mut stdout: *mut FILE;
   1174 }
   1175 extern "C" {
   1176     pub static mut stderr: *mut FILE;
   1177 }
   1178 extern "C" {
   1179     pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
   1180 }
   1181 extern "C" {
   1182     pub fn rename(
   1183         __old: *const ::std::os::raw::c_char,
   1184         __new: *const ::std::os::raw::c_char,
   1185     ) -> ::std::os::raw::c_int;
   1186 }
   1187 extern "C" {
   1188     pub fn renameat(
   1189         __oldfd: ::std::os::raw::c_int,
   1190         __old: *const ::std::os::raw::c_char,
   1191         __newfd: ::std::os::raw::c_int,
   1192         __new: *const ::std::os::raw::c_char,
   1193     ) -> ::std::os::raw::c_int;
   1194 }
   1195 extern "C" {
   1196     pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
   1197 }
   1198 extern "C" {
   1199     pub fn tmpfile() -> *mut FILE;
   1200 }
   1201 extern "C" {
   1202     pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
   1203 }
   1204 extern "C" {
   1205     pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
   1206 }
   1207 extern "C" {
   1208     pub fn tempnam(
   1209         __dir: *const ::std::os::raw::c_char,
   1210         __pfx: *const ::std::os::raw::c_char,
   1211     ) -> *mut ::std::os::raw::c_char;
   1212 }
   1213 extern "C" {
   1214     pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int;
   1215 }
   1216 extern "C" {
   1217     pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
   1218 }
   1219 extern "C" {
   1220     pub fn fopen(
   1221         __filename: *const ::std::os::raw::c_char,
   1222         __modes: *const ::std::os::raw::c_char,
   1223     ) -> *mut FILE;
   1224 }
   1225 extern "C" {
   1226     pub fn freopen(
   1227         __filename: *const ::std::os::raw::c_char,
   1228         __modes: *const ::std::os::raw::c_char,
   1229         __stream: *mut FILE,
   1230     ) -> *mut FILE;
   1231 }
   1232 extern "C" {
   1233     pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char)
   1234         -> *mut FILE;
   1235 }
   1236 extern "C" {
   1237     pub fn fopencookie(
   1238         __magic_cookie: *mut ::std::os::raw::c_void,
   1239         __modes: *const ::std::os::raw::c_char,
   1240         __io_funcs: cookie_io_functions_t,
   1241     ) -> *mut FILE;
   1242 }
   1243 extern "C" {
   1244     pub fn fmemopen(
   1245         __s: *mut ::std::os::raw::c_void,
   1246         __len: usize,
   1247         __modes: *const ::std::os::raw::c_char,
   1248     ) -> *mut FILE;
   1249 }
   1250 extern "C" {
   1251     pub fn open_memstream(
   1252         __bufloc: *mut *mut ::std::os::raw::c_char,
   1253         __sizeloc: *mut usize,
   1254     ) -> *mut FILE;
   1255 }
   1256 extern "C" {
   1257     pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char);
   1258 }
   1259 extern "C" {
   1260     pub fn setvbuf(
   1261         __stream: *mut FILE,
   1262         __buf: *mut ::std::os::raw::c_char,
   1263         __modes: ::std::os::raw::c_int,
   1264         __n: usize,
   1265     ) -> ::std::os::raw::c_int;
   1266 }
   1267 extern "C" {
   1268     pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize);
   1269 }
   1270 extern "C" {
   1271     pub fn setlinebuf(__stream: *mut FILE);
   1272 }
   1273 extern "C" {
   1274     pub fn fprintf(
   1275         __stream: *mut FILE,
   1276         __format: *const ::std::os::raw::c_char,
   1277         ...
   1278     ) -> ::std::os::raw::c_int;
   1279 }
   1280 extern "C" {
   1281     pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
   1282 }
   1283 extern "C" {
   1284     pub fn sprintf(
   1285         __s: *mut ::std::os::raw::c_char,
   1286         __format: *const ::std::os::raw::c_char,
   1287         ...
   1288     ) -> ::std::os::raw::c_int;
   1289 }
   1290 extern "C" {
   1291     pub fn vfprintf(
   1292         __s: *mut FILE,
   1293         __format: *const ::std::os::raw::c_char,
   1294         __arg: *mut __va_list_tag,
   1295     ) -> ::std::os::raw::c_int;
   1296 }
   1297 extern "C" {
   1298     pub fn vprintf(
   1299         __format: *const ::std::os::raw::c_char,
   1300         __arg: *mut __va_list_tag,
   1301     ) -> ::std::os::raw::c_int;
   1302 }
   1303 extern "C" {
   1304     pub fn vsprintf(
   1305         __s: *mut ::std::os::raw::c_char,
   1306         __format: *const ::std::os::raw::c_char,
   1307         __arg: *mut __va_list_tag,
   1308     ) -> ::std::os::raw::c_int;
   1309 }
   1310 extern "C" {
   1311     pub fn snprintf(
   1312         __s: *mut ::std::os::raw::c_char,
   1313         __maxlen: ::std::os::raw::c_ulong,
   1314         __format: *const ::std::os::raw::c_char,
   1315         ...
   1316     ) -> ::std::os::raw::c_int;
   1317 }
   1318 extern "C" {
   1319     pub fn vsnprintf(
   1320         __s: *mut ::std::os::raw::c_char,
   1321         __maxlen: ::std::os::raw::c_ulong,
   1322         __format: *const ::std::os::raw::c_char,
   1323         __arg: *mut __va_list_tag,
   1324     ) -> ::std::os::raw::c_int;
   1325 }
   1326 extern "C" {
   1327     pub fn vasprintf(
   1328         __ptr: *mut *mut ::std::os::raw::c_char,
   1329         __f: *const ::std::os::raw::c_char,
   1330         __arg: *mut __va_list_tag,
   1331     ) -> ::std::os::raw::c_int;
   1332 }
   1333 extern "C" {
   1334     pub fn __asprintf(
   1335         __ptr: *mut *mut ::std::os::raw::c_char,
   1336         __fmt: *const ::std::os::raw::c_char,
   1337         ...
   1338     ) -> ::std::os::raw::c_int;
   1339 }
   1340 extern "C" {
   1341     pub fn asprintf(
   1342         __ptr: *mut *mut ::std::os::raw::c_char,
   1343         __fmt: *const ::std::os::raw::c_char,
   1344         ...
   1345     ) -> ::std::os::raw::c_int;
   1346 }
   1347 extern "C" {
   1348     pub fn vdprintf(
   1349         __fd: ::std::os::raw::c_int,
   1350         __fmt: *const ::std::os::raw::c_char,
   1351         __arg: *mut __va_list_tag,
   1352     ) -> ::std::os::raw::c_int;
   1353 }
   1354 extern "C" {
   1355     pub fn dprintf(
   1356         __fd: ::std::os::raw::c_int,
   1357         __fmt: *const ::std::os::raw::c_char,
   1358         ...
   1359     ) -> ::std::os::raw::c_int;
   1360 }
   1361 extern "C" {
   1362     pub fn fscanf(
   1363         __stream: *mut FILE,
   1364         __format: *const ::std::os::raw::c_char,
   1365         ...
   1366     ) -> ::std::os::raw::c_int;
   1367 }
   1368 extern "C" {
   1369     pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
   1370 }
   1371 extern "C" {
   1372     pub fn sscanf(
   1373         __s: *const ::std::os::raw::c_char,
   1374         __format: *const ::std::os::raw::c_char,
   1375         ...
   1376     ) -> ::std::os::raw::c_int;
   1377 }
   1378 pub type _Float32 = f32;
   1379 pub type _Float64 = f64;
   1380 pub type _Float32x = f64;
   1381 pub type _Float64x = u128;
   1382 extern "C" {
   1383     #[link_name = "\u{1}__isoc99_fscanf"]
   1384     pub fn fscanf1(
   1385         __stream: *mut FILE,
   1386         __format: *const ::std::os::raw::c_char,
   1387         ...
   1388     ) -> ::std::os::raw::c_int;
   1389 }
   1390 extern "C" {
   1391     #[link_name = "\u{1}__isoc99_scanf"]
   1392     pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
   1393 }
   1394 extern "C" {
   1395     #[link_name = "\u{1}__isoc99_sscanf"]
   1396     pub fn sscanf1(
   1397         __s: *const ::std::os::raw::c_char,
   1398         __format: *const ::std::os::raw::c_char,
   1399         ...
   1400     ) -> ::std::os::raw::c_int;
   1401 }
   1402 extern "C" {
   1403     pub fn vfscanf(
   1404         __s: *mut FILE,
   1405         __format: *const ::std::os::raw::c_char,
   1406         __arg: *mut __va_list_tag,
   1407     ) -> ::std::os::raw::c_int;
   1408 }
   1409 extern "C" {
   1410     pub fn vscanf(
   1411         __format: *const ::std::os::raw::c_char,
   1412         __arg: *mut __va_list_tag,
   1413     ) -> ::std::os::raw::c_int;
   1414 }
   1415 extern "C" {
   1416     pub fn vsscanf(
   1417         __s: *const ::std::os::raw::c_char,
   1418         __format: *const ::std::os::raw::c_char,
   1419         __arg: *mut __va_list_tag,
   1420     ) -> ::std::os::raw::c_int;
   1421 }
   1422 extern "C" {
   1423     #[link_name = "\u{1}__isoc99_vfscanf"]
   1424     pub fn vfscanf1(
   1425         __s: *mut FILE,
   1426         __format: *const ::std::os::raw::c_char,
   1427         __arg: *mut __va_list_tag,
   1428     ) -> ::std::os::raw::c_int;
   1429 }
   1430 extern "C" {
   1431     #[link_name = "\u{1}__isoc99_vscanf"]
   1432     pub fn vscanf1(
   1433         __format: *const ::std::os::raw::c_char,
   1434         __arg: *mut __va_list_tag,
   1435     ) -> ::std::os::raw::c_int;
   1436 }
   1437 extern "C" {
   1438     #[link_name = "\u{1}__isoc99_vsscanf"]
   1439     pub fn vsscanf1(
   1440         __s: *const ::std::os::raw::c_char,
   1441         __format: *const ::std::os::raw::c_char,
   1442         __arg: *mut __va_list_tag,
   1443     ) -> ::std::os::raw::c_int;
   1444 }
   1445 extern "C" {
   1446     pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int;
   1447 }
   1448 extern "C" {
   1449     pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int;
   1450 }
   1451 extern "C" {
   1452     pub fn getchar() -> ::std::os::raw::c_int;
   1453 }
   1454 extern "C" {
   1455     pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
   1456 }
   1457 extern "C" {
   1458     pub fn getchar_unlocked() -> ::std::os::raw::c_int;
   1459 }
   1460 extern "C" {
   1461     pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
   1462 }
   1463 extern "C" {
   1464     pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
   1465 }
   1466 extern "C" {
   1467     pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
   1468 }
   1469 extern "C" {
   1470     pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1471 }
   1472 extern "C" {
   1473     pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE)
   1474         -> ::std::os::raw::c_int;
   1475 }
   1476 extern "C" {
   1477     pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
   1478 }
   1479 extern "C" {
   1480     pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1481 }
   1482 extern "C" {
   1483     pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int;
   1484 }
   1485 extern "C" {
   1486     pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
   1487 }
   1488 extern "C" {
   1489     pub fn fgets(
   1490         __s: *mut ::std::os::raw::c_char,
   1491         __n: ::std::os::raw::c_int,
   1492         __stream: *mut FILE,
   1493     ) -> *mut ::std::os::raw::c_char;
   1494 }
   1495 extern "C" {
   1496     pub fn __getdelim(
   1497         __lineptr: *mut *mut ::std::os::raw::c_char,
   1498         __n: *mut usize,
   1499         __delimiter: ::std::os::raw::c_int,
   1500         __stream: *mut FILE,
   1501     ) -> __ssize_t;
   1502 }
   1503 extern "C" {
   1504     pub fn getdelim(
   1505         __lineptr: *mut *mut ::std::os::raw::c_char,
   1506         __n: *mut usize,
   1507         __delimiter: ::std::os::raw::c_int,
   1508         __stream: *mut FILE,
   1509     ) -> __ssize_t;
   1510 }
   1511 extern "C" {
   1512     pub fn getline(
   1513         __lineptr: *mut *mut ::std::os::raw::c_char,
   1514         __n: *mut usize,
   1515         __stream: *mut FILE,
   1516     ) -> __ssize_t;
   1517 }
   1518 extern "C" {
   1519     pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int;
   1520 }
   1521 extern "C" {
   1522     pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
   1523 }
   1524 extern "C" {
   1525     pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
   1526 }
   1527 extern "C" {
   1528     pub fn fread(
   1529         __ptr: *mut ::std::os::raw::c_void,
   1530         __size: ::std::os::raw::c_ulong,
   1531         __n: ::std::os::raw::c_ulong,
   1532         __stream: *mut FILE,
   1533     ) -> ::std::os::raw::c_ulong;
   1534 }
   1535 extern "C" {
   1536     pub fn fwrite(
   1537         __ptr: *const ::std::os::raw::c_void,
   1538         __size: ::std::os::raw::c_ulong,
   1539         __n: ::std::os::raw::c_ulong,
   1540         __s: *mut FILE,
   1541     ) -> ::std::os::raw::c_ulong;
   1542 }
   1543 extern "C" {
   1544     pub fn fread_unlocked(
   1545         __ptr: *mut ::std::os::raw::c_void,
   1546         __size: usize,
   1547         __n: usize,
   1548         __stream: *mut FILE,
   1549     ) -> usize;
   1550 }
   1551 extern "C" {
   1552     pub fn fwrite_unlocked(
   1553         __ptr: *const ::std::os::raw::c_void,
   1554         __size: usize,
   1555         __n: usize,
   1556         __stream: *mut FILE,
   1557     ) -> usize;
   1558 }
   1559 extern "C" {
   1560     pub fn fseek(
   1561         __stream: *mut FILE,
   1562         __off: ::std::os::raw::c_long,
   1563         __whence: ::std::os::raw::c_int,
   1564     ) -> ::std::os::raw::c_int;
   1565 }
   1566 extern "C" {
   1567     pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long;
   1568 }
   1569 extern "C" {
   1570     pub fn rewind(__stream: *mut FILE);
   1571 }
   1572 extern "C" {
   1573     pub fn fseeko(
   1574         __stream: *mut FILE,
   1575         __off: __off_t,
   1576         __whence: ::std::os::raw::c_int,
   1577     ) -> ::std::os::raw::c_int;
   1578 }
   1579 extern "C" {
   1580     pub fn ftello(__stream: *mut FILE) -> __off_t;
   1581 }
   1582 extern "C" {
   1583     pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int;
   1584 }
   1585 extern "C" {
   1586     pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int;
   1587 }
   1588 extern "C" {
   1589     pub fn clearerr(__stream: *mut FILE);
   1590 }
   1591 extern "C" {
   1592     pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int;
   1593 }
   1594 extern "C" {
   1595     pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int;
   1596 }
   1597 extern "C" {
   1598     pub fn clearerr_unlocked(__stream: *mut FILE);
   1599 }
   1600 extern "C" {
   1601     pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
   1602 }
   1603 extern "C" {
   1604     pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
   1605 }
   1606 extern "C" {
   1607     pub fn perror(__s: *const ::std::os::raw::c_char);
   1608 }
   1609 extern "C" {
   1610     pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int;
   1611 }
   1612 extern "C" {
   1613     pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
   1614 }
   1615 extern "C" {
   1616     pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
   1617 }
   1618 extern "C" {
   1619     pub fn popen(
   1620         __command: *const ::std::os::raw::c_char,
   1621         __modes: *const ::std::os::raw::c_char,
   1622     ) -> *mut FILE;
   1623 }
   1624 extern "C" {
   1625     pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
   1626 }
   1627 extern "C" {
   1628     pub fn flockfile(__stream: *mut FILE);
   1629 }
   1630 extern "C" {
   1631     pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int;
   1632 }
   1633 extern "C" {
   1634     pub fn funlockfile(__stream: *mut FILE);
   1635 }
   1636 extern "C" {
   1637     pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int;
   1638 }
   1639 extern "C" {
   1640     pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1641 }
   1642 pub const _ISupper: _bindgen_ty_1 = 256;
   1643 pub const _ISlower: _bindgen_ty_1 = 512;
   1644 pub const _ISalpha: _bindgen_ty_1 = 1024;
   1645 pub const _ISdigit: _bindgen_ty_1 = 2048;
   1646 pub const _ISxdigit: _bindgen_ty_1 = 4096;
   1647 pub const _ISspace: _bindgen_ty_1 = 8192;
   1648 pub const _ISprint: _bindgen_ty_1 = 16384;
   1649 pub const _ISgraph: _bindgen_ty_1 = 32768;
   1650 pub const _ISblank: _bindgen_ty_1 = 1;
   1651 pub const _IScntrl: _bindgen_ty_1 = 2;
   1652 pub const _ISpunct: _bindgen_ty_1 = 4;
   1653 pub const _ISalnum: _bindgen_ty_1 = 8;
   1654 pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
   1655 extern "C" {
   1656     pub fn __ctype_b_loc() -> *mut *const ::std::os::raw::c_ushort;
   1657 }
   1658 extern "C" {
   1659     pub fn __ctype_tolower_loc() -> *mut *const __int32_t;
   1660 }
   1661 extern "C" {
   1662     pub fn __ctype_toupper_loc() -> *mut *const __int32_t;
   1663 }
   1664 extern "C" {
   1665     pub fn isalnum(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1666 }
   1667 extern "C" {
   1668     pub fn isalpha(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1669 }
   1670 extern "C" {
   1671     pub fn iscntrl(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1672 }
   1673 extern "C" {
   1674     pub fn isdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1675 }
   1676 extern "C" {
   1677     pub fn islower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1678 }
   1679 extern "C" {
   1680     pub fn isgraph(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1681 }
   1682 extern "C" {
   1683     pub fn isprint(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1684 }
   1685 extern "C" {
   1686     pub fn ispunct(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1687 }
   1688 extern "C" {
   1689     pub fn isspace(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1690 }
   1691 extern "C" {
   1692     pub fn isupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1693 }
   1694 extern "C" {
   1695     pub fn isxdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1696 }
   1697 extern "C" {
   1698     pub fn tolower(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1699 }
   1700 extern "C" {
   1701     pub fn toupper(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1702 }
   1703 extern "C" {
   1704     pub fn isblank(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1705 }
   1706 extern "C" {
   1707     pub fn isascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1708 }
   1709 extern "C" {
   1710     pub fn toascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1711 }
   1712 extern "C" {
   1713     pub fn _toupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1714 }
   1715 extern "C" {
   1716     pub fn _tolower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1717 }
   1718 #[repr(C)]
   1719 #[derive(Debug, Copy, Clone)]
   1720 pub struct __locale_struct {
   1721     pub __locales: [*mut __locale_data; 13usize],
   1722     pub __ctype_b: *const ::std::os::raw::c_ushort,
   1723     pub __ctype_tolower: *const ::std::os::raw::c_int,
   1724     pub __ctype_toupper: *const ::std::os::raw::c_int,
   1725     pub __names: [*const ::std::os::raw::c_char; 13usize],
   1726 }
   1727 #[test]
   1728 fn bindgen_test_layout___locale_struct() {
   1729     const UNINIT: ::std::mem::MaybeUninit<__locale_struct> = ::std::mem::MaybeUninit::uninit();
   1730     let ptr = UNINIT.as_ptr();
   1731     assert_eq!(
   1732         ::std::mem::size_of::<__locale_struct>(),
   1733         232usize,
   1734         concat!("Size of: ", stringify!(__locale_struct))
   1735     );
   1736     assert_eq!(
   1737         ::std::mem::align_of::<__locale_struct>(),
   1738         8usize,
   1739         concat!("Alignment of ", stringify!(__locale_struct))
   1740     );
   1741     assert_eq!(
   1742         unsafe { ::std::ptr::addr_of!((*ptr).__locales) as usize - ptr as usize },
   1743         0usize,
   1744         concat!(
   1745             "Offset of field: ",
   1746             stringify!(__locale_struct),
   1747             "::",
   1748             stringify!(__locales)
   1749         )
   1750     );
   1751     assert_eq!(
   1752         unsafe { ::std::ptr::addr_of!((*ptr).__ctype_b) as usize - ptr as usize },
   1753         104usize,
   1754         concat!(
   1755             "Offset of field: ",
   1756             stringify!(__locale_struct),
   1757             "::",
   1758             stringify!(__ctype_b)
   1759         )
   1760     );
   1761     assert_eq!(
   1762         unsafe { ::std::ptr::addr_of!((*ptr).__ctype_tolower) as usize - ptr as usize },
   1763         112usize,
   1764         concat!(
   1765             "Offset of field: ",
   1766             stringify!(__locale_struct),
   1767             "::",
   1768             stringify!(__ctype_tolower)
   1769         )
   1770     );
   1771     assert_eq!(
   1772         unsafe { ::std::ptr::addr_of!((*ptr).__ctype_toupper) as usize - ptr as usize },
   1773         120usize,
   1774         concat!(
   1775             "Offset of field: ",
   1776             stringify!(__locale_struct),
   1777             "::",
   1778             stringify!(__ctype_toupper)
   1779         )
   1780     );
   1781     assert_eq!(
   1782         unsafe { ::std::ptr::addr_of!((*ptr).__names) as usize - ptr as usize },
   1783         128usize,
   1784         concat!(
   1785             "Offset of field: ",
   1786             stringify!(__locale_struct),
   1787             "::",
   1788             stringify!(__names)
   1789         )
   1790     );
   1791 }
   1792 pub type __locale_t = *mut __locale_struct;
   1793 pub type locale_t = __locale_t;
   1794 extern "C" {
   1795     pub fn isalnum_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
   1796 }
   1797 extern "C" {
   1798     pub fn isalpha_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
   1799 }
   1800 extern "C" {
   1801     pub fn iscntrl_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
   1802 }
   1803 extern "C" {
   1804     pub fn isdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
   1805 }
   1806 extern "C" {
   1807     pub fn islower_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
   1808 }
   1809 extern "C" {
   1810     pub fn isgraph_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
   1811 }
   1812 extern "C" {
   1813     pub fn isprint_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
   1814 }
   1815 extern "C" {
   1816     pub fn ispunct_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
   1817 }
   1818 extern "C" {
   1819     pub fn isspace_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
   1820 }
   1821 extern "C" {
   1822     pub fn isupper_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
   1823 }
   1824 extern "C" {
   1825     pub fn isxdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
   1826 }
   1827 extern "C" {
   1828     pub fn isblank_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
   1829 }
   1830 extern "C" {
   1831     pub fn __tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int;
   1832 }
   1833 extern "C" {
   1834     pub fn tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int;
   1835 }
   1836 extern "C" {
   1837     pub fn __toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int;
   1838 }
   1839 extern "C" {
   1840     pub fn toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int;
   1841 }
   1842 extern "C" {
   1843     pub fn __assert_fail(
   1844         __assertion: *const ::std::os::raw::c_char,
   1845         __file: *const ::std::os::raw::c_char,
   1846         __line: ::std::os::raw::c_uint,
   1847         __function: *const ::std::os::raw::c_char,
   1848     ) -> !;
   1849 }
   1850 extern "C" {
   1851     pub fn __assert_perror_fail(
   1852         __errnum: ::std::os::raw::c_int,
   1853         __file: *const ::std::os::raw::c_char,
   1854         __line: ::std::os::raw::c_uint,
   1855         __function: *const ::std::os::raw::c_char,
   1856     ) -> !;
   1857 }
   1858 extern "C" {
   1859     pub fn __assert(
   1860         __assertion: *const ::std::os::raw::c_char,
   1861         __file: *const ::std::os::raw::c_char,
   1862         __line: ::std::os::raw::c_int,
   1863     ) -> !;
   1864 }
   1865 extern "C" {
   1866     pub fn memcpy(
   1867         __dest: *mut ::std::os::raw::c_void,
   1868         __src: *const ::std::os::raw::c_void,
   1869         __n: ::std::os::raw::c_ulong,
   1870     ) -> *mut ::std::os::raw::c_void;
   1871 }
   1872 extern "C" {
   1873     pub fn memmove(
   1874         __dest: *mut ::std::os::raw::c_void,
   1875         __src: *const ::std::os::raw::c_void,
   1876         __n: ::std::os::raw::c_ulong,
   1877     ) -> *mut ::std::os::raw::c_void;
   1878 }
   1879 extern "C" {
   1880     pub fn memccpy(
   1881         __dest: *mut ::std::os::raw::c_void,
   1882         __src: *const ::std::os::raw::c_void,
   1883         __c: ::std::os::raw::c_int,
   1884         __n: ::std::os::raw::c_ulong,
   1885     ) -> *mut ::std::os::raw::c_void;
   1886 }
   1887 extern "C" {
   1888     pub fn memset(
   1889         __s: *mut ::std::os::raw::c_void,
   1890         __c: ::std::os::raw::c_int,
   1891         __n: ::std::os::raw::c_ulong,
   1892     ) -> *mut ::std::os::raw::c_void;
   1893 }
   1894 extern "C" {
   1895     pub fn memcmp(
   1896         __s1: *const ::std::os::raw::c_void,
   1897         __s2: *const ::std::os::raw::c_void,
   1898         __n: ::std::os::raw::c_ulong,
   1899     ) -> ::std::os::raw::c_int;
   1900 }
   1901 extern "C" {
   1902     pub fn __memcmpeq(
   1903         __s1: *const ::std::os::raw::c_void,
   1904         __s2: *const ::std::os::raw::c_void,
   1905         __n: usize,
   1906     ) -> ::std::os::raw::c_int;
   1907 }
   1908 extern "C" {
   1909     pub fn memchr(
   1910         __s: *const ::std::os::raw::c_void,
   1911         __c: ::std::os::raw::c_int,
   1912         __n: ::std::os::raw::c_ulong,
   1913     ) -> *mut ::std::os::raw::c_void;
   1914 }
   1915 extern "C" {
   1916     pub fn strcpy(
   1917         __dest: *mut ::std::os::raw::c_char,
   1918         __src: *const ::std::os::raw::c_char,
   1919     ) -> *mut ::std::os::raw::c_char;
   1920 }
   1921 extern "C" {
   1922     pub fn strncpy(
   1923         __dest: *mut ::std::os::raw::c_char,
   1924         __src: *const ::std::os::raw::c_char,
   1925         __n: ::std::os::raw::c_ulong,
   1926     ) -> *mut ::std::os::raw::c_char;
   1927 }
   1928 extern "C" {
   1929     pub fn strcat(
   1930         __dest: *mut ::std::os::raw::c_char,
   1931         __src: *const ::std::os::raw::c_char,
   1932     ) -> *mut ::std::os::raw::c_char;
   1933 }
   1934 extern "C" {
   1935     pub fn strncat(
   1936         __dest: *mut ::std::os::raw::c_char,
   1937         __src: *const ::std::os::raw::c_char,
   1938         __n: ::std::os::raw::c_ulong,
   1939     ) -> *mut ::std::os::raw::c_char;
   1940 }
   1941 extern "C" {
   1942     pub fn strcmp(
   1943         __s1: *const ::std::os::raw::c_char,
   1944         __s2: *const ::std::os::raw::c_char,
   1945     ) -> ::std::os::raw::c_int;
   1946 }
   1947 extern "C" {
   1948     pub fn strncmp(
   1949         __s1: *const ::std::os::raw::c_char,
   1950         __s2: *const ::std::os::raw::c_char,
   1951         __n: ::std::os::raw::c_ulong,
   1952     ) -> ::std::os::raw::c_int;
   1953 }
   1954 extern "C" {
   1955     pub fn strcoll(
   1956         __s1: *const ::std::os::raw::c_char,
   1957         __s2: *const ::std::os::raw::c_char,
   1958     ) -> ::std::os::raw::c_int;
   1959 }
   1960 extern "C" {
   1961     pub fn strxfrm(
   1962         __dest: *mut ::std::os::raw::c_char,
   1963         __src: *const ::std::os::raw::c_char,
   1964         __n: ::std::os::raw::c_ulong,
   1965     ) -> ::std::os::raw::c_ulong;
   1966 }
   1967 extern "C" {
   1968     pub fn strcoll_l(
   1969         __s1: *const ::std::os::raw::c_char,
   1970         __s2: *const ::std::os::raw::c_char,
   1971         __l: locale_t,
   1972     ) -> ::std::os::raw::c_int;
   1973 }
   1974 extern "C" {
   1975     pub fn strxfrm_l(
   1976         __dest: *mut ::std::os::raw::c_char,
   1977         __src: *const ::std::os::raw::c_char,
   1978         __n: usize,
   1979         __l: locale_t,
   1980     ) -> usize;
   1981 }
   1982 extern "C" {
   1983     pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
   1984 }
   1985 extern "C" {
   1986     pub fn strndup(
   1987         __string: *const ::std::os::raw::c_char,
   1988         __n: ::std::os::raw::c_ulong,
   1989     ) -> *mut ::std::os::raw::c_char;
   1990 }
   1991 extern "C" {
   1992     pub fn strchr(
   1993         __s: *const ::std::os::raw::c_char,
   1994         __c: ::std::os::raw::c_int,
   1995     ) -> *mut ::std::os::raw::c_char;
   1996 }
   1997 extern "C" {
   1998     pub fn strrchr(
   1999         __s: *const ::std::os::raw::c_char,
   2000         __c: ::std::os::raw::c_int,
   2001     ) -> *mut ::std::os::raw::c_char;
   2002 }
   2003 extern "C" {
   2004     pub fn strchrnul(
   2005         __s: *const ::std::os::raw::c_char,
   2006         __c: ::std::os::raw::c_int,
   2007     ) -> *mut ::std::os::raw::c_char;
   2008 }
   2009 extern "C" {
   2010     pub fn strcspn(
   2011         __s: *const ::std::os::raw::c_char,
   2012         __reject: *const ::std::os::raw::c_char,
   2013     ) -> ::std::os::raw::c_ulong;
   2014 }
   2015 extern "C" {
   2016     pub fn strspn(
   2017         __s: *const ::std::os::raw::c_char,
   2018         __accept: *const ::std::os::raw::c_char,
   2019     ) -> ::std::os::raw::c_ulong;
   2020 }
   2021 extern "C" {
   2022     pub fn strpbrk(
   2023         __s: *const ::std::os::raw::c_char,
   2024         __accept: *const ::std::os::raw::c_char,
   2025     ) -> *mut ::std::os::raw::c_char;
   2026 }
   2027 extern "C" {
   2028     pub fn strstr(
   2029         __haystack: *const ::std::os::raw::c_char,
   2030         __needle: *const ::std::os::raw::c_char,
   2031     ) -> *mut ::std::os::raw::c_char;
   2032 }
   2033 extern "C" {
   2034     pub fn strtok(
   2035         __s: *mut ::std::os::raw::c_char,
   2036         __delim: *const ::std::os::raw::c_char,
   2037     ) -> *mut ::std::os::raw::c_char;
   2038 }
   2039 extern "C" {
   2040     pub fn __strtok_r(
   2041         __s: *mut ::std::os::raw::c_char,
   2042         __delim: *const ::std::os::raw::c_char,
   2043         __save_ptr: *mut *mut ::std::os::raw::c_char,
   2044     ) -> *mut ::std::os::raw::c_char;
   2045 }
   2046 extern "C" {
   2047     pub fn strtok_r(
   2048         __s: *mut ::std::os::raw::c_char,
   2049         __delim: *const ::std::os::raw::c_char,
   2050         __save_ptr: *mut *mut ::std::os::raw::c_char,
   2051     ) -> *mut ::std::os::raw::c_char;
   2052 }
   2053 extern "C" {
   2054     pub fn strcasestr(
   2055         __haystack: *const ::std::os::raw::c_char,
   2056         __needle: *const ::std::os::raw::c_char,
   2057     ) -> *mut ::std::os::raw::c_char;
   2058 }
   2059 extern "C" {
   2060     pub fn memmem(
   2061         __haystack: *const ::std::os::raw::c_void,
   2062         __haystacklen: usize,
   2063         __needle: *const ::std::os::raw::c_void,
   2064         __needlelen: usize,
   2065     ) -> *mut ::std::os::raw::c_void;
   2066 }
   2067 extern "C" {
   2068     pub fn __mempcpy(
   2069         __dest: *mut ::std::os::raw::c_void,
   2070         __src: *const ::std::os::raw::c_void,
   2071         __n: usize,
   2072     ) -> *mut ::std::os::raw::c_void;
   2073 }
   2074 extern "C" {
   2075     pub fn mempcpy(
   2076         __dest: *mut ::std::os::raw::c_void,
   2077         __src: *const ::std::os::raw::c_void,
   2078         __n: ::std::os::raw::c_ulong,
   2079     ) -> *mut ::std::os::raw::c_void;
   2080 }
   2081 extern "C" {
   2082     pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong;
   2083 }
   2084 extern "C" {
   2085     pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize;
   2086 }
   2087 extern "C" {
   2088     pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
   2089 }
   2090 extern "C" {
   2091     #[link_name = "\u{1}__xpg_strerror_r"]
   2092     pub fn strerror_r(
   2093         __errnum: ::std::os::raw::c_int,
   2094         __buf: *mut ::std::os::raw::c_char,
   2095         __buflen: usize,
   2096     ) -> ::std::os::raw::c_int;
   2097 }
   2098 extern "C" {
   2099     pub fn strerror_l(
   2100         __errnum: ::std::os::raw::c_int,
   2101         __l: locale_t,
   2102     ) -> *mut ::std::os::raw::c_char;
   2103 }
   2104 extern "C" {
   2105     pub fn bcmp(
   2106         __s1: *const ::std::os::raw::c_void,
   2107         __s2: *const ::std::os::raw::c_void,
   2108         __n: ::std::os::raw::c_ulong,
   2109     ) -> ::std::os::raw::c_int;
   2110 }
   2111 extern "C" {
   2112     pub fn bcopy(
   2113         __src: *const ::std::os::raw::c_void,
   2114         __dest: *mut ::std::os::raw::c_void,
   2115         __n: ::std::os::raw::c_ulong,
   2116     );
   2117 }
   2118 extern "C" {
   2119     pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong);
   2120 }
   2121 extern "C" {
   2122     pub fn index(
   2123         __s: *const ::std::os::raw::c_char,
   2124         __c: ::std::os::raw::c_int,
   2125     ) -> *mut ::std::os::raw::c_char;
   2126 }
   2127 extern "C" {
   2128     pub fn rindex(
   2129         __s: *const ::std::os::raw::c_char,
   2130         __c: ::std::os::raw::c_int,
   2131     ) -> *mut ::std::os::raw::c_char;
   2132 }
   2133 extern "C" {
   2134     pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   2135 }
   2136 extern "C" {
   2137     pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int;
   2138 }
   2139 extern "C" {
   2140     pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int;
   2141 }
   2142 extern "C" {
   2143     pub fn strcasecmp(
   2144         __s1: *const ::std::os::raw::c_char,
   2145         __s2: *const ::std::os::raw::c_char,
   2146     ) -> ::std::os::raw::c_int;
   2147 }
   2148 extern "C" {
   2149     pub fn strncasecmp(
   2150         __s1: *const ::std::os::raw::c_char,
   2151         __s2: *const ::std::os::raw::c_char,
   2152         __n: ::std::os::raw::c_ulong,
   2153     ) -> ::std::os::raw::c_int;
   2154 }
   2155 extern "C" {
   2156     pub fn strcasecmp_l(
   2157         __s1: *const ::std::os::raw::c_char,
   2158         __s2: *const ::std::os::raw::c_char,
   2159         __loc: locale_t,
   2160     ) -> ::std::os::raw::c_int;
   2161 }
   2162 extern "C" {
   2163     pub fn strncasecmp_l(
   2164         __s1: *const ::std::os::raw::c_char,
   2165         __s2: *const ::std::os::raw::c_char,
   2166         __n: usize,
   2167         __loc: locale_t,
   2168     ) -> ::std::os::raw::c_int;
   2169 }
   2170 extern "C" {
   2171     pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize);
   2172 }
   2173 extern "C" {
   2174     pub fn strsep(
   2175         __stringp: *mut *mut ::std::os::raw::c_char,
   2176         __delim: *const ::std::os::raw::c_char,
   2177     ) -> *mut ::std::os::raw::c_char;
   2178 }
   2179 extern "C" {
   2180     pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
   2181 }
   2182 extern "C" {
   2183     pub fn __stpcpy(
   2184         __dest: *mut ::std::os::raw::c_char,
   2185         __src: *const ::std::os::raw::c_char,
   2186     ) -> *mut ::std::os::raw::c_char;
   2187 }
   2188 extern "C" {
   2189     pub fn stpcpy(
   2190         __dest: *mut ::std::os::raw::c_char,
   2191         __src: *const ::std::os::raw::c_char,
   2192     ) -> *mut ::std::os::raw::c_char;
   2193 }
   2194 extern "C" {
   2195     pub fn __stpncpy(
   2196         __dest: *mut ::std::os::raw::c_char,
   2197         __src: *const ::std::os::raw::c_char,
   2198         __n: usize,
   2199     ) -> *mut ::std::os::raw::c_char;
   2200 }
   2201 extern "C" {
   2202     pub fn stpncpy(
   2203         __dest: *mut ::std::os::raw::c_char,
   2204         __src: *const ::std::os::raw::c_char,
   2205         __n: ::std::os::raw::c_ulong,
   2206     ) -> *mut ::std::os::raw::c_char;
   2207 }
   2208 extern "C" {
   2209     pub fn strlcpy(
   2210         __dest: *mut ::std::os::raw::c_char,
   2211         __src: *const ::std::os::raw::c_char,
   2212         __n: ::std::os::raw::c_ulong,
   2213     ) -> ::std::os::raw::c_ulong;
   2214 }
   2215 extern "C" {
   2216     pub fn strlcat(
   2217         __dest: *mut ::std::os::raw::c_char,
   2218         __src: *const ::std::os::raw::c_char,
   2219         __n: ::std::os::raw::c_ulong,
   2220     ) -> ::std::os::raw::c_ulong;
   2221 }
   2222 #[repr(C)]
   2223 #[derive(Debug, Copy, Clone)]
   2224 pub struct cursor {
   2225     pub start: *mut ::std::os::raw::c_uchar,
   2226     pub p: *mut ::std::os::raw::c_uchar,
   2227     pub end: *mut ::std::os::raw::c_uchar,
   2228 }
   2229 #[test]
   2230 fn bindgen_test_layout_cursor() {
   2231     const UNINIT: ::std::mem::MaybeUninit<cursor> = ::std::mem::MaybeUninit::uninit();
   2232     let ptr = UNINIT.as_ptr();
   2233     assert_eq!(
   2234         ::std::mem::size_of::<cursor>(),
   2235         24usize,
   2236         concat!("Size of: ", stringify!(cursor))
   2237     );
   2238     assert_eq!(
   2239         ::std::mem::align_of::<cursor>(),
   2240         8usize,
   2241         concat!("Alignment of ", stringify!(cursor))
   2242     );
   2243     assert_eq!(
   2244         unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize },
   2245         0usize,
   2246         concat!(
   2247             "Offset of field: ",
   2248             stringify!(cursor),
   2249             "::",
   2250             stringify!(start)
   2251         )
   2252     );
   2253     assert_eq!(
   2254         unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize },
   2255         8usize,
   2256         concat!("Offset of field: ", stringify!(cursor), "::", stringify!(p))
   2257     );
   2258     assert_eq!(
   2259         unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize },
   2260         16usize,
   2261         concat!(
   2262             "Offset of field: ",
   2263             stringify!(cursor),
   2264             "::",
   2265             stringify!(end)
   2266         )
   2267     );
   2268 }
   2269 #[repr(C)]
   2270 #[derive(Debug, Copy, Clone)]
   2271 pub struct ndb_str_block {
   2272     pub str_: *const ::std::os::raw::c_char,
   2273     pub len: u32,
   2274 }
   2275 #[test]
   2276 fn bindgen_test_layout_ndb_str_block() {
   2277     const UNINIT: ::std::mem::MaybeUninit<ndb_str_block> = ::std::mem::MaybeUninit::uninit();
   2278     let ptr = UNINIT.as_ptr();
   2279     assert_eq!(
   2280         ::std::mem::size_of::<ndb_str_block>(),
   2281         16usize,
   2282         concat!("Size of: ", stringify!(ndb_str_block))
   2283     );
   2284     assert_eq!(
   2285         ::std::mem::align_of::<ndb_str_block>(),
   2286         8usize,
   2287         concat!("Alignment of ", stringify!(ndb_str_block))
   2288     );
   2289     assert_eq!(
   2290         unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize },
   2291         0usize,
   2292         concat!(
   2293             "Offset of field: ",
   2294             stringify!(ndb_str_block),
   2295             "::",
   2296             stringify!(str_)
   2297         )
   2298     );
   2299     assert_eq!(
   2300         unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
   2301         8usize,
   2302         concat!(
   2303             "Offset of field: ",
   2304             stringify!(ndb_str_block),
   2305             "::",
   2306             stringify!(len)
   2307         )
   2308     );
   2309 }
   2310 pub type str_block_t = ndb_str_block;
   2311 #[repr(C)]
   2312 #[derive(Debug, Copy, Clone)]
   2313 pub struct ndb_json_parser {
   2314     _unused: [u8; 0],
   2315 }
   2316 #[repr(C)]
   2317 #[derive(Debug, Copy, Clone)]
   2318 pub struct ndb {
   2319     _unused: [u8; 0],
   2320 }
   2321 #[repr(C)]
   2322 #[derive(Debug, Copy, Clone)]
   2323 pub struct ndb_blocks {
   2324     _unused: [u8; 0],
   2325 }
   2326 #[repr(C)]
   2327 #[derive(Debug, Copy, Clone)]
   2328 pub struct ndb_note {
   2329     _unused: [u8; 0],
   2330 }
   2331 #[repr(C)]
   2332 #[derive(Debug, Copy, Clone)]
   2333 pub struct ndb_tag {
   2334     _unused: [u8; 0],
   2335 }
   2336 #[repr(C)]
   2337 #[derive(Debug, Copy, Clone)]
   2338 pub struct ndb_tags {
   2339     _unused: [u8; 0],
   2340 }
   2341 #[repr(C)]
   2342 #[derive(Debug, Copy, Clone)]
   2343 pub struct ndb_lmdb {
   2344     _unused: [u8; 0],
   2345 }
   2346 #[repr(C)]
   2347 #[derive(Copy, Clone)]
   2348 pub struct ndb_packed_str {
   2349     _unused: [u8; 0],
   2350 }
   2351 #[repr(C)]
   2352 #[derive(Debug, Copy, Clone)]
   2353 pub struct bolt11 {
   2354     _unused: [u8; 0],
   2355 }
   2356 #[repr(C)]
   2357 #[derive(Debug, Copy, Clone)]
   2358 pub struct ndb_tag_ptr {
   2359     pub ptr: *mut ndb_tag,
   2360 }
   2361 #[test]
   2362 fn bindgen_test_layout_ndb_tag_ptr() {
   2363     const UNINIT: ::std::mem::MaybeUninit<ndb_tag_ptr> = ::std::mem::MaybeUninit::uninit();
   2364     let ptr = UNINIT.as_ptr();
   2365     assert_eq!(
   2366         ::std::mem::size_of::<ndb_tag_ptr>(),
   2367         8usize,
   2368         concat!("Size of: ", stringify!(ndb_tag_ptr))
   2369     );
   2370     assert_eq!(
   2371         ::std::mem::align_of::<ndb_tag_ptr>(),
   2372         8usize,
   2373         concat!("Alignment of ", stringify!(ndb_tag_ptr))
   2374     );
   2375     assert_eq!(
   2376         unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
   2377         0usize,
   2378         concat!(
   2379             "Offset of field: ",
   2380             stringify!(ndb_tag_ptr),
   2381             "::",
   2382             stringify!(ptr)
   2383         )
   2384     );
   2385 }
   2386 #[repr(C)]
   2387 #[derive(Debug, Copy, Clone)]
   2388 pub struct ndb_tags_ptr {
   2389     pub ptr: *mut ndb_tags,
   2390 }
   2391 #[test]
   2392 fn bindgen_test_layout_ndb_tags_ptr() {
   2393     const UNINIT: ::std::mem::MaybeUninit<ndb_tags_ptr> = ::std::mem::MaybeUninit::uninit();
   2394     let ptr = UNINIT.as_ptr();
   2395     assert_eq!(
   2396         ::std::mem::size_of::<ndb_tags_ptr>(),
   2397         8usize,
   2398         concat!("Size of: ", stringify!(ndb_tags_ptr))
   2399     );
   2400     assert_eq!(
   2401         ::std::mem::align_of::<ndb_tags_ptr>(),
   2402         8usize,
   2403         concat!("Alignment of ", stringify!(ndb_tags_ptr))
   2404     );
   2405     assert_eq!(
   2406         unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
   2407         0usize,
   2408         concat!(
   2409             "Offset of field: ",
   2410             stringify!(ndb_tags_ptr),
   2411             "::",
   2412             stringify!(ptr)
   2413         )
   2414     );
   2415 }
   2416 #[repr(C)]
   2417 #[derive(Debug, Copy, Clone)]
   2418 pub struct ndb_block_ptr {
   2419     pub ptr: *mut ndb_block,
   2420 }
   2421 #[test]
   2422 fn bindgen_test_layout_ndb_block_ptr() {
   2423     const UNINIT: ::std::mem::MaybeUninit<ndb_block_ptr> = ::std::mem::MaybeUninit::uninit();
   2424     let ptr = UNINIT.as_ptr();
   2425     assert_eq!(
   2426         ::std::mem::size_of::<ndb_block_ptr>(),
   2427         8usize,
   2428         concat!("Size of: ", stringify!(ndb_block_ptr))
   2429     );
   2430     assert_eq!(
   2431         ::std::mem::align_of::<ndb_block_ptr>(),
   2432         8usize,
   2433         concat!("Alignment of ", stringify!(ndb_block_ptr))
   2434     );
   2435     assert_eq!(
   2436         unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
   2437         0usize,
   2438         concat!(
   2439             "Offset of field: ",
   2440             stringify!(ndb_block_ptr),
   2441             "::",
   2442             stringify!(ptr)
   2443         )
   2444     );
   2445 }
   2446 #[repr(C)]
   2447 #[derive(Debug, Copy, Clone)]
   2448 pub struct ndb_blocks_ptr {
   2449     pub ptr: *mut ndb_blocks,
   2450 }
   2451 #[test]
   2452 fn bindgen_test_layout_ndb_blocks_ptr() {
   2453     const UNINIT: ::std::mem::MaybeUninit<ndb_blocks_ptr> = ::std::mem::MaybeUninit::uninit();
   2454     let ptr = UNINIT.as_ptr();
   2455     assert_eq!(
   2456         ::std::mem::size_of::<ndb_blocks_ptr>(),
   2457         8usize,
   2458         concat!("Size of: ", stringify!(ndb_blocks_ptr))
   2459     );
   2460     assert_eq!(
   2461         ::std::mem::align_of::<ndb_blocks_ptr>(),
   2462         8usize,
   2463         concat!("Alignment of ", stringify!(ndb_blocks_ptr))
   2464     );
   2465     assert_eq!(
   2466         unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
   2467         0usize,
   2468         concat!(
   2469             "Offset of field: ",
   2470             stringify!(ndb_blocks_ptr),
   2471             "::",
   2472             stringify!(ptr)
   2473         )
   2474     );
   2475 }
   2476 #[repr(C)]
   2477 #[derive(Debug, Copy, Clone)]
   2478 pub struct ndb_note_ptr {
   2479     pub ptr: *mut ndb_note,
   2480 }
   2481 #[test]
   2482 fn bindgen_test_layout_ndb_note_ptr() {
   2483     const UNINIT: ::std::mem::MaybeUninit<ndb_note_ptr> = ::std::mem::MaybeUninit::uninit();
   2484     let ptr = UNINIT.as_ptr();
   2485     assert_eq!(
   2486         ::std::mem::size_of::<ndb_note_ptr>(),
   2487         8usize,
   2488         concat!("Size of: ", stringify!(ndb_note_ptr))
   2489     );
   2490     assert_eq!(
   2491         ::std::mem::align_of::<ndb_note_ptr>(),
   2492         8usize,
   2493         concat!("Alignment of ", stringify!(ndb_note_ptr))
   2494     );
   2495     assert_eq!(
   2496         unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
   2497         0usize,
   2498         concat!(
   2499             "Offset of field: ",
   2500             stringify!(ndb_note_ptr),
   2501             "::",
   2502             stringify!(ptr)
   2503         )
   2504     );
   2505 }
   2506 #[repr(C)]
   2507 #[derive(Debug, Copy, Clone)]
   2508 pub struct ndb_t {
   2509     pub ndb: *mut ndb,
   2510 }
   2511 #[test]
   2512 fn bindgen_test_layout_ndb_t() {
   2513     const UNINIT: ::std::mem::MaybeUninit<ndb_t> = ::std::mem::MaybeUninit::uninit();
   2514     let ptr = UNINIT.as_ptr();
   2515     assert_eq!(
   2516         ::std::mem::size_of::<ndb_t>(),
   2517         8usize,
   2518         concat!("Size of: ", stringify!(ndb_t))
   2519     );
   2520     assert_eq!(
   2521         ::std::mem::align_of::<ndb_t>(),
   2522         8usize,
   2523         concat!("Alignment of ", stringify!(ndb_t))
   2524     );
   2525     assert_eq!(
   2526         unsafe { ::std::ptr::addr_of!((*ptr).ndb) as usize - ptr as usize },
   2527         0usize,
   2528         concat!(
   2529             "Offset of field: ",
   2530             stringify!(ndb_t),
   2531             "::",
   2532             stringify!(ndb)
   2533         )
   2534     );
   2535 }
   2536 #[repr(C)]
   2537 #[derive(Copy, Clone)]
   2538 pub struct ndb_str {
   2539     pub flag: ::std::os::raw::c_uchar,
   2540     pub __bindgen_anon_1: ndb_str__bindgen_ty_1,
   2541 }
   2542 #[repr(C)]
   2543 #[derive(Copy, Clone)]
   2544 pub union ndb_str__bindgen_ty_1 {
   2545     pub str_: *const ::std::os::raw::c_char,
   2546     pub id: *mut ::std::os::raw::c_uchar,
   2547 }
   2548 #[test]
   2549 fn bindgen_test_layout_ndb_str__bindgen_ty_1() {
   2550     const UNINIT: ::std::mem::MaybeUninit<ndb_str__bindgen_ty_1> =
   2551         ::std::mem::MaybeUninit::uninit();
   2552     let ptr = UNINIT.as_ptr();
   2553     assert_eq!(
   2554         ::std::mem::size_of::<ndb_str__bindgen_ty_1>(),
   2555         8usize,
   2556         concat!("Size of: ", stringify!(ndb_str__bindgen_ty_1))
   2557     );
   2558     assert_eq!(
   2559         ::std::mem::align_of::<ndb_str__bindgen_ty_1>(),
   2560         8usize,
   2561         concat!("Alignment of ", stringify!(ndb_str__bindgen_ty_1))
   2562     );
   2563     assert_eq!(
   2564         unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize },
   2565         0usize,
   2566         concat!(
   2567             "Offset of field: ",
   2568             stringify!(ndb_str__bindgen_ty_1),
   2569             "::",
   2570             stringify!(str_)
   2571         )
   2572     );
   2573     assert_eq!(
   2574         unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize },
   2575         0usize,
   2576         concat!(
   2577             "Offset of field: ",
   2578             stringify!(ndb_str__bindgen_ty_1),
   2579             "::",
   2580             stringify!(id)
   2581         )
   2582     );
   2583 }
   2584 #[test]
   2585 fn bindgen_test_layout_ndb_str() {
   2586     const UNINIT: ::std::mem::MaybeUninit<ndb_str> = ::std::mem::MaybeUninit::uninit();
   2587     let ptr = UNINIT.as_ptr();
   2588     assert_eq!(
   2589         ::std::mem::size_of::<ndb_str>(),
   2590         16usize,
   2591         concat!("Size of: ", stringify!(ndb_str))
   2592     );
   2593     assert_eq!(
   2594         ::std::mem::align_of::<ndb_str>(),
   2595         8usize,
   2596         concat!("Alignment of ", stringify!(ndb_str))
   2597     );
   2598     assert_eq!(
   2599         unsafe { ::std::ptr::addr_of!((*ptr).flag) as usize - ptr as usize },
   2600         0usize,
   2601         concat!(
   2602             "Offset of field: ",
   2603             stringify!(ndb_str),
   2604             "::",
   2605             stringify!(flag)
   2606         )
   2607     );
   2608 }
   2609 #[repr(C)]
   2610 #[derive(Debug, Copy, Clone)]
   2611 pub struct ndb_keypair {
   2612     pub pubkey: [::std::os::raw::c_uchar; 32usize],
   2613     pub secret: [::std::os::raw::c_uchar; 32usize],
   2614     pub pair: [::std::os::raw::c_uchar; 96usize],
   2615 }
   2616 #[test]
   2617 fn bindgen_test_layout_ndb_keypair() {
   2618     const UNINIT: ::std::mem::MaybeUninit<ndb_keypair> = ::std::mem::MaybeUninit::uninit();
   2619     let ptr = UNINIT.as_ptr();
   2620     assert_eq!(
   2621         ::std::mem::size_of::<ndb_keypair>(),
   2622         160usize,
   2623         concat!("Size of: ", stringify!(ndb_keypair))
   2624     );
   2625     assert_eq!(
   2626         ::std::mem::align_of::<ndb_keypair>(),
   2627         1usize,
   2628         concat!("Alignment of ", stringify!(ndb_keypair))
   2629     );
   2630     assert_eq!(
   2631         unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
   2632         0usize,
   2633         concat!(
   2634             "Offset of field: ",
   2635             stringify!(ndb_keypair),
   2636             "::",
   2637             stringify!(pubkey)
   2638         )
   2639     );
   2640     assert_eq!(
   2641         unsafe { ::std::ptr::addr_of!((*ptr).secret) as usize - ptr as usize },
   2642         32usize,
   2643         concat!(
   2644             "Offset of field: ",
   2645             stringify!(ndb_keypair),
   2646             "::",
   2647             stringify!(secret)
   2648         )
   2649     );
   2650     assert_eq!(
   2651         unsafe { ::std::ptr::addr_of!((*ptr).pair) as usize - ptr as usize },
   2652         64usize,
   2653         concat!(
   2654             "Offset of field: ",
   2655             stringify!(ndb_keypair),
   2656             "::",
   2657             stringify!(pair)
   2658         )
   2659     );
   2660 }
   2661 pub type ndb_idres = i32;
   2662 pub type ndb_id_fn = ::std::option::Option<
   2663     unsafe extern "C" fn(
   2664         arg1: *mut ::std::os::raw::c_void,
   2665         arg2: *const ::std::os::raw::c_char,
   2666     ) -> ndb_idres,
   2667 >;
   2668 pub type ndb_sub_fn =
   2669     ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, subid: u64)>;
   2670 #[repr(C)]
   2671 #[derive(Debug, Copy, Clone)]
   2672 pub struct ndb_id_cb {
   2673     pub fn_: ndb_id_fn,
   2674     pub data: *mut ::std::os::raw::c_void,
   2675 }
   2676 #[test]
   2677 fn bindgen_test_layout_ndb_id_cb() {
   2678     const UNINIT: ::std::mem::MaybeUninit<ndb_id_cb> = ::std::mem::MaybeUninit::uninit();
   2679     let ptr = UNINIT.as_ptr();
   2680     assert_eq!(
   2681         ::std::mem::size_of::<ndb_id_cb>(),
   2682         16usize,
   2683         concat!("Size of: ", stringify!(ndb_id_cb))
   2684     );
   2685     assert_eq!(
   2686         ::std::mem::align_of::<ndb_id_cb>(),
   2687         8usize,
   2688         concat!("Alignment of ", stringify!(ndb_id_cb))
   2689     );
   2690     assert_eq!(
   2691         unsafe { ::std::ptr::addr_of!((*ptr).fn_) as usize - ptr as usize },
   2692         0usize,
   2693         concat!(
   2694             "Offset of field: ",
   2695             stringify!(ndb_id_cb),
   2696             "::",
   2697             stringify!(fn_)
   2698         )
   2699     );
   2700     assert_eq!(
   2701         unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
   2702         8usize,
   2703         concat!(
   2704             "Offset of field: ",
   2705             stringify!(ndb_id_cb),
   2706             "::",
   2707             stringify!(data)
   2708         )
   2709     );
   2710 }
   2711 #[repr(C)]
   2712 #[derive(Debug, Copy, Clone)]
   2713 pub struct ndb_txn {
   2714     pub lmdb: *mut ndb_lmdb,
   2715     pub mdb_txn: *mut ::std::os::raw::c_void,
   2716 }
   2717 #[test]
   2718 fn bindgen_test_layout_ndb_txn() {
   2719     const UNINIT: ::std::mem::MaybeUninit<ndb_txn> = ::std::mem::MaybeUninit::uninit();
   2720     let ptr = UNINIT.as_ptr();
   2721     assert_eq!(
   2722         ::std::mem::size_of::<ndb_txn>(),
   2723         16usize,
   2724         concat!("Size of: ", stringify!(ndb_txn))
   2725     );
   2726     assert_eq!(
   2727         ::std::mem::align_of::<ndb_txn>(),
   2728         8usize,
   2729         concat!("Alignment of ", stringify!(ndb_txn))
   2730     );
   2731     assert_eq!(
   2732         unsafe { ::std::ptr::addr_of!((*ptr).lmdb) as usize - ptr as usize },
   2733         0usize,
   2734         concat!(
   2735             "Offset of field: ",
   2736             stringify!(ndb_txn),
   2737             "::",
   2738             stringify!(lmdb)
   2739         )
   2740     );
   2741     assert_eq!(
   2742         unsafe { ::std::ptr::addr_of!((*ptr).mdb_txn) as usize - ptr as usize },
   2743         8usize,
   2744         concat!(
   2745             "Offset of field: ",
   2746             stringify!(ndb_txn),
   2747             "::",
   2748             stringify!(mdb_txn)
   2749         )
   2750     );
   2751 }
   2752 #[repr(C)]
   2753 #[derive(Debug, Copy, Clone)]
   2754 pub struct ndb_event {
   2755     pub note: *mut ndb_note,
   2756 }
   2757 #[test]
   2758 fn bindgen_test_layout_ndb_event() {
   2759     const UNINIT: ::std::mem::MaybeUninit<ndb_event> = ::std::mem::MaybeUninit::uninit();
   2760     let ptr = UNINIT.as_ptr();
   2761     assert_eq!(
   2762         ::std::mem::size_of::<ndb_event>(),
   2763         8usize,
   2764         concat!("Size of: ", stringify!(ndb_event))
   2765     );
   2766     assert_eq!(
   2767         ::std::mem::align_of::<ndb_event>(),
   2768         8usize,
   2769         concat!("Alignment of ", stringify!(ndb_event))
   2770     );
   2771     assert_eq!(
   2772         unsafe { ::std::ptr::addr_of!((*ptr).note) as usize - ptr as usize },
   2773         0usize,
   2774         concat!(
   2775             "Offset of field: ",
   2776             stringify!(ndb_event),
   2777             "::",
   2778             stringify!(note)
   2779         )
   2780     );
   2781 }
   2782 #[repr(C)]
   2783 #[derive(Debug, Copy, Clone)]
   2784 pub struct ndb_command_result {
   2785     pub ok: ::std::os::raw::c_int,
   2786     pub msg: *const ::std::os::raw::c_char,
   2787     pub msglen: ::std::os::raw::c_int,
   2788 }
   2789 #[test]
   2790 fn bindgen_test_layout_ndb_command_result() {
   2791     const UNINIT: ::std::mem::MaybeUninit<ndb_command_result> = ::std::mem::MaybeUninit::uninit();
   2792     let ptr = UNINIT.as_ptr();
   2793     assert_eq!(
   2794         ::std::mem::size_of::<ndb_command_result>(),
   2795         24usize,
   2796         concat!("Size of: ", stringify!(ndb_command_result))
   2797     );
   2798     assert_eq!(
   2799         ::std::mem::align_of::<ndb_command_result>(),
   2800         8usize,
   2801         concat!("Alignment of ", stringify!(ndb_command_result))
   2802     );
   2803     assert_eq!(
   2804         unsafe { ::std::ptr::addr_of!((*ptr).ok) as usize - ptr as usize },
   2805         0usize,
   2806         concat!(
   2807             "Offset of field: ",
   2808             stringify!(ndb_command_result),
   2809             "::",
   2810             stringify!(ok)
   2811         )
   2812     );
   2813     assert_eq!(
   2814         unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize },
   2815         8usize,
   2816         concat!(
   2817             "Offset of field: ",
   2818             stringify!(ndb_command_result),
   2819             "::",
   2820             stringify!(msg)
   2821         )
   2822     );
   2823     assert_eq!(
   2824         unsafe { ::std::ptr::addr_of!((*ptr).msglen) as usize - ptr as usize },
   2825         16usize,
   2826         concat!(
   2827             "Offset of field: ",
   2828             stringify!(ndb_command_result),
   2829             "::",
   2830             stringify!(msglen)
   2831         )
   2832     );
   2833 }
   2834 pub const fce_type_NDB_FCE_EVENT: fce_type = 1;
   2835 pub type fce_type = ::std::os::raw::c_uint;
   2836 pub const tce_type_NDB_TCE_EVENT: tce_type = 1;
   2837 pub const tce_type_NDB_TCE_OK: tce_type = 2;
   2838 pub const tce_type_NDB_TCE_NOTICE: tce_type = 3;
   2839 pub const tce_type_NDB_TCE_EOSE: tce_type = 4;
   2840 pub const tce_type_NDB_TCE_AUTH: tce_type = 5;
   2841 pub type tce_type = ::std::os::raw::c_uint;
   2842 pub const ndb_ingest_filter_action_NDB_INGEST_REJECT: ndb_ingest_filter_action = 0;
   2843 pub const ndb_ingest_filter_action_NDB_INGEST_ACCEPT: ndb_ingest_filter_action = 1;
   2844 pub const ndb_ingest_filter_action_NDB_INGEST_SKIP_VALIDATION: ndb_ingest_filter_action = 2;
   2845 pub type ndb_ingest_filter_action = ::std::os::raw::c_uint;
   2846 #[repr(C)]
   2847 #[derive(Debug, Copy, Clone)]
   2848 pub struct ndb_search_key {
   2849     pub search: [::std::os::raw::c_char; 24usize],
   2850     pub id: [::std::os::raw::c_uchar; 32usize],
   2851     pub timestamp: u64,
   2852 }
   2853 #[test]
   2854 fn bindgen_test_layout_ndb_search_key() {
   2855     const UNINIT: ::std::mem::MaybeUninit<ndb_search_key> = ::std::mem::MaybeUninit::uninit();
   2856     let ptr = UNINIT.as_ptr();
   2857     assert_eq!(
   2858         ::std::mem::size_of::<ndb_search_key>(),
   2859         64usize,
   2860         concat!("Size of: ", stringify!(ndb_search_key))
   2861     );
   2862     assert_eq!(
   2863         ::std::mem::align_of::<ndb_search_key>(),
   2864         8usize,
   2865         concat!("Alignment of ", stringify!(ndb_search_key))
   2866     );
   2867     assert_eq!(
   2868         unsafe { ::std::ptr::addr_of!((*ptr).search) as usize - ptr as usize },
   2869         0usize,
   2870         concat!(
   2871             "Offset of field: ",
   2872             stringify!(ndb_search_key),
   2873             "::",
   2874             stringify!(search)
   2875         )
   2876     );
   2877     assert_eq!(
   2878         unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize },
   2879         24usize,
   2880         concat!(
   2881             "Offset of field: ",
   2882             stringify!(ndb_search_key),
   2883             "::",
   2884             stringify!(id)
   2885         )
   2886     );
   2887     assert_eq!(
   2888         unsafe { ::std::ptr::addr_of!((*ptr).timestamp) as usize - ptr as usize },
   2889         56usize,
   2890         concat!(
   2891             "Offset of field: ",
   2892             stringify!(ndb_search_key),
   2893             "::",
   2894             stringify!(timestamp)
   2895         )
   2896     );
   2897 }
   2898 #[repr(C)]
   2899 #[derive(Debug, Copy, Clone)]
   2900 pub struct ndb_search {
   2901     pub key: *mut ndb_search_key,
   2902     pub profile_key: u64,
   2903     pub cursor: *mut ::std::os::raw::c_void,
   2904 }
   2905 #[test]
   2906 fn bindgen_test_layout_ndb_search() {
   2907     const UNINIT: ::std::mem::MaybeUninit<ndb_search> = ::std::mem::MaybeUninit::uninit();
   2908     let ptr = UNINIT.as_ptr();
   2909     assert_eq!(
   2910         ::std::mem::size_of::<ndb_search>(),
   2911         24usize,
   2912         concat!("Size of: ", stringify!(ndb_search))
   2913     );
   2914     assert_eq!(
   2915         ::std::mem::align_of::<ndb_search>(),
   2916         8usize,
   2917         concat!("Alignment of ", stringify!(ndb_search))
   2918     );
   2919     assert_eq!(
   2920         unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize },
   2921         0usize,
   2922         concat!(
   2923             "Offset of field: ",
   2924             stringify!(ndb_search),
   2925             "::",
   2926             stringify!(key)
   2927         )
   2928     );
   2929     assert_eq!(
   2930         unsafe { ::std::ptr::addr_of!((*ptr).profile_key) as usize - ptr as usize },
   2931         8usize,
   2932         concat!(
   2933             "Offset of field: ",
   2934             stringify!(ndb_search),
   2935             "::",
   2936             stringify!(profile_key)
   2937         )
   2938     );
   2939     assert_eq!(
   2940         unsafe { ::std::ptr::addr_of!((*ptr).cursor) as usize - ptr as usize },
   2941         16usize,
   2942         concat!(
   2943             "Offset of field: ",
   2944             stringify!(ndb_search),
   2945             "::",
   2946             stringify!(cursor)
   2947         )
   2948     );
   2949 }
   2950 #[repr(C)]
   2951 #[derive(Copy, Clone)]
   2952 pub struct ndb_fce {
   2953     pub evtype: fce_type,
   2954     pub __bindgen_anon_1: ndb_fce__bindgen_ty_1,
   2955 }
   2956 #[repr(C)]
   2957 #[derive(Copy, Clone)]
   2958 pub union ndb_fce__bindgen_ty_1 {
   2959     pub event: ndb_event,
   2960 }
   2961 #[test]
   2962 fn bindgen_test_layout_ndb_fce__bindgen_ty_1() {
   2963     const UNINIT: ::std::mem::MaybeUninit<ndb_fce__bindgen_ty_1> =
   2964         ::std::mem::MaybeUninit::uninit();
   2965     let ptr = UNINIT.as_ptr();
   2966     assert_eq!(
   2967         ::std::mem::size_of::<ndb_fce__bindgen_ty_1>(),
   2968         8usize,
   2969         concat!("Size of: ", stringify!(ndb_fce__bindgen_ty_1))
   2970     );
   2971     assert_eq!(
   2972         ::std::mem::align_of::<ndb_fce__bindgen_ty_1>(),
   2973         8usize,
   2974         concat!("Alignment of ", stringify!(ndb_fce__bindgen_ty_1))
   2975     );
   2976     assert_eq!(
   2977         unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize },
   2978         0usize,
   2979         concat!(
   2980             "Offset of field: ",
   2981             stringify!(ndb_fce__bindgen_ty_1),
   2982             "::",
   2983             stringify!(event)
   2984         )
   2985     );
   2986 }
   2987 #[test]
   2988 fn bindgen_test_layout_ndb_fce() {
   2989     const UNINIT: ::std::mem::MaybeUninit<ndb_fce> = ::std::mem::MaybeUninit::uninit();
   2990     let ptr = UNINIT.as_ptr();
   2991     assert_eq!(
   2992         ::std::mem::size_of::<ndb_fce>(),
   2993         16usize,
   2994         concat!("Size of: ", stringify!(ndb_fce))
   2995     );
   2996     assert_eq!(
   2997         ::std::mem::align_of::<ndb_fce>(),
   2998         8usize,
   2999         concat!("Alignment of ", stringify!(ndb_fce))
   3000     );
   3001     assert_eq!(
   3002         unsafe { ::std::ptr::addr_of!((*ptr).evtype) as usize - ptr as usize },
   3003         0usize,
   3004         concat!(
   3005             "Offset of field: ",
   3006             stringify!(ndb_fce),
   3007             "::",
   3008             stringify!(evtype)
   3009         )
   3010     );
   3011 }
   3012 #[repr(C)]
   3013 #[derive(Copy, Clone)]
   3014 pub struct ndb_tce {
   3015     pub evtype: tce_type,
   3016     pub subid: *const ::std::os::raw::c_char,
   3017     pub subid_len: ::std::os::raw::c_int,
   3018     pub __bindgen_anon_1: ndb_tce__bindgen_ty_1,
   3019 }
   3020 #[repr(C)]
   3021 #[derive(Copy, Clone)]
   3022 pub union ndb_tce__bindgen_ty_1 {
   3023     pub event: ndb_event,
   3024     pub command_result: ndb_command_result,
   3025 }
   3026 #[test]
   3027 fn bindgen_test_layout_ndb_tce__bindgen_ty_1() {
   3028     const UNINIT: ::std::mem::MaybeUninit<ndb_tce__bindgen_ty_1> =
   3029         ::std::mem::MaybeUninit::uninit();
   3030     let ptr = UNINIT.as_ptr();
   3031     assert_eq!(
   3032         ::std::mem::size_of::<ndb_tce__bindgen_ty_1>(),
   3033         24usize,
   3034         concat!("Size of: ", stringify!(ndb_tce__bindgen_ty_1))
   3035     );
   3036     assert_eq!(
   3037         ::std::mem::align_of::<ndb_tce__bindgen_ty_1>(),
   3038         8usize,
   3039         concat!("Alignment of ", stringify!(ndb_tce__bindgen_ty_1))
   3040     );
   3041     assert_eq!(
   3042         unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize },
   3043         0usize,
   3044         concat!(
   3045             "Offset of field: ",
   3046             stringify!(ndb_tce__bindgen_ty_1),
   3047             "::",
   3048             stringify!(event)
   3049         )
   3050     );
   3051     assert_eq!(
   3052         unsafe { ::std::ptr::addr_of!((*ptr).command_result) as usize - ptr as usize },
   3053         0usize,
   3054         concat!(
   3055             "Offset of field: ",
   3056             stringify!(ndb_tce__bindgen_ty_1),
   3057             "::",
   3058             stringify!(command_result)
   3059         )
   3060     );
   3061 }
   3062 #[test]
   3063 fn bindgen_test_layout_ndb_tce() {
   3064     const UNINIT: ::std::mem::MaybeUninit<ndb_tce> = ::std::mem::MaybeUninit::uninit();
   3065     let ptr = UNINIT.as_ptr();
   3066     assert_eq!(
   3067         ::std::mem::size_of::<ndb_tce>(),
   3068         48usize,
   3069         concat!("Size of: ", stringify!(ndb_tce))
   3070     );
   3071     assert_eq!(
   3072         ::std::mem::align_of::<ndb_tce>(),
   3073         8usize,
   3074         concat!("Alignment of ", stringify!(ndb_tce))
   3075     );
   3076     assert_eq!(
   3077         unsafe { ::std::ptr::addr_of!((*ptr).evtype) as usize - ptr as usize },
   3078         0usize,
   3079         concat!(
   3080             "Offset of field: ",
   3081             stringify!(ndb_tce),
   3082             "::",
   3083             stringify!(evtype)
   3084         )
   3085     );
   3086     assert_eq!(
   3087         unsafe { ::std::ptr::addr_of!((*ptr).subid) as usize - ptr as usize },
   3088         8usize,
   3089         concat!(
   3090             "Offset of field: ",
   3091             stringify!(ndb_tce),
   3092             "::",
   3093             stringify!(subid)
   3094         )
   3095     );
   3096     assert_eq!(
   3097         unsafe { ::std::ptr::addr_of!((*ptr).subid_len) as usize - ptr as usize },
   3098         16usize,
   3099         concat!(
   3100             "Offset of field: ",
   3101             stringify!(ndb_tce),
   3102             "::",
   3103             stringify!(subid_len)
   3104         )
   3105     );
   3106 }
   3107 pub type ndb_ingest_filter_fn = ::std::option::Option<
   3108     unsafe extern "C" fn(
   3109         arg1: *mut ::std::os::raw::c_void,
   3110         arg2: *mut ndb_note,
   3111     ) -> ndb_ingest_filter_action,
   3112 >;
   3113 pub const ndb_filter_fieldtype_NDB_FILTER_IDS: ndb_filter_fieldtype = 1;
   3114 pub const ndb_filter_fieldtype_NDB_FILTER_AUTHORS: ndb_filter_fieldtype = 2;
   3115 pub const ndb_filter_fieldtype_NDB_FILTER_KINDS: ndb_filter_fieldtype = 3;
   3116 pub const ndb_filter_fieldtype_NDB_FILTER_TAGS: ndb_filter_fieldtype = 4;
   3117 pub const ndb_filter_fieldtype_NDB_FILTER_SINCE: ndb_filter_fieldtype = 5;
   3118 pub const ndb_filter_fieldtype_NDB_FILTER_UNTIL: ndb_filter_fieldtype = 6;
   3119 pub const ndb_filter_fieldtype_NDB_FILTER_LIMIT: ndb_filter_fieldtype = 7;
   3120 pub type ndb_filter_fieldtype = ::std::os::raw::c_uint;
   3121 pub const ndb_generic_element_type_NDB_ELEMENT_UNKNOWN: ndb_generic_element_type = 0;
   3122 pub const ndb_generic_element_type_NDB_ELEMENT_STRING: ndb_generic_element_type = 1;
   3123 pub const ndb_generic_element_type_NDB_ELEMENT_ID: ndb_generic_element_type = 2;
   3124 pub const ndb_generic_element_type_NDB_ELEMENT_INT: ndb_generic_element_type = 3;
   3125 pub type ndb_generic_element_type = ::std::os::raw::c_uint;
   3126 pub const ndb_search_order_NDB_ORDER_DESCENDING: ndb_search_order = 0;
   3127 pub const ndb_search_order_NDB_ORDER_ASCENDING: ndb_search_order = 1;
   3128 pub type ndb_search_order = ::std::os::raw::c_uint;
   3129 pub const ndb_dbs_NDB_DB_NOTE: ndb_dbs = 0;
   3130 pub const ndb_dbs_NDB_DB_META: ndb_dbs = 1;
   3131 pub const ndb_dbs_NDB_DB_PROFILE: ndb_dbs = 2;
   3132 pub const ndb_dbs_NDB_DB_NOTE_ID: ndb_dbs = 3;
   3133 pub const ndb_dbs_NDB_DB_PROFILE_PK: ndb_dbs = 4;
   3134 pub const ndb_dbs_NDB_DB_NDB_META: ndb_dbs = 5;
   3135 pub const ndb_dbs_NDB_DB_PROFILE_SEARCH: ndb_dbs = 6;
   3136 pub const ndb_dbs_NDB_DB_PROFILE_LAST_FETCH: ndb_dbs = 7;
   3137 pub const ndb_dbs_NDB_DB_NOTE_KIND: ndb_dbs = 8;
   3138 pub const ndb_dbs_NDB_DB_NOTE_TEXT: ndb_dbs = 9;
   3139 pub const ndb_dbs_NDB_DB_NOTE_BLOCKS: ndb_dbs = 10;
   3140 pub const ndb_dbs_NDB_DB_NOTE_TAGS: ndb_dbs = 11;
   3141 pub const ndb_dbs_NDB_DBS: ndb_dbs = 12;
   3142 pub type ndb_dbs = ::std::os::raw::c_uint;
   3143 pub const ndb_common_kind_NDB_CKIND_PROFILE: ndb_common_kind = 0;
   3144 pub const ndb_common_kind_NDB_CKIND_TEXT: ndb_common_kind = 1;
   3145 pub const ndb_common_kind_NDB_CKIND_CONTACTS: ndb_common_kind = 2;
   3146 pub const ndb_common_kind_NDB_CKIND_DM: ndb_common_kind = 3;
   3147 pub const ndb_common_kind_NDB_CKIND_DELETE: ndb_common_kind = 4;
   3148 pub const ndb_common_kind_NDB_CKIND_REPOST: ndb_common_kind = 5;
   3149 pub const ndb_common_kind_NDB_CKIND_REACTION: ndb_common_kind = 6;
   3150 pub const ndb_common_kind_NDB_CKIND_ZAP: ndb_common_kind = 7;
   3151 pub const ndb_common_kind_NDB_CKIND_ZAP_REQUEST: ndb_common_kind = 8;
   3152 pub const ndb_common_kind_NDB_CKIND_NWC_REQUEST: ndb_common_kind = 9;
   3153 pub const ndb_common_kind_NDB_CKIND_NWC_RESPONSE: ndb_common_kind = 10;
   3154 pub const ndb_common_kind_NDB_CKIND_HTTP_AUTH: ndb_common_kind = 11;
   3155 pub const ndb_common_kind_NDB_CKIND_LIST: ndb_common_kind = 12;
   3156 pub const ndb_common_kind_NDB_CKIND_LONGFORM: ndb_common_kind = 13;
   3157 pub const ndb_common_kind_NDB_CKIND_STATUS: ndb_common_kind = 14;
   3158 pub const ndb_common_kind_NDB_CKIND_COUNT: ndb_common_kind = 15;
   3159 pub type ndb_common_kind = ::std::os::raw::c_uint;
   3160 #[repr(C)]
   3161 #[derive(Debug, Copy, Clone)]
   3162 pub struct ndb_builder {
   3163     pub mem: cursor,
   3164     pub note_cur: cursor,
   3165     pub strings: cursor,
   3166     pub str_indices: cursor,
   3167     pub note: *mut ndb_note,
   3168     pub current_tag: *mut ndb_tag,
   3169 }
   3170 #[test]
   3171 fn bindgen_test_layout_ndb_builder() {
   3172     const UNINIT: ::std::mem::MaybeUninit<ndb_builder> = ::std::mem::MaybeUninit::uninit();
   3173     let ptr = UNINIT.as_ptr();
   3174     assert_eq!(
   3175         ::std::mem::size_of::<ndb_builder>(),
   3176         112usize,
   3177         concat!("Size of: ", stringify!(ndb_builder))
   3178     );
   3179     assert_eq!(
   3180         ::std::mem::align_of::<ndb_builder>(),
   3181         8usize,
   3182         concat!("Alignment of ", stringify!(ndb_builder))
   3183     );
   3184     assert_eq!(
   3185         unsafe { ::std::ptr::addr_of!((*ptr).mem) as usize - ptr as usize },
   3186         0usize,
   3187         concat!(
   3188             "Offset of field: ",
   3189             stringify!(ndb_builder),
   3190             "::",
   3191             stringify!(mem)
   3192         )
   3193     );
   3194     assert_eq!(
   3195         unsafe { ::std::ptr::addr_of!((*ptr).note_cur) as usize - ptr as usize },
   3196         24usize,
   3197         concat!(
   3198             "Offset of field: ",
   3199             stringify!(ndb_builder),
   3200             "::",
   3201             stringify!(note_cur)
   3202         )
   3203     );
   3204     assert_eq!(
   3205         unsafe { ::std::ptr::addr_of!((*ptr).strings) as usize - ptr as usize },
   3206         48usize,
   3207         concat!(
   3208             "Offset of field: ",
   3209             stringify!(ndb_builder),
   3210             "::",
   3211             stringify!(strings)
   3212         )
   3213     );
   3214     assert_eq!(
   3215         unsafe { ::std::ptr::addr_of!((*ptr).str_indices) as usize - ptr as usize },
   3216         72usize,
   3217         concat!(
   3218             "Offset of field: ",
   3219             stringify!(ndb_builder),
   3220             "::",
   3221             stringify!(str_indices)
   3222         )
   3223     );
   3224     assert_eq!(
   3225         unsafe { ::std::ptr::addr_of!((*ptr).note) as usize - ptr as usize },
   3226         96usize,
   3227         concat!(
   3228             "Offset of field: ",
   3229             stringify!(ndb_builder),
   3230             "::",
   3231             stringify!(note)
   3232         )
   3233     );
   3234     assert_eq!(
   3235         unsafe { ::std::ptr::addr_of!((*ptr).current_tag) as usize - ptr as usize },
   3236         104usize,
   3237         concat!(
   3238             "Offset of field: ",
   3239             stringify!(ndb_builder),
   3240             "::",
   3241             stringify!(current_tag)
   3242         )
   3243     );
   3244 }
   3245 #[repr(C)]
   3246 #[derive(Debug, Copy, Clone)]
   3247 pub struct ndb_iterator {
   3248     pub note: *mut ndb_note,
   3249     pub tag: *mut ndb_tag,
   3250     pub index: ::std::os::raw::c_int,
   3251 }
   3252 #[test]
   3253 fn bindgen_test_layout_ndb_iterator() {
   3254     const UNINIT: ::std::mem::MaybeUninit<ndb_iterator> = ::std::mem::MaybeUninit::uninit();
   3255     let ptr = UNINIT.as_ptr();
   3256     assert_eq!(
   3257         ::std::mem::size_of::<ndb_iterator>(),
   3258         24usize,
   3259         concat!("Size of: ", stringify!(ndb_iterator))
   3260     );
   3261     assert_eq!(
   3262         ::std::mem::align_of::<ndb_iterator>(),
   3263         8usize,
   3264         concat!("Alignment of ", stringify!(ndb_iterator))
   3265     );
   3266     assert_eq!(
   3267         unsafe { ::std::ptr::addr_of!((*ptr).note) as usize - ptr as usize },
   3268         0usize,
   3269         concat!(
   3270             "Offset of field: ",
   3271             stringify!(ndb_iterator),
   3272             "::",
   3273             stringify!(note)
   3274         )
   3275     );
   3276     assert_eq!(
   3277         unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize },
   3278         8usize,
   3279         concat!(
   3280             "Offset of field: ",
   3281             stringify!(ndb_iterator),
   3282             "::",
   3283             stringify!(tag)
   3284         )
   3285     );
   3286     assert_eq!(
   3287         unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize },
   3288         16usize,
   3289         concat!(
   3290             "Offset of field: ",
   3291             stringify!(ndb_iterator),
   3292             "::",
   3293             stringify!(index)
   3294         )
   3295     );
   3296 }
   3297 #[repr(C)]
   3298 #[derive(Debug, Copy, Clone)]
   3299 pub struct ndb_filter_string {
   3300     pub string: *const ::std::os::raw::c_char,
   3301     pub len: ::std::os::raw::c_int,
   3302 }
   3303 #[test]
   3304 fn bindgen_test_layout_ndb_filter_string() {
   3305     const UNINIT: ::std::mem::MaybeUninit<ndb_filter_string> = ::std::mem::MaybeUninit::uninit();
   3306     let ptr = UNINIT.as_ptr();
   3307     assert_eq!(
   3308         ::std::mem::size_of::<ndb_filter_string>(),
   3309         16usize,
   3310         concat!("Size of: ", stringify!(ndb_filter_string))
   3311     );
   3312     assert_eq!(
   3313         ::std::mem::align_of::<ndb_filter_string>(),
   3314         8usize,
   3315         concat!("Alignment of ", stringify!(ndb_filter_string))
   3316     );
   3317     assert_eq!(
   3318         unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize },
   3319         0usize,
   3320         concat!(
   3321             "Offset of field: ",
   3322             stringify!(ndb_filter_string),
   3323             "::",
   3324             stringify!(string)
   3325         )
   3326     );
   3327     assert_eq!(
   3328         unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
   3329         8usize,
   3330         concat!(
   3331             "Offset of field: ",
   3332             stringify!(ndb_filter_string),
   3333             "::",
   3334             stringify!(len)
   3335         )
   3336     );
   3337 }
   3338 #[repr(C)]
   3339 #[derive(Copy, Clone)]
   3340 pub union ndb_filter_element {
   3341     pub string: ndb_filter_string,
   3342     pub id: *const ::std::os::raw::c_uchar,
   3343     pub integer: u64,
   3344 }
   3345 #[test]
   3346 fn bindgen_test_layout_ndb_filter_element() {
   3347     const UNINIT: ::std::mem::MaybeUninit<ndb_filter_element> = ::std::mem::MaybeUninit::uninit();
   3348     let ptr = UNINIT.as_ptr();
   3349     assert_eq!(
   3350         ::std::mem::size_of::<ndb_filter_element>(),
   3351         16usize,
   3352         concat!("Size of: ", stringify!(ndb_filter_element))
   3353     );
   3354     assert_eq!(
   3355         ::std::mem::align_of::<ndb_filter_element>(),
   3356         8usize,
   3357         concat!("Alignment of ", stringify!(ndb_filter_element))
   3358     );
   3359     assert_eq!(
   3360         unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize },
   3361         0usize,
   3362         concat!(
   3363             "Offset of field: ",
   3364             stringify!(ndb_filter_element),
   3365             "::",
   3366             stringify!(string)
   3367         )
   3368     );
   3369     assert_eq!(
   3370         unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize },
   3371         0usize,
   3372         concat!(
   3373             "Offset of field: ",
   3374             stringify!(ndb_filter_element),
   3375             "::",
   3376             stringify!(id)
   3377         )
   3378     );
   3379     assert_eq!(
   3380         unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize },
   3381         0usize,
   3382         concat!(
   3383             "Offset of field: ",
   3384             stringify!(ndb_filter_element),
   3385             "::",
   3386             stringify!(integer)
   3387         )
   3388     );
   3389 }
   3390 #[repr(C)]
   3391 #[derive(Debug, Copy, Clone)]
   3392 pub struct ndb_filter_field {
   3393     pub type_: ndb_filter_fieldtype,
   3394     pub elem_type: ndb_generic_element_type,
   3395     pub tag: ::std::os::raw::c_char,
   3396 }
   3397 #[test]
   3398 fn bindgen_test_layout_ndb_filter_field() {
   3399     const UNINIT: ::std::mem::MaybeUninit<ndb_filter_field> = ::std::mem::MaybeUninit::uninit();
   3400     let ptr = UNINIT.as_ptr();
   3401     assert_eq!(
   3402         ::std::mem::size_of::<ndb_filter_field>(),
   3403         12usize,
   3404         concat!("Size of: ", stringify!(ndb_filter_field))
   3405     );
   3406     assert_eq!(
   3407         ::std::mem::align_of::<ndb_filter_field>(),
   3408         4usize,
   3409         concat!("Alignment of ", stringify!(ndb_filter_field))
   3410     );
   3411     assert_eq!(
   3412         unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
   3413         0usize,
   3414         concat!(
   3415             "Offset of field: ",
   3416             stringify!(ndb_filter_field),
   3417             "::",
   3418             stringify!(type_)
   3419         )
   3420     );
   3421     assert_eq!(
   3422         unsafe { ::std::ptr::addr_of!((*ptr).elem_type) as usize - ptr as usize },
   3423         4usize,
   3424         concat!(
   3425             "Offset of field: ",
   3426             stringify!(ndb_filter_field),
   3427             "::",
   3428             stringify!(elem_type)
   3429         )
   3430     );
   3431     assert_eq!(
   3432         unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize },
   3433         8usize,
   3434         concat!(
   3435             "Offset of field: ",
   3436             stringify!(ndb_filter_field),
   3437             "::",
   3438             stringify!(tag)
   3439         )
   3440     );
   3441 }
   3442 #[repr(C)]
   3443 #[derive(Debug)]
   3444 pub struct ndb_filter_elements {
   3445     pub field: ndb_filter_field,
   3446     pub count: ::std::os::raw::c_int,
   3447     pub elements: __IncompleteArrayField<u64>,
   3448 }
   3449 #[test]
   3450 fn bindgen_test_layout_ndb_filter_elements() {
   3451     const UNINIT: ::std::mem::MaybeUninit<ndb_filter_elements> = ::std::mem::MaybeUninit::uninit();
   3452     let ptr = UNINIT.as_ptr();
   3453     assert_eq!(
   3454         ::std::mem::size_of::<ndb_filter_elements>(),
   3455         16usize,
   3456         concat!("Size of: ", stringify!(ndb_filter_elements))
   3457     );
   3458     assert_eq!(
   3459         ::std::mem::align_of::<ndb_filter_elements>(),
   3460         8usize,
   3461         concat!("Alignment of ", stringify!(ndb_filter_elements))
   3462     );
   3463     assert_eq!(
   3464         unsafe { ::std::ptr::addr_of!((*ptr).field) as usize - ptr as usize },
   3465         0usize,
   3466         concat!(
   3467             "Offset of field: ",
   3468             stringify!(ndb_filter_elements),
   3469             "::",
   3470             stringify!(field)
   3471         )
   3472     );
   3473     assert_eq!(
   3474         unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize },
   3475         12usize,
   3476         concat!(
   3477             "Offset of field: ",
   3478             stringify!(ndb_filter_elements),
   3479             "::",
   3480             stringify!(count)
   3481         )
   3482     );
   3483     assert_eq!(
   3484         unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize },
   3485         16usize,
   3486         concat!(
   3487             "Offset of field: ",
   3488             stringify!(ndb_filter_elements),
   3489             "::",
   3490             stringify!(elements)
   3491         )
   3492     );
   3493 }
   3494 #[repr(C)]
   3495 #[derive(Debug, Copy, Clone)]
   3496 pub struct ndb_filter {
   3497     pub elem_buf: cursor,
   3498     pub data_buf: cursor,
   3499     pub num_elements: ::std::os::raw::c_int,
   3500     pub finalized: ::std::os::raw::c_int,
   3501     pub current: ::std::os::raw::c_int,
   3502     pub elements: [::std::os::raw::c_int; 7usize],
   3503 }
   3504 #[test]
   3505 fn bindgen_test_layout_ndb_filter() {
   3506     const UNINIT: ::std::mem::MaybeUninit<ndb_filter> = ::std::mem::MaybeUninit::uninit();
   3507     let ptr = UNINIT.as_ptr();
   3508     assert_eq!(
   3509         ::std::mem::size_of::<ndb_filter>(),
   3510         88usize,
   3511         concat!("Size of: ", stringify!(ndb_filter))
   3512     );
   3513     assert_eq!(
   3514         ::std::mem::align_of::<ndb_filter>(),
   3515         8usize,
   3516         concat!("Alignment of ", stringify!(ndb_filter))
   3517     );
   3518     assert_eq!(
   3519         unsafe { ::std::ptr::addr_of!((*ptr).elem_buf) as usize - ptr as usize },
   3520         0usize,
   3521         concat!(
   3522             "Offset of field: ",
   3523             stringify!(ndb_filter),
   3524             "::",
   3525             stringify!(elem_buf)
   3526         )
   3527     );
   3528     assert_eq!(
   3529         unsafe { ::std::ptr::addr_of!((*ptr).data_buf) as usize - ptr as usize },
   3530         24usize,
   3531         concat!(
   3532             "Offset of field: ",
   3533             stringify!(ndb_filter),
   3534             "::",
   3535             stringify!(data_buf)
   3536         )
   3537     );
   3538     assert_eq!(
   3539         unsafe { ::std::ptr::addr_of!((*ptr).num_elements) as usize - ptr as usize },
   3540         48usize,
   3541         concat!(
   3542             "Offset of field: ",
   3543             stringify!(ndb_filter),
   3544             "::",
   3545             stringify!(num_elements)
   3546         )
   3547     );
   3548     assert_eq!(
   3549         unsafe { ::std::ptr::addr_of!((*ptr).finalized) as usize - ptr as usize },
   3550         52usize,
   3551         concat!(
   3552             "Offset of field: ",
   3553             stringify!(ndb_filter),
   3554             "::",
   3555             stringify!(finalized)
   3556         )
   3557     );
   3558     assert_eq!(
   3559         unsafe { ::std::ptr::addr_of!((*ptr).current) as usize - ptr as usize },
   3560         56usize,
   3561         concat!(
   3562             "Offset of field: ",
   3563             stringify!(ndb_filter),
   3564             "::",
   3565             stringify!(current)
   3566         )
   3567     );
   3568     assert_eq!(
   3569         unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize },
   3570         60usize,
   3571         concat!(
   3572             "Offset of field: ",
   3573             stringify!(ndb_filter),
   3574             "::",
   3575             stringify!(elements)
   3576         )
   3577     );
   3578 }
   3579 #[repr(C)]
   3580 #[derive(Debug, Copy, Clone)]
   3581 pub struct ndb_config {
   3582     pub flags: ::std::os::raw::c_int,
   3583     pub ingester_threads: ::std::os::raw::c_int,
   3584     pub mapsize: usize,
   3585     pub filter_context: *mut ::std::os::raw::c_void,
   3586     pub ingest_filter: ndb_ingest_filter_fn,
   3587     pub sub_cb_ctx: *mut ::std::os::raw::c_void,
   3588     pub sub_cb: ndb_sub_fn,
   3589 }
   3590 #[test]
   3591 fn bindgen_test_layout_ndb_config() {
   3592     const UNINIT: ::std::mem::MaybeUninit<ndb_config> = ::std::mem::MaybeUninit::uninit();
   3593     let ptr = UNINIT.as_ptr();
   3594     assert_eq!(
   3595         ::std::mem::size_of::<ndb_config>(),
   3596         48usize,
   3597         concat!("Size of: ", stringify!(ndb_config))
   3598     );
   3599     assert_eq!(
   3600         ::std::mem::align_of::<ndb_config>(),
   3601         8usize,
   3602         concat!("Alignment of ", stringify!(ndb_config))
   3603     );
   3604     assert_eq!(
   3605         unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
   3606         0usize,
   3607         concat!(
   3608             "Offset of field: ",
   3609             stringify!(ndb_config),
   3610             "::",
   3611             stringify!(flags)
   3612         )
   3613     );
   3614     assert_eq!(
   3615         unsafe { ::std::ptr::addr_of!((*ptr).ingester_threads) as usize - ptr as usize },
   3616         4usize,
   3617         concat!(
   3618             "Offset of field: ",
   3619             stringify!(ndb_config),
   3620             "::",
   3621             stringify!(ingester_threads)
   3622         )
   3623     );
   3624     assert_eq!(
   3625         unsafe { ::std::ptr::addr_of!((*ptr).mapsize) as usize - ptr as usize },
   3626         8usize,
   3627         concat!(
   3628             "Offset of field: ",
   3629             stringify!(ndb_config),
   3630             "::",
   3631             stringify!(mapsize)
   3632         )
   3633     );
   3634     assert_eq!(
   3635         unsafe { ::std::ptr::addr_of!((*ptr).filter_context) as usize - ptr as usize },
   3636         16usize,
   3637         concat!(
   3638             "Offset of field: ",
   3639             stringify!(ndb_config),
   3640             "::",
   3641             stringify!(filter_context)
   3642         )
   3643     );
   3644     assert_eq!(
   3645         unsafe { ::std::ptr::addr_of!((*ptr).ingest_filter) as usize - ptr as usize },
   3646         24usize,
   3647         concat!(
   3648             "Offset of field: ",
   3649             stringify!(ndb_config),
   3650             "::",
   3651             stringify!(ingest_filter)
   3652         )
   3653     );
   3654     assert_eq!(
   3655         unsafe { ::std::ptr::addr_of!((*ptr).sub_cb_ctx) as usize - ptr as usize },
   3656         32usize,
   3657         concat!(
   3658             "Offset of field: ",
   3659             stringify!(ndb_config),
   3660             "::",
   3661             stringify!(sub_cb_ctx)
   3662         )
   3663     );
   3664     assert_eq!(
   3665         unsafe { ::std::ptr::addr_of!((*ptr).sub_cb) as usize - ptr as usize },
   3666         40usize,
   3667         concat!(
   3668             "Offset of field: ",
   3669             stringify!(ndb_config),
   3670             "::",
   3671             stringify!(sub_cb)
   3672         )
   3673     );
   3674 }
   3675 #[repr(C)]
   3676 #[derive(Debug, Copy, Clone)]
   3677 pub struct ndb_text_search_config {
   3678     pub order: ndb_search_order,
   3679     pub limit: ::std::os::raw::c_int,
   3680 }
   3681 #[test]
   3682 fn bindgen_test_layout_ndb_text_search_config() {
   3683     const UNINIT: ::std::mem::MaybeUninit<ndb_text_search_config> =
   3684         ::std::mem::MaybeUninit::uninit();
   3685     let ptr = UNINIT.as_ptr();
   3686     assert_eq!(
   3687         ::std::mem::size_of::<ndb_text_search_config>(),
   3688         8usize,
   3689         concat!("Size of: ", stringify!(ndb_text_search_config))
   3690     );
   3691     assert_eq!(
   3692         ::std::mem::align_of::<ndb_text_search_config>(),
   3693         4usize,
   3694         concat!("Alignment of ", stringify!(ndb_text_search_config))
   3695     );
   3696     assert_eq!(
   3697         unsafe { ::std::ptr::addr_of!((*ptr).order) as usize - ptr as usize },
   3698         0usize,
   3699         concat!(
   3700             "Offset of field: ",
   3701             stringify!(ndb_text_search_config),
   3702             "::",
   3703             stringify!(order)
   3704         )
   3705     );
   3706     assert_eq!(
   3707         unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize },
   3708         4usize,
   3709         concat!(
   3710             "Offset of field: ",
   3711             stringify!(ndb_text_search_config),
   3712             "::",
   3713             stringify!(limit)
   3714         )
   3715     );
   3716 }
   3717 #[repr(C)]
   3718 #[derive(Debug, Copy, Clone)]
   3719 pub struct ndb_stat_counts {
   3720     pub key_size: usize,
   3721     pub value_size: usize,
   3722     pub count: usize,
   3723 }
   3724 #[test]
   3725 fn bindgen_test_layout_ndb_stat_counts() {
   3726     const UNINIT: ::std::mem::MaybeUninit<ndb_stat_counts> = ::std::mem::MaybeUninit::uninit();
   3727     let ptr = UNINIT.as_ptr();
   3728     assert_eq!(
   3729         ::std::mem::size_of::<ndb_stat_counts>(),
   3730         24usize,
   3731         concat!("Size of: ", stringify!(ndb_stat_counts))
   3732     );
   3733     assert_eq!(
   3734         ::std::mem::align_of::<ndb_stat_counts>(),
   3735         8usize,
   3736         concat!("Alignment of ", stringify!(ndb_stat_counts))
   3737     );
   3738     assert_eq!(
   3739         unsafe { ::std::ptr::addr_of!((*ptr).key_size) as usize - ptr as usize },
   3740         0usize,
   3741         concat!(
   3742             "Offset of field: ",
   3743             stringify!(ndb_stat_counts),
   3744             "::",
   3745             stringify!(key_size)
   3746         )
   3747     );
   3748     assert_eq!(
   3749         unsafe { ::std::ptr::addr_of!((*ptr).value_size) as usize - ptr as usize },
   3750         8usize,
   3751         concat!(
   3752             "Offset of field: ",
   3753             stringify!(ndb_stat_counts),
   3754             "::",
   3755             stringify!(value_size)
   3756         )
   3757     );
   3758     assert_eq!(
   3759         unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize },
   3760         16usize,
   3761         concat!(
   3762             "Offset of field: ",
   3763             stringify!(ndb_stat_counts),
   3764             "::",
   3765             stringify!(count)
   3766         )
   3767     );
   3768 }
   3769 #[repr(C)]
   3770 #[derive(Debug, Copy, Clone)]
   3771 pub struct ndb_stat {
   3772     pub dbs: [ndb_stat_counts; 12usize],
   3773     pub common_kinds: [ndb_stat_counts; 15usize],
   3774     pub other_kinds: ndb_stat_counts,
   3775 }
   3776 #[test]
   3777 fn bindgen_test_layout_ndb_stat() {
   3778     const UNINIT: ::std::mem::MaybeUninit<ndb_stat> = ::std::mem::MaybeUninit::uninit();
   3779     let ptr = UNINIT.as_ptr();
   3780     assert_eq!(
   3781         ::std::mem::size_of::<ndb_stat>(),
   3782         672usize,
   3783         concat!("Size of: ", stringify!(ndb_stat))
   3784     );
   3785     assert_eq!(
   3786         ::std::mem::align_of::<ndb_stat>(),
   3787         8usize,
   3788         concat!("Alignment of ", stringify!(ndb_stat))
   3789     );
   3790     assert_eq!(
   3791         unsafe { ::std::ptr::addr_of!((*ptr).dbs) as usize - ptr as usize },
   3792         0usize,
   3793         concat!(
   3794             "Offset of field: ",
   3795             stringify!(ndb_stat),
   3796             "::",
   3797             stringify!(dbs)
   3798         )
   3799     );
   3800     assert_eq!(
   3801         unsafe { ::std::ptr::addr_of!((*ptr).common_kinds) as usize - ptr as usize },
   3802         288usize,
   3803         concat!(
   3804             "Offset of field: ",
   3805             stringify!(ndb_stat),
   3806             "::",
   3807             stringify!(common_kinds)
   3808         )
   3809     );
   3810     assert_eq!(
   3811         unsafe { ::std::ptr::addr_of!((*ptr).other_kinds) as usize - ptr as usize },
   3812         648usize,
   3813         concat!(
   3814             "Offset of field: ",
   3815             stringify!(ndb_stat),
   3816             "::",
   3817             stringify!(other_kinds)
   3818         )
   3819     );
   3820 }
   3821 #[repr(C)]
   3822 #[derive(Debug, Copy, Clone)]
   3823 pub struct ndb_text_search_key {
   3824     pub str_len: ::std::os::raw::c_int,
   3825     pub str_: *const ::std::os::raw::c_char,
   3826     pub timestamp: u64,
   3827     pub note_id: u64,
   3828     pub word_index: u64,
   3829 }
   3830 #[test]
   3831 fn bindgen_test_layout_ndb_text_search_key() {
   3832     const UNINIT: ::std::mem::MaybeUninit<ndb_text_search_key> = ::std::mem::MaybeUninit::uninit();
   3833     let ptr = UNINIT.as_ptr();
   3834     assert_eq!(
   3835         ::std::mem::size_of::<ndb_text_search_key>(),
   3836         40usize,
   3837         concat!("Size of: ", stringify!(ndb_text_search_key))
   3838     );
   3839     assert_eq!(
   3840         ::std::mem::align_of::<ndb_text_search_key>(),
   3841         8usize,
   3842         concat!("Alignment of ", stringify!(ndb_text_search_key))
   3843     );
   3844     assert_eq!(
   3845         unsafe { ::std::ptr::addr_of!((*ptr).str_len) as usize - ptr as usize },
   3846         0usize,
   3847         concat!(
   3848             "Offset of field: ",
   3849             stringify!(ndb_text_search_key),
   3850             "::",
   3851             stringify!(str_len)
   3852         )
   3853     );
   3854     assert_eq!(
   3855         unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize },
   3856         8usize,
   3857         concat!(
   3858             "Offset of field: ",
   3859             stringify!(ndb_text_search_key),
   3860             "::",
   3861             stringify!(str_)
   3862         )
   3863     );
   3864     assert_eq!(
   3865         unsafe { ::std::ptr::addr_of!((*ptr).timestamp) as usize - ptr as usize },
   3866         16usize,
   3867         concat!(
   3868             "Offset of field: ",
   3869             stringify!(ndb_text_search_key),
   3870             "::",
   3871             stringify!(timestamp)
   3872         )
   3873     );
   3874     assert_eq!(
   3875         unsafe { ::std::ptr::addr_of!((*ptr).note_id) as usize - ptr as usize },
   3876         24usize,
   3877         concat!(
   3878             "Offset of field: ",
   3879             stringify!(ndb_text_search_key),
   3880             "::",
   3881             stringify!(note_id)
   3882         )
   3883     );
   3884     assert_eq!(
   3885         unsafe { ::std::ptr::addr_of!((*ptr).word_index) as usize - ptr as usize },
   3886         32usize,
   3887         concat!(
   3888             "Offset of field: ",
   3889             stringify!(ndb_text_search_key),
   3890             "::",
   3891             stringify!(word_index)
   3892         )
   3893     );
   3894 }
   3895 #[repr(C)]
   3896 #[derive(Debug, Copy, Clone)]
   3897 pub struct ndb_text_search_result {
   3898     pub key: ndb_text_search_key,
   3899     pub prefix_chars: ::std::os::raw::c_int,
   3900 }
   3901 #[test]
   3902 fn bindgen_test_layout_ndb_text_search_result() {
   3903     const UNINIT: ::std::mem::MaybeUninit<ndb_text_search_result> =
   3904         ::std::mem::MaybeUninit::uninit();
   3905     let ptr = UNINIT.as_ptr();
   3906     assert_eq!(
   3907         ::std::mem::size_of::<ndb_text_search_result>(),
   3908         48usize,
   3909         concat!("Size of: ", stringify!(ndb_text_search_result))
   3910     );
   3911     assert_eq!(
   3912         ::std::mem::align_of::<ndb_text_search_result>(),
   3913         8usize,
   3914         concat!("Alignment of ", stringify!(ndb_text_search_result))
   3915     );
   3916     assert_eq!(
   3917         unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize },
   3918         0usize,
   3919         concat!(
   3920             "Offset of field: ",
   3921             stringify!(ndb_text_search_result),
   3922             "::",
   3923             stringify!(key)
   3924         )
   3925     );
   3926     assert_eq!(
   3927         unsafe { ::std::ptr::addr_of!((*ptr).prefix_chars) as usize - ptr as usize },
   3928         40usize,
   3929         concat!(
   3930             "Offset of field: ",
   3931             stringify!(ndb_text_search_result),
   3932             "::",
   3933             stringify!(prefix_chars)
   3934         )
   3935     );
   3936 }
   3937 #[repr(C)]
   3938 #[derive(Debug, Copy, Clone)]
   3939 pub struct ndb_text_search_results {
   3940     pub results: [ndb_text_search_result; 128usize],
   3941     pub num_results: ::std::os::raw::c_int,
   3942 }
   3943 #[test]
   3944 fn bindgen_test_layout_ndb_text_search_results() {
   3945     const UNINIT: ::std::mem::MaybeUninit<ndb_text_search_results> =
   3946         ::std::mem::MaybeUninit::uninit();
   3947     let ptr = UNINIT.as_ptr();
   3948     assert_eq!(
   3949         ::std::mem::size_of::<ndb_text_search_results>(),
   3950         6152usize,
   3951         concat!("Size of: ", stringify!(ndb_text_search_results))
   3952     );
   3953     assert_eq!(
   3954         ::std::mem::align_of::<ndb_text_search_results>(),
   3955         8usize,
   3956         concat!("Alignment of ", stringify!(ndb_text_search_results))
   3957     );
   3958     assert_eq!(
   3959         unsafe { ::std::ptr::addr_of!((*ptr).results) as usize - ptr as usize },
   3960         0usize,
   3961         concat!(
   3962             "Offset of field: ",
   3963             stringify!(ndb_text_search_results),
   3964             "::",
   3965             stringify!(results)
   3966         )
   3967     );
   3968     assert_eq!(
   3969         unsafe { ::std::ptr::addr_of!((*ptr).num_results) as usize - ptr as usize },
   3970         6144usize,
   3971         concat!(
   3972             "Offset of field: ",
   3973             stringify!(ndb_text_search_results),
   3974             "::",
   3975             stringify!(num_results)
   3976         )
   3977     );
   3978 }
   3979 pub const ndb_block_type_BLOCK_HASHTAG: ndb_block_type = 1;
   3980 pub const ndb_block_type_BLOCK_TEXT: ndb_block_type = 2;
   3981 pub const ndb_block_type_BLOCK_MENTION_INDEX: ndb_block_type = 3;
   3982 pub const ndb_block_type_BLOCK_MENTION_BECH32: ndb_block_type = 4;
   3983 pub const ndb_block_type_BLOCK_URL: ndb_block_type = 5;
   3984 pub const ndb_block_type_BLOCK_INVOICE: ndb_block_type = 6;
   3985 pub type ndb_block_type = ::std::os::raw::c_uint;
   3986 #[repr(C)]
   3987 #[derive(Debug, Copy, Clone)]
   3988 pub struct ndb_relays {
   3989     pub relays: [ndb_str_block; 24usize],
   3990     pub num_relays: ::std::os::raw::c_int,
   3991 }
   3992 #[test]
   3993 fn bindgen_test_layout_ndb_relays() {
   3994     const UNINIT: ::std::mem::MaybeUninit<ndb_relays> = ::std::mem::MaybeUninit::uninit();
   3995     let ptr = UNINIT.as_ptr();
   3996     assert_eq!(
   3997         ::std::mem::size_of::<ndb_relays>(),
   3998         392usize,
   3999         concat!("Size of: ", stringify!(ndb_relays))
   4000     );
   4001     assert_eq!(
   4002         ::std::mem::align_of::<ndb_relays>(),
   4003         8usize,
   4004         concat!("Alignment of ", stringify!(ndb_relays))
   4005     );
   4006     assert_eq!(
   4007         unsafe { ::std::ptr::addr_of!((*ptr).relays) as usize - ptr as usize },
   4008         0usize,
   4009         concat!(
   4010             "Offset of field: ",
   4011             stringify!(ndb_relays),
   4012             "::",
   4013             stringify!(relays)
   4014         )
   4015     );
   4016     assert_eq!(
   4017         unsafe { ::std::ptr::addr_of!((*ptr).num_relays) as usize - ptr as usize },
   4018         384usize,
   4019         concat!(
   4020             "Offset of field: ",
   4021             stringify!(ndb_relays),
   4022             "::",
   4023             stringify!(num_relays)
   4024         )
   4025     );
   4026 }
   4027 pub const nostr_bech32_type_NOSTR_BECH32_NOTE: nostr_bech32_type = 1;
   4028 pub const nostr_bech32_type_NOSTR_BECH32_NPUB: nostr_bech32_type = 2;
   4029 pub const nostr_bech32_type_NOSTR_BECH32_NPROFILE: nostr_bech32_type = 3;
   4030 pub const nostr_bech32_type_NOSTR_BECH32_NEVENT: nostr_bech32_type = 4;
   4031 pub const nostr_bech32_type_NOSTR_BECH32_NRELAY: nostr_bech32_type = 5;
   4032 pub const nostr_bech32_type_NOSTR_BECH32_NADDR: nostr_bech32_type = 6;
   4033 pub const nostr_bech32_type_NOSTR_BECH32_NSEC: nostr_bech32_type = 7;
   4034 pub type nostr_bech32_type = ::std::os::raw::c_uint;
   4035 #[repr(C)]
   4036 #[derive(Debug, Copy, Clone)]
   4037 pub struct bech32_note {
   4038     pub event_id: *const ::std::os::raw::c_uchar,
   4039 }
   4040 #[test]
   4041 fn bindgen_test_layout_bech32_note() {
   4042     const UNINIT: ::std::mem::MaybeUninit<bech32_note> = ::std::mem::MaybeUninit::uninit();
   4043     let ptr = UNINIT.as_ptr();
   4044     assert_eq!(
   4045         ::std::mem::size_of::<bech32_note>(),
   4046         8usize,
   4047         concat!("Size of: ", stringify!(bech32_note))
   4048     );
   4049     assert_eq!(
   4050         ::std::mem::align_of::<bech32_note>(),
   4051         8usize,
   4052         concat!("Alignment of ", stringify!(bech32_note))
   4053     );
   4054     assert_eq!(
   4055         unsafe { ::std::ptr::addr_of!((*ptr).event_id) as usize - ptr as usize },
   4056         0usize,
   4057         concat!(
   4058             "Offset of field: ",
   4059             stringify!(bech32_note),
   4060             "::",
   4061             stringify!(event_id)
   4062         )
   4063     );
   4064 }
   4065 #[repr(C)]
   4066 #[derive(Debug, Copy, Clone)]
   4067 pub struct bech32_npub {
   4068     pub pubkey: *const ::std::os::raw::c_uchar,
   4069 }
   4070 #[test]
   4071 fn bindgen_test_layout_bech32_npub() {
   4072     const UNINIT: ::std::mem::MaybeUninit<bech32_npub> = ::std::mem::MaybeUninit::uninit();
   4073     let ptr = UNINIT.as_ptr();
   4074     assert_eq!(
   4075         ::std::mem::size_of::<bech32_npub>(),
   4076         8usize,
   4077         concat!("Size of: ", stringify!(bech32_npub))
   4078     );
   4079     assert_eq!(
   4080         ::std::mem::align_of::<bech32_npub>(),
   4081         8usize,
   4082         concat!("Alignment of ", stringify!(bech32_npub))
   4083     );
   4084     assert_eq!(
   4085         unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
   4086         0usize,
   4087         concat!(
   4088             "Offset of field: ",
   4089             stringify!(bech32_npub),
   4090             "::",
   4091             stringify!(pubkey)
   4092         )
   4093     );
   4094 }
   4095 #[repr(C)]
   4096 #[derive(Debug, Copy, Clone)]
   4097 pub struct bech32_nsec {
   4098     pub nsec: *const ::std::os::raw::c_uchar,
   4099 }
   4100 #[test]
   4101 fn bindgen_test_layout_bech32_nsec() {
   4102     const UNINIT: ::std::mem::MaybeUninit<bech32_nsec> = ::std::mem::MaybeUninit::uninit();
   4103     let ptr = UNINIT.as_ptr();
   4104     assert_eq!(
   4105         ::std::mem::size_of::<bech32_nsec>(),
   4106         8usize,
   4107         concat!("Size of: ", stringify!(bech32_nsec))
   4108     );
   4109     assert_eq!(
   4110         ::std::mem::align_of::<bech32_nsec>(),
   4111         8usize,
   4112         concat!("Alignment of ", stringify!(bech32_nsec))
   4113     );
   4114     assert_eq!(
   4115         unsafe { ::std::ptr::addr_of!((*ptr).nsec) as usize - ptr as usize },
   4116         0usize,
   4117         concat!(
   4118             "Offset of field: ",
   4119             stringify!(bech32_nsec),
   4120             "::",
   4121             stringify!(nsec)
   4122         )
   4123     );
   4124 }
   4125 #[repr(C)]
   4126 #[derive(Debug, Copy, Clone)]
   4127 pub struct bech32_nevent {
   4128     pub relays: ndb_relays,
   4129     pub event_id: *const ::std::os::raw::c_uchar,
   4130     pub pubkey: *const ::std::os::raw::c_uchar,
   4131 }
   4132 #[test]
   4133 fn bindgen_test_layout_bech32_nevent() {
   4134     const UNINIT: ::std::mem::MaybeUninit<bech32_nevent> = ::std::mem::MaybeUninit::uninit();
   4135     let ptr = UNINIT.as_ptr();
   4136     assert_eq!(
   4137         ::std::mem::size_of::<bech32_nevent>(),
   4138         408usize,
   4139         concat!("Size of: ", stringify!(bech32_nevent))
   4140     );
   4141     assert_eq!(
   4142         ::std::mem::align_of::<bech32_nevent>(),
   4143         8usize,
   4144         concat!("Alignment of ", stringify!(bech32_nevent))
   4145     );
   4146     assert_eq!(
   4147         unsafe { ::std::ptr::addr_of!((*ptr).relays) as usize - ptr as usize },
   4148         0usize,
   4149         concat!(
   4150             "Offset of field: ",
   4151             stringify!(bech32_nevent),
   4152             "::",
   4153             stringify!(relays)
   4154         )
   4155     );
   4156     assert_eq!(
   4157         unsafe { ::std::ptr::addr_of!((*ptr).event_id) as usize - ptr as usize },
   4158         392usize,
   4159         concat!(
   4160             "Offset of field: ",
   4161             stringify!(bech32_nevent),
   4162             "::",
   4163             stringify!(event_id)
   4164         )
   4165     );
   4166     assert_eq!(
   4167         unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
   4168         400usize,
   4169         concat!(
   4170             "Offset of field: ",
   4171             stringify!(bech32_nevent),
   4172             "::",
   4173             stringify!(pubkey)
   4174         )
   4175     );
   4176 }
   4177 #[repr(C)]
   4178 #[derive(Debug, Copy, Clone)]
   4179 pub struct bech32_nprofile {
   4180     pub relays: ndb_relays,
   4181     pub pubkey: *const ::std::os::raw::c_uchar,
   4182 }
   4183 #[test]
   4184 fn bindgen_test_layout_bech32_nprofile() {
   4185     const UNINIT: ::std::mem::MaybeUninit<bech32_nprofile> = ::std::mem::MaybeUninit::uninit();
   4186     let ptr = UNINIT.as_ptr();
   4187     assert_eq!(
   4188         ::std::mem::size_of::<bech32_nprofile>(),
   4189         400usize,
   4190         concat!("Size of: ", stringify!(bech32_nprofile))
   4191     );
   4192     assert_eq!(
   4193         ::std::mem::align_of::<bech32_nprofile>(),
   4194         8usize,
   4195         concat!("Alignment of ", stringify!(bech32_nprofile))
   4196     );
   4197     assert_eq!(
   4198         unsafe { ::std::ptr::addr_of!((*ptr).relays) as usize - ptr as usize },
   4199         0usize,
   4200         concat!(
   4201             "Offset of field: ",
   4202             stringify!(bech32_nprofile),
   4203             "::",
   4204             stringify!(relays)
   4205         )
   4206     );
   4207     assert_eq!(
   4208         unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
   4209         392usize,
   4210         concat!(
   4211             "Offset of field: ",
   4212             stringify!(bech32_nprofile),
   4213             "::",
   4214             stringify!(pubkey)
   4215         )
   4216     );
   4217 }
   4218 #[repr(C)]
   4219 #[derive(Debug, Copy, Clone)]
   4220 pub struct bech32_naddr {
   4221     pub relays: ndb_relays,
   4222     pub identifier: ndb_str_block,
   4223     pub pubkey: *const ::std::os::raw::c_uchar,
   4224 }
   4225 #[test]
   4226 fn bindgen_test_layout_bech32_naddr() {
   4227     const UNINIT: ::std::mem::MaybeUninit<bech32_naddr> = ::std::mem::MaybeUninit::uninit();
   4228     let ptr = UNINIT.as_ptr();
   4229     assert_eq!(
   4230         ::std::mem::size_of::<bech32_naddr>(),
   4231         416usize,
   4232         concat!("Size of: ", stringify!(bech32_naddr))
   4233     );
   4234     assert_eq!(
   4235         ::std::mem::align_of::<bech32_naddr>(),
   4236         8usize,
   4237         concat!("Alignment of ", stringify!(bech32_naddr))
   4238     );
   4239     assert_eq!(
   4240         unsafe { ::std::ptr::addr_of!((*ptr).relays) as usize - ptr as usize },
   4241         0usize,
   4242         concat!(
   4243             "Offset of field: ",
   4244             stringify!(bech32_naddr),
   4245             "::",
   4246             stringify!(relays)
   4247         )
   4248     );
   4249     assert_eq!(
   4250         unsafe { ::std::ptr::addr_of!((*ptr).identifier) as usize - ptr as usize },
   4251         392usize,
   4252         concat!(
   4253             "Offset of field: ",
   4254             stringify!(bech32_naddr),
   4255             "::",
   4256             stringify!(identifier)
   4257         )
   4258     );
   4259     assert_eq!(
   4260         unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
   4261         408usize,
   4262         concat!(
   4263             "Offset of field: ",
   4264             stringify!(bech32_naddr),
   4265             "::",
   4266             stringify!(pubkey)
   4267         )
   4268     );
   4269 }
   4270 #[repr(C)]
   4271 #[derive(Debug, Copy, Clone)]
   4272 pub struct bech32_nrelay {
   4273     pub relay: ndb_str_block,
   4274 }
   4275 #[test]
   4276 fn bindgen_test_layout_bech32_nrelay() {
   4277     const UNINIT: ::std::mem::MaybeUninit<bech32_nrelay> = ::std::mem::MaybeUninit::uninit();
   4278     let ptr = UNINIT.as_ptr();
   4279     assert_eq!(
   4280         ::std::mem::size_of::<bech32_nrelay>(),
   4281         16usize,
   4282         concat!("Size of: ", stringify!(bech32_nrelay))
   4283     );
   4284     assert_eq!(
   4285         ::std::mem::align_of::<bech32_nrelay>(),
   4286         8usize,
   4287         concat!("Alignment of ", stringify!(bech32_nrelay))
   4288     );
   4289     assert_eq!(
   4290         unsafe { ::std::ptr::addr_of!((*ptr).relay) as usize - ptr as usize },
   4291         0usize,
   4292         concat!(
   4293             "Offset of field: ",
   4294             stringify!(bech32_nrelay),
   4295             "::",
   4296             stringify!(relay)
   4297         )
   4298     );
   4299 }
   4300 #[repr(C)]
   4301 #[derive(Copy, Clone)]
   4302 pub struct nostr_bech32 {
   4303     pub type_: nostr_bech32_type,
   4304     pub __bindgen_anon_1: nostr_bech32__bindgen_ty_1,
   4305 }
   4306 #[repr(C)]
   4307 #[derive(Copy, Clone)]
   4308 pub union nostr_bech32__bindgen_ty_1 {
   4309     pub note: bech32_note,
   4310     pub npub: bech32_npub,
   4311     pub nsec: bech32_nsec,
   4312     pub nevent: bech32_nevent,
   4313     pub nprofile: bech32_nprofile,
   4314     pub naddr: bech32_naddr,
   4315     pub nrelay: bech32_nrelay,
   4316 }
   4317 #[test]
   4318 fn bindgen_test_layout_nostr_bech32__bindgen_ty_1() {
   4319     const UNINIT: ::std::mem::MaybeUninit<nostr_bech32__bindgen_ty_1> =
   4320         ::std::mem::MaybeUninit::uninit();
   4321     let ptr = UNINIT.as_ptr();
   4322     assert_eq!(
   4323         ::std::mem::size_of::<nostr_bech32__bindgen_ty_1>(),
   4324         416usize,
   4325         concat!("Size of: ", stringify!(nostr_bech32__bindgen_ty_1))
   4326     );
   4327     assert_eq!(
   4328         ::std::mem::align_of::<nostr_bech32__bindgen_ty_1>(),
   4329         8usize,
   4330         concat!("Alignment of ", stringify!(nostr_bech32__bindgen_ty_1))
   4331     );
   4332     assert_eq!(
   4333         unsafe { ::std::ptr::addr_of!((*ptr).note) as usize - ptr as usize },
   4334         0usize,
   4335         concat!(
   4336             "Offset of field: ",
   4337             stringify!(nostr_bech32__bindgen_ty_1),
   4338             "::",
   4339             stringify!(note)
   4340         )
   4341     );
   4342     assert_eq!(
   4343         unsafe { ::std::ptr::addr_of!((*ptr).npub) as usize - ptr as usize },
   4344         0usize,
   4345         concat!(
   4346             "Offset of field: ",
   4347             stringify!(nostr_bech32__bindgen_ty_1),
   4348             "::",
   4349             stringify!(npub)
   4350         )
   4351     );
   4352     assert_eq!(
   4353         unsafe { ::std::ptr::addr_of!((*ptr).nsec) as usize - ptr as usize },
   4354         0usize,
   4355         concat!(
   4356             "Offset of field: ",
   4357             stringify!(nostr_bech32__bindgen_ty_1),
   4358             "::",
   4359             stringify!(nsec)
   4360         )
   4361     );
   4362     assert_eq!(
   4363         unsafe { ::std::ptr::addr_of!((*ptr).nevent) as usize - ptr as usize },
   4364         0usize,
   4365         concat!(
   4366             "Offset of field: ",
   4367             stringify!(nostr_bech32__bindgen_ty_1),
   4368             "::",
   4369             stringify!(nevent)
   4370         )
   4371     );
   4372     assert_eq!(
   4373         unsafe { ::std::ptr::addr_of!((*ptr).nprofile) as usize - ptr as usize },
   4374         0usize,
   4375         concat!(
   4376             "Offset of field: ",
   4377             stringify!(nostr_bech32__bindgen_ty_1),
   4378             "::",
   4379             stringify!(nprofile)
   4380         )
   4381     );
   4382     assert_eq!(
   4383         unsafe { ::std::ptr::addr_of!((*ptr).naddr) as usize - ptr as usize },
   4384         0usize,
   4385         concat!(
   4386             "Offset of field: ",
   4387             stringify!(nostr_bech32__bindgen_ty_1),
   4388             "::",
   4389             stringify!(naddr)
   4390         )
   4391     );
   4392     assert_eq!(
   4393         unsafe { ::std::ptr::addr_of!((*ptr).nrelay) as usize - ptr as usize },
   4394         0usize,
   4395         concat!(
   4396             "Offset of field: ",
   4397             stringify!(nostr_bech32__bindgen_ty_1),
   4398             "::",
   4399             stringify!(nrelay)
   4400         )
   4401     );
   4402 }
   4403 #[test]
   4404 fn bindgen_test_layout_nostr_bech32() {
   4405     const UNINIT: ::std::mem::MaybeUninit<nostr_bech32> = ::std::mem::MaybeUninit::uninit();
   4406     let ptr = UNINIT.as_ptr();
   4407     assert_eq!(
   4408         ::std::mem::size_of::<nostr_bech32>(),
   4409         424usize,
   4410         concat!("Size of: ", stringify!(nostr_bech32))
   4411     );
   4412     assert_eq!(
   4413         ::std::mem::align_of::<nostr_bech32>(),
   4414         8usize,
   4415         concat!("Alignment of ", stringify!(nostr_bech32))
   4416     );
   4417     assert_eq!(
   4418         unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
   4419         0usize,
   4420         concat!(
   4421             "Offset of field: ",
   4422             stringify!(nostr_bech32),
   4423             "::",
   4424             stringify!(type_)
   4425         )
   4426     );
   4427 }
   4428 #[repr(C)]
   4429 #[derive(Copy, Clone)]
   4430 pub struct ndb_mention_bech32_block {
   4431     pub str_: ndb_str_block,
   4432     pub bech32: nostr_bech32,
   4433 }
   4434 #[test]
   4435 fn bindgen_test_layout_ndb_mention_bech32_block() {
   4436     const UNINIT: ::std::mem::MaybeUninit<ndb_mention_bech32_block> =
   4437         ::std::mem::MaybeUninit::uninit();
   4438     let ptr = UNINIT.as_ptr();
   4439     assert_eq!(
   4440         ::std::mem::size_of::<ndb_mention_bech32_block>(),
   4441         440usize,
   4442         concat!("Size of: ", stringify!(ndb_mention_bech32_block))
   4443     );
   4444     assert_eq!(
   4445         ::std::mem::align_of::<ndb_mention_bech32_block>(),
   4446         8usize,
   4447         concat!("Alignment of ", stringify!(ndb_mention_bech32_block))
   4448     );
   4449     assert_eq!(
   4450         unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize },
   4451         0usize,
   4452         concat!(
   4453             "Offset of field: ",
   4454             stringify!(ndb_mention_bech32_block),
   4455             "::",
   4456             stringify!(str_)
   4457         )
   4458     );
   4459     assert_eq!(
   4460         unsafe { ::std::ptr::addr_of!((*ptr).bech32) as usize - ptr as usize },
   4461         16usize,
   4462         concat!(
   4463             "Offset of field: ",
   4464             stringify!(ndb_mention_bech32_block),
   4465             "::",
   4466             stringify!(bech32)
   4467         )
   4468     );
   4469 }
   4470 #[repr(C)]
   4471 #[derive(Debug, Copy, Clone)]
   4472 pub struct ndb_invoice {
   4473     pub version: ::std::os::raw::c_uchar,
   4474     pub amount: u64,
   4475     pub timestamp: u64,
   4476     pub expiry: u64,
   4477     pub description: *mut ::std::os::raw::c_char,
   4478     pub description_hash: *mut ::std::os::raw::c_uchar,
   4479 }
   4480 #[test]
   4481 fn bindgen_test_layout_ndb_invoice() {
   4482     const UNINIT: ::std::mem::MaybeUninit<ndb_invoice> = ::std::mem::MaybeUninit::uninit();
   4483     let ptr = UNINIT.as_ptr();
   4484     assert_eq!(
   4485         ::std::mem::size_of::<ndb_invoice>(),
   4486         48usize,
   4487         concat!("Size of: ", stringify!(ndb_invoice))
   4488     );
   4489     assert_eq!(
   4490         ::std::mem::align_of::<ndb_invoice>(),
   4491         8usize,
   4492         concat!("Alignment of ", stringify!(ndb_invoice))
   4493     );
   4494     assert_eq!(
   4495         unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
   4496         0usize,
   4497         concat!(
   4498             "Offset of field: ",
   4499             stringify!(ndb_invoice),
   4500             "::",
   4501             stringify!(version)
   4502         )
   4503     );
   4504     assert_eq!(
   4505         unsafe { ::std::ptr::addr_of!((*ptr).amount) as usize - ptr as usize },
   4506         8usize,
   4507         concat!(
   4508             "Offset of field: ",
   4509             stringify!(ndb_invoice),
   4510             "::",
   4511             stringify!(amount)
   4512         )
   4513     );
   4514     assert_eq!(
   4515         unsafe { ::std::ptr::addr_of!((*ptr).timestamp) as usize - ptr as usize },
   4516         16usize,
   4517         concat!(
   4518             "Offset of field: ",
   4519             stringify!(ndb_invoice),
   4520             "::",
   4521             stringify!(timestamp)
   4522         )
   4523     );
   4524     assert_eq!(
   4525         unsafe { ::std::ptr::addr_of!((*ptr).expiry) as usize - ptr as usize },
   4526         24usize,
   4527         concat!(
   4528             "Offset of field: ",
   4529             stringify!(ndb_invoice),
   4530             "::",
   4531             stringify!(expiry)
   4532         )
   4533     );
   4534     assert_eq!(
   4535         unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize },
   4536         32usize,
   4537         concat!(
   4538             "Offset of field: ",
   4539             stringify!(ndb_invoice),
   4540             "::",
   4541             stringify!(description)
   4542         )
   4543     );
   4544     assert_eq!(
   4545         unsafe { ::std::ptr::addr_of!((*ptr).description_hash) as usize - ptr as usize },
   4546         40usize,
   4547         concat!(
   4548             "Offset of field: ",
   4549             stringify!(ndb_invoice),
   4550             "::",
   4551             stringify!(description_hash)
   4552         )
   4553     );
   4554 }
   4555 #[repr(C)]
   4556 #[derive(Debug, Copy, Clone)]
   4557 pub struct ndb_invoice_block {
   4558     pub invstr: ndb_str_block,
   4559     pub invoice: ndb_invoice,
   4560 }
   4561 #[test]
   4562 fn bindgen_test_layout_ndb_invoice_block() {
   4563     const UNINIT: ::std::mem::MaybeUninit<ndb_invoice_block> = ::std::mem::MaybeUninit::uninit();
   4564     let ptr = UNINIT.as_ptr();
   4565     assert_eq!(
   4566         ::std::mem::size_of::<ndb_invoice_block>(),
   4567         64usize,
   4568         concat!("Size of: ", stringify!(ndb_invoice_block))
   4569     );
   4570     assert_eq!(
   4571         ::std::mem::align_of::<ndb_invoice_block>(),
   4572         8usize,
   4573         concat!("Alignment of ", stringify!(ndb_invoice_block))
   4574     );
   4575     assert_eq!(
   4576         unsafe { ::std::ptr::addr_of!((*ptr).invstr) as usize - ptr as usize },
   4577         0usize,
   4578         concat!(
   4579             "Offset of field: ",
   4580             stringify!(ndb_invoice_block),
   4581             "::",
   4582             stringify!(invstr)
   4583         )
   4584     );
   4585     assert_eq!(
   4586         unsafe { ::std::ptr::addr_of!((*ptr).invoice) as usize - ptr as usize },
   4587         16usize,
   4588         concat!(
   4589             "Offset of field: ",
   4590             stringify!(ndb_invoice_block),
   4591             "::",
   4592             stringify!(invoice)
   4593         )
   4594     );
   4595 }
   4596 #[repr(C)]
   4597 #[derive(Copy, Clone)]
   4598 pub struct ndb_block {
   4599     pub type_: ndb_block_type,
   4600     pub block: ndb_block__bindgen_ty_1,
   4601 }
   4602 #[repr(C)]
   4603 #[derive(Copy, Clone)]
   4604 pub union ndb_block__bindgen_ty_1 {
   4605     pub str_: ndb_str_block,
   4606     pub invoice: ndb_invoice_block,
   4607     pub mention_bech32: ndb_mention_bech32_block,
   4608     pub mention_index: u32,
   4609 }
   4610 #[test]
   4611 fn bindgen_test_layout_ndb_block__bindgen_ty_1() {
   4612     const UNINIT: ::std::mem::MaybeUninit<ndb_block__bindgen_ty_1> =
   4613         ::std::mem::MaybeUninit::uninit();
   4614     let ptr = UNINIT.as_ptr();
   4615     assert_eq!(
   4616         ::std::mem::size_of::<ndb_block__bindgen_ty_1>(),
   4617         440usize,
   4618         concat!("Size of: ", stringify!(ndb_block__bindgen_ty_1))
   4619     );
   4620     assert_eq!(
   4621         ::std::mem::align_of::<ndb_block__bindgen_ty_1>(),
   4622         8usize,
   4623         concat!("Alignment of ", stringify!(ndb_block__bindgen_ty_1))
   4624     );
   4625     assert_eq!(
   4626         unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize },
   4627         0usize,
   4628         concat!(
   4629             "Offset of field: ",
   4630             stringify!(ndb_block__bindgen_ty_1),
   4631             "::",
   4632             stringify!(str_)
   4633         )
   4634     );
   4635     assert_eq!(
   4636         unsafe { ::std::ptr::addr_of!((*ptr).invoice) as usize - ptr as usize },
   4637         0usize,
   4638         concat!(
   4639             "Offset of field: ",
   4640             stringify!(ndb_block__bindgen_ty_1),
   4641             "::",
   4642             stringify!(invoice)
   4643         )
   4644     );
   4645     assert_eq!(
   4646         unsafe { ::std::ptr::addr_of!((*ptr).mention_bech32) as usize - ptr as usize },
   4647         0usize,
   4648         concat!(
   4649             "Offset of field: ",
   4650             stringify!(ndb_block__bindgen_ty_1),
   4651             "::",
   4652             stringify!(mention_bech32)
   4653         )
   4654     );
   4655     assert_eq!(
   4656         unsafe { ::std::ptr::addr_of!((*ptr).mention_index) as usize - ptr as usize },
   4657         0usize,
   4658         concat!(
   4659             "Offset of field: ",
   4660             stringify!(ndb_block__bindgen_ty_1),
   4661             "::",
   4662             stringify!(mention_index)
   4663         )
   4664     );
   4665 }
   4666 #[test]
   4667 fn bindgen_test_layout_ndb_block() {
   4668     const UNINIT: ::std::mem::MaybeUninit<ndb_block> = ::std::mem::MaybeUninit::uninit();
   4669     let ptr = UNINIT.as_ptr();
   4670     assert_eq!(
   4671         ::std::mem::size_of::<ndb_block>(),
   4672         448usize,
   4673         concat!("Size of: ", stringify!(ndb_block))
   4674     );
   4675     assert_eq!(
   4676         ::std::mem::align_of::<ndb_block>(),
   4677         8usize,
   4678         concat!("Alignment of ", stringify!(ndb_block))
   4679     );
   4680     assert_eq!(
   4681         unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
   4682         0usize,
   4683         concat!(
   4684             "Offset of field: ",
   4685             stringify!(ndb_block),
   4686             "::",
   4687             stringify!(type_)
   4688         )
   4689     );
   4690     assert_eq!(
   4691         unsafe { ::std::ptr::addr_of!((*ptr).block) as usize - ptr as usize },
   4692         8usize,
   4693         concat!(
   4694             "Offset of field: ",
   4695             stringify!(ndb_block),
   4696             "::",
   4697             stringify!(block)
   4698         )
   4699     );
   4700 }
   4701 #[repr(C)]
   4702 #[derive(Copy, Clone)]
   4703 pub struct ndb_block_iterator {
   4704     pub content: *const ::std::os::raw::c_char,
   4705     pub blocks: *mut ndb_blocks,
   4706     pub block: ndb_block,
   4707     pub p: *mut ::std::os::raw::c_uchar,
   4708 }
   4709 #[test]
   4710 fn bindgen_test_layout_ndb_block_iterator() {
   4711     const UNINIT: ::std::mem::MaybeUninit<ndb_block_iterator> = ::std::mem::MaybeUninit::uninit();
   4712     let ptr = UNINIT.as_ptr();
   4713     assert_eq!(
   4714         ::std::mem::size_of::<ndb_block_iterator>(),
   4715         472usize,
   4716         concat!("Size of: ", stringify!(ndb_block_iterator))
   4717     );
   4718     assert_eq!(
   4719         ::std::mem::align_of::<ndb_block_iterator>(),
   4720         8usize,
   4721         concat!("Alignment of ", stringify!(ndb_block_iterator))
   4722     );
   4723     assert_eq!(
   4724         unsafe { ::std::ptr::addr_of!((*ptr).content) as usize - ptr as usize },
   4725         0usize,
   4726         concat!(
   4727             "Offset of field: ",
   4728             stringify!(ndb_block_iterator),
   4729             "::",
   4730             stringify!(content)
   4731         )
   4732     );
   4733     assert_eq!(
   4734         unsafe { ::std::ptr::addr_of!((*ptr).blocks) as usize - ptr as usize },
   4735         8usize,
   4736         concat!(
   4737             "Offset of field: ",
   4738             stringify!(ndb_block_iterator),
   4739             "::",
   4740             stringify!(blocks)
   4741         )
   4742     );
   4743     assert_eq!(
   4744         unsafe { ::std::ptr::addr_of!((*ptr).block) as usize - ptr as usize },
   4745         16usize,
   4746         concat!(
   4747             "Offset of field: ",
   4748             stringify!(ndb_block_iterator),
   4749             "::",
   4750             stringify!(block)
   4751         )
   4752     );
   4753     assert_eq!(
   4754         unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize },
   4755         464usize,
   4756         concat!(
   4757             "Offset of field: ",
   4758             stringify!(ndb_block_iterator),
   4759             "::",
   4760             stringify!(p)
   4761         )
   4762     );
   4763 }
   4764 #[repr(C)]
   4765 #[derive(Debug, Copy, Clone)]
   4766 pub struct ndb_query_result {
   4767     pub note: *mut ndb_note,
   4768     pub note_size: u64,
   4769     pub note_id: u64,
   4770 }
   4771 #[test]
   4772 fn bindgen_test_layout_ndb_query_result() {
   4773     const UNINIT: ::std::mem::MaybeUninit<ndb_query_result> = ::std::mem::MaybeUninit::uninit();
   4774     let ptr = UNINIT.as_ptr();
   4775     assert_eq!(
   4776         ::std::mem::size_of::<ndb_query_result>(),
   4777         24usize,
   4778         concat!("Size of: ", stringify!(ndb_query_result))
   4779     );
   4780     assert_eq!(
   4781         ::std::mem::align_of::<ndb_query_result>(),
   4782         8usize,
   4783         concat!("Alignment of ", stringify!(ndb_query_result))
   4784     );
   4785     assert_eq!(
   4786         unsafe { ::std::ptr::addr_of!((*ptr).note) as usize - ptr as usize },
   4787         0usize,
   4788         concat!(
   4789             "Offset of field: ",
   4790             stringify!(ndb_query_result),
   4791             "::",
   4792             stringify!(note)
   4793         )
   4794     );
   4795     assert_eq!(
   4796         unsafe { ::std::ptr::addr_of!((*ptr).note_size) as usize - ptr as usize },
   4797         8usize,
   4798         concat!(
   4799             "Offset of field: ",
   4800             stringify!(ndb_query_result),
   4801             "::",
   4802             stringify!(note_size)
   4803         )
   4804     );
   4805     assert_eq!(
   4806         unsafe { ::std::ptr::addr_of!((*ptr).note_id) as usize - ptr as usize },
   4807         16usize,
   4808         concat!(
   4809             "Offset of field: ",
   4810             stringify!(ndb_query_result),
   4811             "::",
   4812             stringify!(note_id)
   4813         )
   4814     );
   4815 }
   4816 #[repr(C)]
   4817 #[derive(Debug, Copy, Clone)]
   4818 pub struct ndb_query_results {
   4819     pub cur: cursor,
   4820 }
   4821 #[test]
   4822 fn bindgen_test_layout_ndb_query_results() {
   4823     const UNINIT: ::std::mem::MaybeUninit<ndb_query_results> = ::std::mem::MaybeUninit::uninit();
   4824     let ptr = UNINIT.as_ptr();
   4825     assert_eq!(
   4826         ::std::mem::size_of::<ndb_query_results>(),
   4827         24usize,
   4828         concat!("Size of: ", stringify!(ndb_query_results))
   4829     );
   4830     assert_eq!(
   4831         ::std::mem::align_of::<ndb_query_results>(),
   4832         8usize,
   4833         concat!("Alignment of ", stringify!(ndb_query_results))
   4834     );
   4835     assert_eq!(
   4836         unsafe { ::std::ptr::addr_of!((*ptr).cur) as usize - ptr as usize },
   4837         0usize,
   4838         concat!(
   4839             "Offset of field: ",
   4840             stringify!(ndb_query_results),
   4841             "::",
   4842             stringify!(cur)
   4843         )
   4844     );
   4845 }
   4846 extern "C" {
   4847     pub fn ndb_default_config(arg1: *mut ndb_config);
   4848 }
   4849 extern "C" {
   4850     pub fn ndb_config_set_ingest_threads(config: *mut ndb_config, threads: ::std::os::raw::c_int);
   4851 }
   4852 extern "C" {
   4853     pub fn ndb_config_set_flags(config: *mut ndb_config, flags: ::std::os::raw::c_int);
   4854 }
   4855 extern "C" {
   4856     pub fn ndb_config_set_mapsize(config: *mut ndb_config, mapsize: usize);
   4857 }
   4858 extern "C" {
   4859     pub fn ndb_config_set_ingest_filter(
   4860         config: *mut ndb_config,
   4861         fn_: ndb_ingest_filter_fn,
   4862         arg1: *mut ::std::os::raw::c_void,
   4863     );
   4864 }
   4865 extern "C" {
   4866     pub fn ndb_config_set_subscription_callback(
   4867         config: *mut ndb_config,
   4868         fn_: ndb_sub_fn,
   4869         ctx: *mut ::std::os::raw::c_void,
   4870     );
   4871 }
   4872 extern "C" {
   4873     pub fn ndb_calculate_id(
   4874         note: *mut ndb_note,
   4875         buf: *mut ::std::os::raw::c_uchar,
   4876         buflen: ::std::os::raw::c_int,
   4877     ) -> ::std::os::raw::c_int;
   4878 }
   4879 extern "C" {
   4880     pub fn ndb_sign_id(
   4881         keypair: *mut ndb_keypair,
   4882         id: *mut ::std::os::raw::c_uchar,
   4883         sig: *mut ::std::os::raw::c_uchar,
   4884     ) -> ::std::os::raw::c_int;
   4885 }
   4886 extern "C" {
   4887     pub fn ndb_create_keypair(key: *mut ndb_keypair) -> ::std::os::raw::c_int;
   4888 }
   4889 extern "C" {
   4890     pub fn ndb_decode_key(
   4891         secstr: *const ::std::os::raw::c_char,
   4892         keypair: *mut ndb_keypair,
   4893     ) -> ::std::os::raw::c_int;
   4894 }
   4895 extern "C" {
   4896     pub fn ndb_note_verify(
   4897         secp_ctx: *mut ::std::os::raw::c_void,
   4898         pubkey: *mut ::std::os::raw::c_uchar,
   4899         id: *mut ::std::os::raw::c_uchar,
   4900         signature: *mut ::std::os::raw::c_uchar,
   4901     ) -> ::std::os::raw::c_int;
   4902 }
   4903 extern "C" {
   4904     pub fn ndb_init(
   4905         ndb: *mut *mut ndb,
   4906         dbdir: *const ::std::os::raw::c_char,
   4907         arg1: *const ndb_config,
   4908     ) -> ::std::os::raw::c_int;
   4909 }
   4910 extern "C" {
   4911     pub fn ndb_db_version(ndb: *mut ndb) -> ::std::os::raw::c_int;
   4912 }
   4913 extern "C" {
   4914     pub fn ndb_process_event(
   4915         arg1: *mut ndb,
   4916         json: *const ::std::os::raw::c_char,
   4917         len: ::std::os::raw::c_int,
   4918     ) -> ::std::os::raw::c_int;
   4919 }
   4920 extern "C" {
   4921     pub fn ndb_process_events(
   4922         arg1: *mut ndb,
   4923         ldjson: *const ::std::os::raw::c_char,
   4924         len: usize,
   4925     ) -> ::std::os::raw::c_int;
   4926 }
   4927 extern "C" {
   4928     pub fn ndb_process_events_stream(arg1: *mut ndb, fp: *mut FILE) -> ::std::os::raw::c_int;
   4929 }
   4930 extern "C" {
   4931     pub fn ndb_process_client_event(
   4932         arg1: *mut ndb,
   4933         json: *const ::std::os::raw::c_char,
   4934         len: ::std::os::raw::c_int,
   4935     ) -> ::std::os::raw::c_int;
   4936 }
   4937 extern "C" {
   4938     pub fn ndb_process_client_events(
   4939         arg1: *mut ndb,
   4940         json: *const ::std::os::raw::c_char,
   4941         len: usize,
   4942     ) -> ::std::os::raw::c_int;
   4943 }
   4944 extern "C" {
   4945     pub fn ndb_begin_query(arg1: *mut ndb, arg2: *mut ndb_txn) -> ::std::os::raw::c_int;
   4946 }
   4947 extern "C" {
   4948     pub fn ndb_search_profile(
   4949         txn: *mut ndb_txn,
   4950         search: *mut ndb_search,
   4951         query: *const ::std::os::raw::c_char,
   4952     ) -> ::std::os::raw::c_int;
   4953 }
   4954 extern "C" {
   4955     pub fn ndb_search_profile_next(search: *mut ndb_search) -> ::std::os::raw::c_int;
   4956 }
   4957 extern "C" {
   4958     pub fn ndb_search_profile_end(search: *mut ndb_search);
   4959 }
   4960 extern "C" {
   4961     pub fn ndb_end_query(arg1: *mut ndb_txn) -> ::std::os::raw::c_int;
   4962 }
   4963 extern "C" {
   4964     pub fn ndb_write_last_profile_fetch(
   4965         ndb: *mut ndb,
   4966         pubkey: *const ::std::os::raw::c_uchar,
   4967         fetched_at: u64,
   4968     ) -> ::std::os::raw::c_int;
   4969 }
   4970 extern "C" {
   4971     pub fn ndb_read_last_profile_fetch(
   4972         txn: *mut ndb_txn,
   4973         pubkey: *const ::std::os::raw::c_uchar,
   4974     ) -> u64;
   4975 }
   4976 extern "C" {
   4977     pub fn ndb_get_profile_by_pubkey(
   4978         txn: *mut ndb_txn,
   4979         pubkey: *const ::std::os::raw::c_uchar,
   4980         len: *mut usize,
   4981         primkey: *mut u64,
   4982     ) -> *mut ::std::os::raw::c_void;
   4983 }
   4984 extern "C" {
   4985     pub fn ndb_get_profile_by_key(
   4986         txn: *mut ndb_txn,
   4987         key: u64,
   4988         len: *mut usize,
   4989     ) -> *mut ::std::os::raw::c_void;
   4990 }
   4991 extern "C" {
   4992     pub fn ndb_get_notekey_by_id(txn: *mut ndb_txn, id: *const ::std::os::raw::c_uchar) -> u64;
   4993 }
   4994 extern "C" {
   4995     pub fn ndb_get_profilekey_by_pubkey(
   4996         txn: *mut ndb_txn,
   4997         id: *const ::std::os::raw::c_uchar,
   4998     ) -> u64;
   4999 }
   5000 extern "C" {
   5001     pub fn ndb_get_note_by_id(
   5002         txn: *mut ndb_txn,
   5003         id: *const ::std::os::raw::c_uchar,
   5004         len: *mut usize,
   5005         primkey: *mut u64,
   5006     ) -> *mut ndb_note;
   5007 }
   5008 extern "C" {
   5009     pub fn ndb_get_note_by_key(txn: *mut ndb_txn, key: u64, len: *mut usize) -> *mut ndb_note;
   5010 }
   5011 extern "C" {
   5012     pub fn ndb_get_note_meta(
   5013         txn: *mut ndb_txn,
   5014         id: *const ::std::os::raw::c_uchar,
   5015         len: *mut usize,
   5016     ) -> *mut ::std::os::raw::c_void;
   5017 }
   5018 extern "C" {
   5019     pub fn ndb_destroy(arg1: *mut ndb);
   5020 }
   5021 extern "C" {
   5022     pub fn ndb_parse_json_note(
   5023         arg1: *mut ndb_json_parser,
   5024         arg2: *mut *mut ndb_note,
   5025     ) -> ::std::os::raw::c_int;
   5026 }
   5027 extern "C" {
   5028     pub fn ndb_client_event_from_json(
   5029         json: *const ::std::os::raw::c_char,
   5030         len: ::std::os::raw::c_int,
   5031         fce: *mut ndb_fce,
   5032         buf: *mut ::std::os::raw::c_uchar,
   5033         bufsize: ::std::os::raw::c_int,
   5034         cb: *mut ndb_id_cb,
   5035     ) -> ::std::os::raw::c_int;
   5036 }
   5037 extern "C" {
   5038     pub fn ndb_ws_event_from_json(
   5039         json: *const ::std::os::raw::c_char,
   5040         len: ::std::os::raw::c_int,
   5041         tce: *mut ndb_tce,
   5042         buf: *mut ::std::os::raw::c_uchar,
   5043         bufsize: ::std::os::raw::c_int,
   5044         arg1: *mut ndb_id_cb,
   5045     ) -> ::std::os::raw::c_int;
   5046 }
   5047 extern "C" {
   5048     pub fn ndb_note_from_json(
   5049         json: *const ::std::os::raw::c_char,
   5050         len: ::std::os::raw::c_int,
   5051         arg1: *mut *mut ndb_note,
   5052         buf: *mut ::std::os::raw::c_uchar,
   5053         buflen: ::std::os::raw::c_int,
   5054     ) -> ::std::os::raw::c_int;
   5055 }
   5056 extern "C" {
   5057     pub fn ndb_builder_init(
   5058         builder: *mut ndb_builder,
   5059         buf: *mut ::std::os::raw::c_uchar,
   5060         bufsize: usize,
   5061     ) -> ::std::os::raw::c_int;
   5062 }
   5063 extern "C" {
   5064     pub fn ndb_builder_finalize(
   5065         builder: *mut ndb_builder,
   5066         note: *mut *mut ndb_note,
   5067         privkey: *mut ndb_keypair,
   5068     ) -> ::std::os::raw::c_int;
   5069 }
   5070 extern "C" {
   5071     pub fn ndb_builder_set_content(
   5072         builder: *mut ndb_builder,
   5073         content: *const ::std::os::raw::c_char,
   5074         len: ::std::os::raw::c_int,
   5075     ) -> ::std::os::raw::c_int;
   5076 }
   5077 extern "C" {
   5078     pub fn ndb_builder_set_created_at(builder: *mut ndb_builder, created_at: u64);
   5079 }
   5080 extern "C" {
   5081     pub fn ndb_builder_set_sig(builder: *mut ndb_builder, sig: *mut ::std::os::raw::c_uchar);
   5082 }
   5083 extern "C" {
   5084     pub fn ndb_builder_set_pubkey(builder: *mut ndb_builder, pubkey: *mut ::std::os::raw::c_uchar);
   5085 }
   5086 extern "C" {
   5087     pub fn ndb_builder_set_id(builder: *mut ndb_builder, id: *mut ::std::os::raw::c_uchar);
   5088 }
   5089 extern "C" {
   5090     pub fn ndb_builder_set_kind(builder: *mut ndb_builder, kind: u32);
   5091 }
   5092 extern "C" {
   5093     pub fn ndb_builder_new_tag(builder: *mut ndb_builder) -> ::std::os::raw::c_int;
   5094 }
   5095 extern "C" {
   5096     pub fn ndb_builder_push_tag_str(
   5097         builder: *mut ndb_builder,
   5098         str_: *const ::std::os::raw::c_char,
   5099         len: ::std::os::raw::c_int,
   5100     ) -> ::std::os::raw::c_int;
   5101 }
   5102 extern "C" {
   5103     pub fn ndb_filter_init(arg1: *mut ndb_filter) -> ::std::os::raw::c_int;
   5104 }
   5105 extern "C" {
   5106     pub fn ndb_filter_add_id_element(
   5107         arg1: *mut ndb_filter,
   5108         id: *const ::std::os::raw::c_uchar,
   5109     ) -> ::std::os::raw::c_int;
   5110 }
   5111 extern "C" {
   5112     pub fn ndb_filter_add_int_element(arg1: *mut ndb_filter, integer: u64)
   5113         -> ::std::os::raw::c_int;
   5114 }
   5115 extern "C" {
   5116     pub fn ndb_filter_add_str_element(
   5117         arg1: *mut ndb_filter,
   5118         str_: *const ::std::os::raw::c_char,
   5119     ) -> ::std::os::raw::c_int;
   5120 }
   5121 extern "C" {
   5122     pub fn ndb_filter_eq(arg1: *const ndb_filter, arg2: *const ndb_filter)
   5123         -> ::std::os::raw::c_int;
   5124 }
   5125 extern "C" {
   5126     #[doc = " is `a` a subset of `b`"]
   5127     pub fn ndb_filter_is_subset_of(
   5128         a: *const ndb_filter,
   5129         b: *const ndb_filter,
   5130     ) -> ::std::os::raw::c_int;
   5131 }
   5132 extern "C" {
   5133     pub fn ndb_filter_from_json(
   5134         arg1: *const ::std::os::raw::c_char,
   5135         len: ::std::os::raw::c_int,
   5136         filter: *mut ndb_filter,
   5137         buf: *mut ::std::os::raw::c_uchar,
   5138         bufsize: ::std::os::raw::c_int,
   5139     ) -> ::std::os::raw::c_int;
   5140 }
   5141 extern "C" {
   5142     pub fn ndb_filter_get_id_element(
   5143         arg1: *const ndb_filter,
   5144         arg2: *const ndb_filter_elements,
   5145         index: ::std::os::raw::c_int,
   5146     ) -> *mut ::std::os::raw::c_uchar;
   5147 }
   5148 extern "C" {
   5149     pub fn ndb_filter_get_string_element(
   5150         arg1: *const ndb_filter,
   5151         arg2: *const ndb_filter_elements,
   5152         index: ::std::os::raw::c_int,
   5153     ) -> *const ::std::os::raw::c_char;
   5154 }
   5155 extern "C" {
   5156     pub fn ndb_filter_get_int_element(
   5157         arg1: *const ndb_filter_elements,
   5158         index: ::std::os::raw::c_int,
   5159     ) -> u64;
   5160 }
   5161 extern "C" {
   5162     pub fn ndb_filter_get_int_element_ptr(
   5163         arg1: *mut ndb_filter_elements,
   5164         index: ::std::os::raw::c_int,
   5165     ) -> *mut u64;
   5166 }
   5167 extern "C" {
   5168     pub fn ndb_filter_current_element(arg1: *const ndb_filter) -> *mut ndb_filter_elements;
   5169 }
   5170 extern "C" {
   5171     pub fn ndb_filter_get_elements(
   5172         arg1: *const ndb_filter,
   5173         arg2: ::std::os::raw::c_int,
   5174     ) -> *mut ndb_filter_elements;
   5175 }
   5176 extern "C" {
   5177     pub fn ndb_filter_start_field(
   5178         arg1: *mut ndb_filter,
   5179         arg2: ndb_filter_fieldtype,
   5180     ) -> ::std::os::raw::c_int;
   5181 }
   5182 extern "C" {
   5183     pub fn ndb_filter_start_tag_field(
   5184         arg1: *mut ndb_filter,
   5185         tag: ::std::os::raw::c_char,
   5186     ) -> ::std::os::raw::c_int;
   5187 }
   5188 extern "C" {
   5189     pub fn ndb_filter_matches(arg1: *mut ndb_filter, arg2: *mut ndb_note) -> ::std::os::raw::c_int;
   5190 }
   5191 extern "C" {
   5192     pub fn ndb_filter_clone(dst: *mut ndb_filter, src: *mut ndb_filter) -> ::std::os::raw::c_int;
   5193 }
   5194 extern "C" {
   5195     pub fn ndb_filter_end(arg1: *mut ndb_filter) -> ::std::os::raw::c_int;
   5196 }
   5197 extern "C" {
   5198     pub fn ndb_filter_end_field(arg1: *mut ndb_filter);
   5199 }
   5200 extern "C" {
   5201     pub fn ndb_filter_destroy(arg1: *mut ndb_filter);
   5202 }
   5203 extern "C" {
   5204     pub fn ndb_filter_json(
   5205         arg1: *const ndb_filter,
   5206         buf: *mut ::std::os::raw::c_char,
   5207         buflen: ::std::os::raw::c_int,
   5208     ) -> ::std::os::raw::c_int;
   5209 }
   5210 extern "C" {
   5211     pub fn ndb_subscribe(
   5212         arg1: *mut ndb,
   5213         arg2: *mut ndb_filter,
   5214         num_filters: ::std::os::raw::c_int,
   5215     ) -> u64;
   5216 }
   5217 extern "C" {
   5218     pub fn ndb_wait_for_notes(
   5219         arg1: *mut ndb,
   5220         subid: u64,
   5221         note_ids: *mut u64,
   5222         note_id_capacity: ::std::os::raw::c_int,
   5223     ) -> ::std::os::raw::c_int;
   5224 }
   5225 extern "C" {
   5226     pub fn ndb_poll_for_notes(
   5227         arg1: *mut ndb,
   5228         subid: u64,
   5229         note_ids: *mut u64,
   5230         note_id_capacity: ::std::os::raw::c_int,
   5231     ) -> ::std::os::raw::c_int;
   5232 }
   5233 extern "C" {
   5234     pub fn ndb_unsubscribe(arg1: *mut ndb, subid: u64) -> ::std::os::raw::c_int;
   5235 }
   5236 extern "C" {
   5237     pub fn ndb_num_subscriptions(arg1: *mut ndb) -> ::std::os::raw::c_int;
   5238 }
   5239 extern "C" {
   5240     pub fn ndb_text_search(
   5241         txn: *mut ndb_txn,
   5242         query: *const ::std::os::raw::c_char,
   5243         arg1: *mut ndb_text_search_results,
   5244         arg2: *mut ndb_text_search_config,
   5245     ) -> ::std::os::raw::c_int;
   5246 }
   5247 extern "C" {
   5248     pub fn ndb_default_text_search_config(arg1: *mut ndb_text_search_config);
   5249 }
   5250 extern "C" {
   5251     pub fn ndb_text_search_config_set_order(
   5252         arg1: *mut ndb_text_search_config,
   5253         arg2: ndb_search_order,
   5254     );
   5255 }
   5256 extern "C" {
   5257     pub fn ndb_text_search_config_set_limit(
   5258         arg1: *mut ndb_text_search_config,
   5259         limit: ::std::os::raw::c_int,
   5260     );
   5261 }
   5262 extern "C" {
   5263     pub fn ndb_query(
   5264         txn: *mut ndb_txn,
   5265         filters: *mut ndb_filter,
   5266         num_filters: ::std::os::raw::c_int,
   5267         results: *mut ndb_query_result,
   5268         result_capacity: ::std::os::raw::c_int,
   5269         count: *mut ::std::os::raw::c_int,
   5270     ) -> ::std::os::raw::c_int;
   5271 }
   5272 extern "C" {
   5273     pub fn ndb_stat(ndb: *mut ndb, stat: *mut ndb_stat) -> ::std::os::raw::c_int;
   5274 }
   5275 extern "C" {
   5276     pub fn ndb_stat_counts_init(counts: *mut ndb_stat_counts);
   5277 }
   5278 extern "C" {
   5279     pub fn ndb_note_content(note: *mut ndb_note) -> *const ::std::os::raw::c_char;
   5280 }
   5281 extern "C" {
   5282     pub fn ndb_note_str(note: *mut ndb_note, pstr: *mut ndb_packed_str) -> ndb_str;
   5283 }
   5284 extern "C" {
   5285     pub fn ndb_note_content_length(note: *mut ndb_note) -> u32;
   5286 }
   5287 extern "C" {
   5288     pub fn ndb_note_created_at(note: *mut ndb_note) -> u32;
   5289 }
   5290 extern "C" {
   5291     pub fn ndb_note_kind(note: *mut ndb_note) -> u32;
   5292 }
   5293 extern "C" {
   5294     pub fn ndb_note_id(note: *mut ndb_note) -> *mut ::std::os::raw::c_uchar;
   5295 }
   5296 extern "C" {
   5297     pub fn ndb_note_pubkey(note: *mut ndb_note) -> *mut ::std::os::raw::c_uchar;
   5298 }
   5299 extern "C" {
   5300     pub fn ndb_note_sig(note: *mut ndb_note) -> *mut ::std::os::raw::c_uchar;
   5301 }
   5302 extern "C" {
   5303     pub fn _ndb_note_set_kind(note: *mut ndb_note, kind: u32);
   5304 }
   5305 extern "C" {
   5306     pub fn ndb_note_tags(note: *mut ndb_note) -> *mut ndb_tags;
   5307 }
   5308 extern "C" {
   5309     pub fn ndb_str_len(str_: *mut ndb_str) -> ::std::os::raw::c_int;
   5310 }
   5311 extern "C" {
   5312     #[doc = " write the note as json to a buffer"]
   5313     pub fn ndb_note_json(
   5314         arg1: *mut ndb_note,
   5315         buf: *mut ::std::os::raw::c_char,
   5316         buflen: ::std::os::raw::c_int,
   5317     ) -> ::std::os::raw::c_int;
   5318 }
   5319 extern "C" {
   5320     pub fn ndb_tags_iterate_start(note: *mut ndb_note, iter: *mut ndb_iterator);
   5321 }
   5322 extern "C" {
   5323     pub fn ndb_tags_count(arg1: *mut ndb_tags) -> u16;
   5324 }
   5325 extern "C" {
   5326     pub fn ndb_tag_count(arg1: *mut ndb_tag) -> u16;
   5327 }
   5328 extern "C" {
   5329     pub fn ndb_tags_iterate_next(iter: *mut ndb_iterator) -> ::std::os::raw::c_int;
   5330 }
   5331 extern "C" {
   5332     pub fn ndb_iter_tag_str(iter: *mut ndb_iterator, ind: ::std::os::raw::c_int) -> ndb_str;
   5333 }
   5334 extern "C" {
   5335     pub fn ndb_tag_str(
   5336         note: *mut ndb_note,
   5337         tag: *mut ndb_tag,
   5338         ind: ::std::os::raw::c_int,
   5339     ) -> ndb_str;
   5340 }
   5341 extern "C" {
   5342     pub fn ndb_db_name(db: ndb_dbs) -> *const ::std::os::raw::c_char;
   5343 }
   5344 extern "C" {
   5345     pub fn ndb_kind_name(ck: ndb_common_kind) -> *const ::std::os::raw::c_char;
   5346 }
   5347 extern "C" {
   5348     pub fn ndb_kind_to_common_kind(kind: ::std::os::raw::c_int) -> ndb_common_kind;
   5349 }
   5350 extern "C" {
   5351     pub fn ndb_parse_content(
   5352         buf: *mut ::std::os::raw::c_uchar,
   5353         buf_size: ::std::os::raw::c_int,
   5354         content: *const ::std::os::raw::c_char,
   5355         content_len: ::std::os::raw::c_int,
   5356         blocks_p: *mut *mut ndb_blocks,
   5357     ) -> ::std::os::raw::c_int;
   5358 }
   5359 extern "C" {
   5360     pub fn ndb_get_block_type(block: *mut ndb_block) -> ndb_block_type;
   5361 }
   5362 extern "C" {
   5363     pub fn ndb_blocks_flags(block: *mut ndb_blocks) -> ::std::os::raw::c_int;
   5364 }
   5365 extern "C" {
   5366     pub fn ndb_blocks_total_size(blocks: *mut ndb_blocks) -> usize;
   5367 }
   5368 extern "C" {
   5369     pub fn ndb_blocks_word_count(blocks: *mut ndb_blocks) -> ::std::os::raw::c_int;
   5370 }
   5371 extern "C" {
   5372     #[doc = " Free blocks if they are owned, safe to call on unowned blocks as well."]
   5373     pub fn ndb_blocks_free(blocks: *mut ndb_blocks);
   5374 }
   5375 extern "C" {
   5376     pub fn ndb_get_blocks_by_key(
   5377         ndb: *mut ndb,
   5378         txn: *mut ndb_txn,
   5379         note_key: u64,
   5380     ) -> *mut ndb_blocks;
   5381 }
   5382 extern "C" {
   5383     pub fn ndb_blocks_iterate_start(
   5384         arg1: *const ::std::os::raw::c_char,
   5385         arg2: *mut ndb_blocks,
   5386         arg3: *mut ndb_block_iterator,
   5387     );
   5388 }
   5389 extern "C" {
   5390     pub fn ndb_blocks_iterate_next(arg1: *mut ndb_block_iterator) -> *mut ndb_block;
   5391 }
   5392 extern "C" {
   5393     pub fn ndb_block_str(arg1: *mut ndb_block) -> *mut ndb_str_block;
   5394 }
   5395 extern "C" {
   5396     pub fn ndb_str_block_ptr(arg1: *mut ndb_str_block) -> *const ::std::os::raw::c_char;
   5397 }
   5398 extern "C" {
   5399     pub fn ndb_str_block_len(arg1: *mut ndb_str_block) -> u32;
   5400 }
   5401 extern "C" {
   5402     pub fn ndb_bech32_block(block: *mut ndb_block) -> *mut nostr_bech32;
   5403 }
   5404 pub type __builtin_va_list = [__va_list_tag; 1usize];
   5405 #[repr(C)]
   5406 #[derive(Debug, Copy, Clone)]
   5407 pub struct __va_list_tag {
   5408     pub gp_offset: ::std::os::raw::c_uint,
   5409     pub fp_offset: ::std::os::raw::c_uint,
   5410     pub overflow_arg_area: *mut ::std::os::raw::c_void,
   5411     pub reg_save_area: *mut ::std::os::raw::c_void,
   5412 }
   5413 #[test]
   5414 fn bindgen_test_layout___va_list_tag() {
   5415     const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit();
   5416     let ptr = UNINIT.as_ptr();
   5417     assert_eq!(
   5418         ::std::mem::size_of::<__va_list_tag>(),
   5419         24usize,
   5420         concat!("Size of: ", stringify!(__va_list_tag))
   5421     );
   5422     assert_eq!(
   5423         ::std::mem::align_of::<__va_list_tag>(),
   5424         8usize,
   5425         concat!("Alignment of ", stringify!(__va_list_tag))
   5426     );
   5427     assert_eq!(
   5428         unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize },
   5429         0usize,
   5430         concat!(
   5431             "Offset of field: ",
   5432             stringify!(__va_list_tag),
   5433             "::",
   5434             stringify!(gp_offset)
   5435         )
   5436     );
   5437     assert_eq!(
   5438         unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize },
   5439         4usize,
   5440         concat!(
   5441             "Offset of field: ",
   5442             stringify!(__va_list_tag),
   5443             "::",
   5444             stringify!(fp_offset)
   5445         )
   5446     );
   5447     assert_eq!(
   5448         unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize },
   5449         8usize,
   5450         concat!(
   5451             "Offset of field: ",
   5452             stringify!(__va_list_tag),
   5453             "::",
   5454             stringify!(overflow_arg_area)
   5455         )
   5456     );
   5457     assert_eq!(
   5458         unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize },
   5459         16usize,
   5460         concat!(
   5461             "Offset of field: ",
   5462             stringify!(__va_list_tag),
   5463             "::",
   5464             stringify!(reg_save_area)
   5465         )
   5466     );
   5467 }
   5468 #[repr(C)]
   5469 #[derive(Debug, Copy, Clone)]
   5470 pub struct __locale_data {
   5471     pub _address: u8,
   5472 }