nostrdb-rs

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

bindings.rs (158429B)


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