nostrdb-rs

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

bindings_win.rs (161495B)


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