nostrdb-rs

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

bindings_win.rs (197590B)


      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 __bool_true_false_are_defined: u32 = 1;
    221 pub const false_: u32 = 0;
    222 pub const true_: u32 = 1;
    223 pub const CCAN_COMPILER: &[u8; 3] = b"cc\0";
    224 pub const CCAN_CFLAGS : & [u8 ; 111] = b"-g3 -ggdb -Wall -Wundef -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wold-style-definition\0" ;
    225 pub const CCAN_OUTPUT_EXE_CFLAG: &[u8; 3] = b"-o\0";
    226 pub const HAVE_CCAN: u32 = 1;
    227 pub const HAVE_UNALIGNED_ACCESS: u32 = 1;
    228 pub const HAVE_TYPEOF: u32 = 1;
    229 pub const HAVE_BIG_ENDIAN: u32 = 0;
    230 pub const HAVE_BYTESWAP_H: u32 = 0;
    231 pub const HAVE_BSWAP_64: u32 = 0;
    232 pub const HAVE_LITTLE_ENDIAN: 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_NOTE_FLAG_DELETED: u32 = 1;
    357 pub const NDB_NOTE_FLAG_RUMOR: u32 = 2;
    358 pub const NDB_NOTE_FLAG_UNWRAPPED: u32 = 4;
    359 pub const NDB_FLAG_NOMIGRATE: u32 = 1;
    360 pub const NDB_FLAG_SKIP_NOTE_VERIFY: u32 = 2;
    361 pub const NDB_FLAG_NO_FULLTEXT: u32 = 4;
    362 pub const NDB_FLAG_NO_NOTE_BLOCKS: u32 = 8;
    363 pub const NDB_FLAG_NO_STATS: u32 = 16;
    364 pub const NDB_NUM_FILTERS: u32 = 10;
    365 pub const MAX_TEXT_SEARCH_RESULTS: u32 = 128;
    366 pub const MAX_TEXT_SEARCH_WORDS: u32 = 8;
    367 pub const NDB_NUM_BLOCK_TYPES: u32 = 6;
    368 pub const NDB_MAX_RELAYS: u32 = 24;
    369 pub const NOSTR_BECH32_KNOWN_TYPES: u32 = 7;
    370 pub type va_list = *mut ::std::os::raw::c_char;
    371 extern "C" {
    372     pub fn __va_start(arg1: *mut *mut ::std::os::raw::c_char, ...);
    373 }
    374 pub type __vcrt_bool = bool;
    375 pub type wchar_t = ::std::os::raw::c_ushort;
    376 extern "C" {
    377     pub fn __security_init_cookie();
    378 }
    379 extern "C" {
    380     pub fn __security_check_cookie(_StackCookie: usize);
    381 }
    382 extern "C" {
    383     pub fn __report_gsfailure(_StackCookie: usize) -> !;
    384 }
    385 extern "C" {
    386     pub static mut __security_cookie: usize;
    387 }
    388 pub type __crt_bool = bool;
    389 extern "C" {
    390     pub fn _invalid_parameter_noinfo();
    391 }
    392 extern "C" {
    393     pub fn _invalid_parameter_noinfo_noreturn() -> !;
    394 }
    395 extern "C" {
    396     pub fn _invoke_watson(
    397         _Expression: *const wchar_t,
    398         _FunctionName: *const wchar_t,
    399         _FileName: *const wchar_t,
    400         _LineNo: ::std::os::raw::c_uint,
    401         _Reserved: usize,
    402     ) -> !;
    403 }
    404 pub type errno_t = ::std::os::raw::c_int;
    405 pub type wint_t = ::std::os::raw::c_ushort;
    406 pub type wctype_t = ::std::os::raw::c_ushort;
    407 pub type __time32_t = ::std::os::raw::c_long;
    408 pub type __time64_t = ::std::os::raw::c_longlong;
    409 #[repr(C)]
    410 #[derive(Debug, Copy, Clone)]
    411 pub struct __crt_locale_data_public {
    412     pub _locale_pctype: *const ::std::os::raw::c_ushort,
    413     pub _locale_mb_cur_max: ::std::os::raw::c_int,
    414     pub _locale_lc_codepage: ::std::os::raw::c_uint,
    415 }
    416 #[test]
    417 fn bindgen_test_layout___crt_locale_data_public() {
    418     const UNINIT: ::std::mem::MaybeUninit<__crt_locale_data_public> =
    419         ::std::mem::MaybeUninit::uninit();
    420     let ptr = UNINIT.as_ptr();
    421     assert_eq!(
    422         ::std::mem::size_of::<__crt_locale_data_public>(),
    423         16usize,
    424         concat!("Size of: ", stringify!(__crt_locale_data_public))
    425     );
    426     assert_eq!(
    427         ::std::mem::align_of::<__crt_locale_data_public>(),
    428         8usize,
    429         concat!("Alignment of ", stringify!(__crt_locale_data_public))
    430     );
    431     assert_eq!(
    432         unsafe { ::std::ptr::addr_of!((*ptr)._locale_pctype) as usize - ptr as usize },
    433         0usize,
    434         concat!(
    435             "Offset of field: ",
    436             stringify!(__crt_locale_data_public),
    437             "::",
    438             stringify!(_locale_pctype)
    439         )
    440     );
    441     assert_eq!(
    442         unsafe { ::std::ptr::addr_of!((*ptr)._locale_mb_cur_max) as usize - ptr as usize },
    443         8usize,
    444         concat!(
    445             "Offset of field: ",
    446             stringify!(__crt_locale_data_public),
    447             "::",
    448             stringify!(_locale_mb_cur_max)
    449         )
    450     );
    451     assert_eq!(
    452         unsafe { ::std::ptr::addr_of!((*ptr)._locale_lc_codepage) as usize - ptr as usize },
    453         12usize,
    454         concat!(
    455             "Offset of field: ",
    456             stringify!(__crt_locale_data_public),
    457             "::",
    458             stringify!(_locale_lc_codepage)
    459         )
    460     );
    461 }
    462 #[repr(C)]
    463 #[derive(Debug, Copy, Clone)]
    464 pub struct __crt_locale_pointers {
    465     pub locinfo: *mut __crt_locale_data,
    466     pub mbcinfo: *mut __crt_multibyte_data,
    467 }
    468 #[test]
    469 fn bindgen_test_layout___crt_locale_pointers() {
    470     const UNINIT: ::std::mem::MaybeUninit<__crt_locale_pointers> =
    471         ::std::mem::MaybeUninit::uninit();
    472     let ptr = UNINIT.as_ptr();
    473     assert_eq!(
    474         ::std::mem::size_of::<__crt_locale_pointers>(),
    475         16usize,
    476         concat!("Size of: ", stringify!(__crt_locale_pointers))
    477     );
    478     assert_eq!(
    479         ::std::mem::align_of::<__crt_locale_pointers>(),
    480         8usize,
    481         concat!("Alignment of ", stringify!(__crt_locale_pointers))
    482     );
    483     assert_eq!(
    484         unsafe { ::std::ptr::addr_of!((*ptr).locinfo) as usize - ptr as usize },
    485         0usize,
    486         concat!(
    487             "Offset of field: ",
    488             stringify!(__crt_locale_pointers),
    489             "::",
    490             stringify!(locinfo)
    491         )
    492     );
    493     assert_eq!(
    494         unsafe { ::std::ptr::addr_of!((*ptr).mbcinfo) as usize - ptr as usize },
    495         8usize,
    496         concat!(
    497             "Offset of field: ",
    498             stringify!(__crt_locale_pointers),
    499             "::",
    500             stringify!(mbcinfo)
    501         )
    502     );
    503 }
    504 pub type _locale_t = *mut __crt_locale_pointers;
    505 #[repr(C)]
    506 #[derive(Debug, Copy, Clone)]
    507 pub struct _Mbstatet {
    508     pub _Wchar: ::std::os::raw::c_ulong,
    509     pub _Byte: ::std::os::raw::c_ushort,
    510     pub _State: ::std::os::raw::c_ushort,
    511 }
    512 #[test]
    513 fn bindgen_test_layout__Mbstatet() {
    514     const UNINIT: ::std::mem::MaybeUninit<_Mbstatet> = ::std::mem::MaybeUninit::uninit();
    515     let ptr = UNINIT.as_ptr();
    516     assert_eq!(
    517         ::std::mem::size_of::<_Mbstatet>(),
    518         8usize,
    519         concat!("Size of: ", stringify!(_Mbstatet))
    520     );
    521     assert_eq!(
    522         ::std::mem::align_of::<_Mbstatet>(),
    523         4usize,
    524         concat!("Alignment of ", stringify!(_Mbstatet))
    525     );
    526     assert_eq!(
    527         unsafe { ::std::ptr::addr_of!((*ptr)._Wchar) as usize - ptr as usize },
    528         0usize,
    529         concat!(
    530             "Offset of field: ",
    531             stringify!(_Mbstatet),
    532             "::",
    533             stringify!(_Wchar)
    534         )
    535     );
    536     assert_eq!(
    537         unsafe { ::std::ptr::addr_of!((*ptr)._Byte) as usize - ptr as usize },
    538         4usize,
    539         concat!(
    540             "Offset of field: ",
    541             stringify!(_Mbstatet),
    542             "::",
    543             stringify!(_Byte)
    544         )
    545     );
    546     assert_eq!(
    547         unsafe { ::std::ptr::addr_of!((*ptr)._State) as usize - ptr as usize },
    548         6usize,
    549         concat!(
    550             "Offset of field: ",
    551             stringify!(_Mbstatet),
    552             "::",
    553             stringify!(_State)
    554         )
    555     );
    556 }
    557 pub type mbstate_t = _Mbstatet;
    558 pub type time_t = __time64_t;
    559 pub type rsize_t = usize;
    560 pub type int_least8_t = ::std::os::raw::c_schar;
    561 pub type int_least16_t = ::std::os::raw::c_short;
    562 pub type int_least32_t = ::std::os::raw::c_int;
    563 pub type int_least64_t = ::std::os::raw::c_longlong;
    564 pub type uint_least8_t = ::std::os::raw::c_uchar;
    565 pub type uint_least16_t = ::std::os::raw::c_ushort;
    566 pub type uint_least32_t = ::std::os::raw::c_uint;
    567 pub type uint_least64_t = ::std::os::raw::c_ulonglong;
    568 pub type int_fast8_t = ::std::os::raw::c_schar;
    569 pub type int_fast16_t = ::std::os::raw::c_int;
    570 pub type int_fast32_t = ::std::os::raw::c_int;
    571 pub type int_fast64_t = ::std::os::raw::c_longlong;
    572 pub type uint_fast8_t = ::std::os::raw::c_uchar;
    573 pub type uint_fast16_t = ::std::os::raw::c_uint;
    574 pub type uint_fast32_t = ::std::os::raw::c_uint;
    575 pub type uint_fast64_t = ::std::os::raw::c_ulonglong;
    576 pub type intmax_t = ::std::os::raw::c_longlong;
    577 pub type uintmax_t = ::std::os::raw::c_ulonglong;
    578 #[repr(C)]
    579 #[derive(Debug, Copy, Clone)]
    580 pub struct _Lldiv_t {
    581     pub quot: intmax_t,
    582     pub rem: intmax_t,
    583 }
    584 #[test]
    585 fn bindgen_test_layout__Lldiv_t() {
    586     const UNINIT: ::std::mem::MaybeUninit<_Lldiv_t> = ::std::mem::MaybeUninit::uninit();
    587     let ptr = UNINIT.as_ptr();
    588     assert_eq!(
    589         ::std::mem::size_of::<_Lldiv_t>(),
    590         16usize,
    591         concat!("Size of: ", stringify!(_Lldiv_t))
    592     );
    593     assert_eq!(
    594         ::std::mem::align_of::<_Lldiv_t>(),
    595         8usize,
    596         concat!("Alignment of ", stringify!(_Lldiv_t))
    597     );
    598     assert_eq!(
    599         unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize },
    600         0usize,
    601         concat!(
    602             "Offset of field: ",
    603             stringify!(_Lldiv_t),
    604             "::",
    605             stringify!(quot)
    606         )
    607     );
    608     assert_eq!(
    609         unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize },
    610         8usize,
    611         concat!(
    612             "Offset of field: ",
    613             stringify!(_Lldiv_t),
    614             "::",
    615             stringify!(rem)
    616         )
    617     );
    618 }
    619 pub type imaxdiv_t = _Lldiv_t;
    620 extern "C" {
    621     pub fn imaxabs(_Number: intmax_t) -> intmax_t;
    622 }
    623 extern "C" {
    624     pub fn imaxdiv(_Numerator: intmax_t, _Denominator: intmax_t) -> imaxdiv_t;
    625 }
    626 extern "C" {
    627     pub fn strtoimax(
    628         _String: *const ::std::os::raw::c_char,
    629         _EndPtr: *mut *mut ::std::os::raw::c_char,
    630         _Radix: ::std::os::raw::c_int,
    631     ) -> intmax_t;
    632 }
    633 extern "C" {
    634     pub fn _strtoimax_l(
    635         _String: *const ::std::os::raw::c_char,
    636         _EndPtr: *mut *mut ::std::os::raw::c_char,
    637         _Radix: ::std::os::raw::c_int,
    638         _Locale: _locale_t,
    639     ) -> intmax_t;
    640 }
    641 extern "C" {
    642     pub fn strtoumax(
    643         _String: *const ::std::os::raw::c_char,
    644         _EndPtr: *mut *mut ::std::os::raw::c_char,
    645         _Radix: ::std::os::raw::c_int,
    646     ) -> uintmax_t;
    647 }
    648 extern "C" {
    649     pub fn _strtoumax_l(
    650         _String: *const ::std::os::raw::c_char,
    651         _EndPtr: *mut *mut ::std::os::raw::c_char,
    652         _Radix: ::std::os::raw::c_int,
    653         _Locale: _locale_t,
    654     ) -> uintmax_t;
    655 }
    656 extern "C" {
    657     pub fn wcstoimax(
    658         _String: *const wchar_t,
    659         _EndPtr: *mut *mut wchar_t,
    660         _Radix: ::std::os::raw::c_int,
    661     ) -> intmax_t;
    662 }
    663 extern "C" {
    664     pub fn _wcstoimax_l(
    665         _String: *const wchar_t,
    666         _EndPtr: *mut *mut wchar_t,
    667         _Radix: ::std::os::raw::c_int,
    668         _Locale: _locale_t,
    669     ) -> intmax_t;
    670 }
    671 extern "C" {
    672     pub fn wcstoumax(
    673         _String: *const wchar_t,
    674         _EndPtr: *mut *mut wchar_t,
    675         _Radix: ::std::os::raw::c_int,
    676     ) -> uintmax_t;
    677 }
    678 extern "C" {
    679     pub fn _wcstoumax_l(
    680         _String: *const wchar_t,
    681         _EndPtr: *mut *mut wchar_t,
    682         _Radix: ::std::os::raw::c_int,
    683         _Locale: _locale_t,
    684     ) -> uintmax_t;
    685 }
    686 #[repr(C)]
    687 #[derive(Debug, Copy, Clone)]
    688 pub struct _iobuf {
    689     pub _Placeholder: *mut ::std::os::raw::c_void,
    690 }
    691 #[test]
    692 fn bindgen_test_layout__iobuf() {
    693     const UNINIT: ::std::mem::MaybeUninit<_iobuf> = ::std::mem::MaybeUninit::uninit();
    694     let ptr = UNINIT.as_ptr();
    695     assert_eq!(
    696         ::std::mem::size_of::<_iobuf>(),
    697         8usize,
    698         concat!("Size of: ", stringify!(_iobuf))
    699     );
    700     assert_eq!(
    701         ::std::mem::align_of::<_iobuf>(),
    702         8usize,
    703         concat!("Alignment of ", stringify!(_iobuf))
    704     );
    705     assert_eq!(
    706         unsafe { ::std::ptr::addr_of!((*ptr)._Placeholder) as usize - ptr as usize },
    707         0usize,
    708         concat!(
    709             "Offset of field: ",
    710             stringify!(_iobuf),
    711             "::",
    712             stringify!(_Placeholder)
    713         )
    714     );
    715 }
    716 pub type FILE = _iobuf;
    717 extern "C" {
    718     pub fn __acrt_iob_func(_Ix: ::std::os::raw::c_uint) -> *mut FILE;
    719 }
    720 extern "C" {
    721     pub fn fgetwc(_Stream: *mut FILE) -> wint_t;
    722 }
    723 extern "C" {
    724     pub fn _fgetwchar() -> wint_t;
    725 }
    726 extern "C" {
    727     pub fn fputwc(_Character: wchar_t, _Stream: *mut FILE) -> wint_t;
    728 }
    729 extern "C" {
    730     pub fn _fputwchar(_Character: wchar_t) -> wint_t;
    731 }
    732 extern "C" {
    733     pub fn getwc(_Stream: *mut FILE) -> wint_t;
    734 }
    735 extern "C" {
    736     pub fn getwchar() -> wint_t;
    737 }
    738 extern "C" {
    739     pub fn fgetws(
    740         _Buffer: *mut wchar_t,
    741         _BufferCount: ::std::os::raw::c_int,
    742         _Stream: *mut FILE,
    743     ) -> *mut wchar_t;
    744 }
    745 extern "C" {
    746     pub fn fputws(_Buffer: *const wchar_t, _Stream: *mut FILE) -> ::std::os::raw::c_int;
    747 }
    748 extern "C" {
    749     pub fn _getws_s(_Buffer: *mut wchar_t, _BufferCount: usize) -> *mut wchar_t;
    750 }
    751 extern "C" {
    752     pub fn putwc(_Character: wchar_t, _Stream: *mut FILE) -> wint_t;
    753 }
    754 extern "C" {
    755     pub fn putwchar(_Character: wchar_t) -> wint_t;
    756 }
    757 extern "C" {
    758     pub fn _putws(_Buffer: *const wchar_t) -> ::std::os::raw::c_int;
    759 }
    760 extern "C" {
    761     pub fn ungetwc(_Character: wint_t, _Stream: *mut FILE) -> wint_t;
    762 }
    763 extern "C" {
    764     pub fn _wfdopen(_FileHandle: ::std::os::raw::c_int, _Mode: *const wchar_t) -> *mut FILE;
    765 }
    766 extern "C" {
    767     pub fn _wfopen(_FileName: *const wchar_t, _Mode: *const wchar_t) -> *mut FILE;
    768 }
    769 extern "C" {
    770     pub fn _wfopen_s(
    771         _Stream: *mut *mut FILE,
    772         _FileName: *const wchar_t,
    773         _Mode: *const wchar_t,
    774     ) -> errno_t;
    775 }
    776 extern "C" {
    777     pub fn _wfreopen(
    778         _FileName: *const wchar_t,
    779         _Mode: *const wchar_t,
    780         _OldStream: *mut FILE,
    781     ) -> *mut FILE;
    782 }
    783 extern "C" {
    784     pub fn _wfreopen_s(
    785         _Stream: *mut *mut FILE,
    786         _FileName: *const wchar_t,
    787         _Mode: *const wchar_t,
    788         _OldStream: *mut FILE,
    789     ) -> errno_t;
    790 }
    791 extern "C" {
    792     pub fn _wfsopen(
    793         _FileName: *const wchar_t,
    794         _Mode: *const wchar_t,
    795         _ShFlag: ::std::os::raw::c_int,
    796     ) -> *mut FILE;
    797 }
    798 extern "C" {
    799     pub fn _wperror(_ErrorMessage: *const wchar_t);
    800 }
    801 extern "C" {
    802     pub fn _wpopen(_Command: *const wchar_t, _Mode: *const wchar_t) -> *mut FILE;
    803 }
    804 extern "C" {
    805     pub fn _wremove(_FileName: *const wchar_t) -> ::std::os::raw::c_int;
    806 }
    807 extern "C" {
    808     pub fn _wtempnam(_Directory: *const wchar_t, _FilePrefix: *const wchar_t) -> *mut wchar_t;
    809 }
    810 extern "C" {
    811     pub fn _wtmpnam_s(_Buffer: *mut wchar_t, _BufferCount: usize) -> errno_t;
    812 }
    813 extern "C" {
    814     pub fn _wtmpnam(_Buffer: *mut wchar_t) -> *mut wchar_t;
    815 }
    816 extern "C" {
    817     pub fn _fgetwc_nolock(_Stream: *mut FILE) -> wint_t;
    818 }
    819 extern "C" {
    820     pub fn _fputwc_nolock(_Character: wchar_t, _Stream: *mut FILE) -> wint_t;
    821 }
    822 extern "C" {
    823     pub fn _getwc_nolock(_Stream: *mut FILE) -> wint_t;
    824 }
    825 extern "C" {
    826     pub fn _putwc_nolock(_Character: wchar_t, _Stream: *mut FILE) -> wint_t;
    827 }
    828 extern "C" {
    829     pub fn _ungetwc_nolock(_Character: wint_t, _Stream: *mut FILE) -> wint_t;
    830 }
    831 extern "C" {
    832     pub fn __stdio_common_vfwprintf(
    833         _Options: ::std::os::raw::c_ulonglong,
    834         _Stream: *mut FILE,
    835         _Format: *const wchar_t,
    836         _Locale: _locale_t,
    837         _ArgList: va_list,
    838     ) -> ::std::os::raw::c_int;
    839 }
    840 extern "C" {
    841     pub fn __stdio_common_vfwprintf_s(
    842         _Options: ::std::os::raw::c_ulonglong,
    843         _Stream: *mut FILE,
    844         _Format: *const wchar_t,
    845         _Locale: _locale_t,
    846         _ArgList: va_list,
    847     ) -> ::std::os::raw::c_int;
    848 }
    849 extern "C" {
    850     pub fn __stdio_common_vfwprintf_p(
    851         _Options: ::std::os::raw::c_ulonglong,
    852         _Stream: *mut FILE,
    853         _Format: *const wchar_t,
    854         _Locale: _locale_t,
    855         _ArgList: va_list,
    856     ) -> ::std::os::raw::c_int;
    857 }
    858 extern "C" {
    859     pub fn __stdio_common_vfwscanf(
    860         _Options: ::std::os::raw::c_ulonglong,
    861         _Stream: *mut FILE,
    862         _Format: *const wchar_t,
    863         _Locale: _locale_t,
    864         _ArgList: va_list,
    865     ) -> ::std::os::raw::c_int;
    866 }
    867 extern "C" {
    868     pub fn __stdio_common_vswprintf(
    869         _Options: ::std::os::raw::c_ulonglong,
    870         _Buffer: *mut wchar_t,
    871         _BufferCount: usize,
    872         _Format: *const wchar_t,
    873         _Locale: _locale_t,
    874         _ArgList: va_list,
    875     ) -> ::std::os::raw::c_int;
    876 }
    877 extern "C" {
    878     pub fn __stdio_common_vswprintf_s(
    879         _Options: ::std::os::raw::c_ulonglong,
    880         _Buffer: *mut wchar_t,
    881         _BufferCount: usize,
    882         _Format: *const wchar_t,
    883         _Locale: _locale_t,
    884         _ArgList: va_list,
    885     ) -> ::std::os::raw::c_int;
    886 }
    887 extern "C" {
    888     pub fn __stdio_common_vsnwprintf_s(
    889         _Options: ::std::os::raw::c_ulonglong,
    890         _Buffer: *mut wchar_t,
    891         _BufferCount: usize,
    892         _MaxCount: usize,
    893         _Format: *const wchar_t,
    894         _Locale: _locale_t,
    895         _ArgList: va_list,
    896     ) -> ::std::os::raw::c_int;
    897 }
    898 extern "C" {
    899     pub fn __stdio_common_vswprintf_p(
    900         _Options: ::std::os::raw::c_ulonglong,
    901         _Buffer: *mut wchar_t,
    902         _BufferCount: usize,
    903         _Format: *const wchar_t,
    904         _Locale: _locale_t,
    905         _ArgList: va_list,
    906     ) -> ::std::os::raw::c_int;
    907 }
    908 extern "C" {
    909     pub fn __stdio_common_vswscanf(
    910         _Options: ::std::os::raw::c_ulonglong,
    911         _Buffer: *const wchar_t,
    912         _BufferCount: usize,
    913         _Format: *const wchar_t,
    914         _Locale: _locale_t,
    915         _ArgList: va_list,
    916     ) -> ::std::os::raw::c_int;
    917 }
    918 pub type fpos_t = ::std::os::raw::c_longlong;
    919 extern "C" {
    920     pub fn _get_stream_buffer_pointers(
    921         _Stream: *mut FILE,
    922         _Base: *mut *mut *mut ::std::os::raw::c_char,
    923         _Pointer: *mut *mut *mut ::std::os::raw::c_char,
    924         _Count: *mut *mut ::std::os::raw::c_int,
    925     ) -> errno_t;
    926 }
    927 extern "C" {
    928     pub fn clearerr_s(_Stream: *mut FILE) -> errno_t;
    929 }
    930 extern "C" {
    931     pub fn fopen_s(
    932         _Stream: *mut *mut FILE,
    933         _FileName: *const ::std::os::raw::c_char,
    934         _Mode: *const ::std::os::raw::c_char,
    935     ) -> errno_t;
    936 }
    937 extern "C" {
    938     pub fn fread_s(
    939         _Buffer: *mut ::std::os::raw::c_void,
    940         _BufferSize: usize,
    941         _ElementSize: usize,
    942         _ElementCount: usize,
    943         _Stream: *mut FILE,
    944     ) -> usize;
    945 }
    946 extern "C" {
    947     pub fn freopen_s(
    948         _Stream: *mut *mut FILE,
    949         _FileName: *const ::std::os::raw::c_char,
    950         _Mode: *const ::std::os::raw::c_char,
    951         _OldStream: *mut FILE,
    952     ) -> errno_t;
    953 }
    954 extern "C" {
    955     pub fn gets_s(
    956         _Buffer: *mut ::std::os::raw::c_char,
    957         _Size: rsize_t,
    958     ) -> *mut ::std::os::raw::c_char;
    959 }
    960 extern "C" {
    961     pub fn tmpfile_s(_Stream: *mut *mut FILE) -> errno_t;
    962 }
    963 extern "C" {
    964     pub fn tmpnam_s(_Buffer: *mut ::std::os::raw::c_char, _Size: rsize_t) -> errno_t;
    965 }
    966 extern "C" {
    967     pub fn clearerr(_Stream: *mut FILE);
    968 }
    969 extern "C" {
    970     pub fn fclose(_Stream: *mut FILE) -> ::std::os::raw::c_int;
    971 }
    972 extern "C" {
    973     pub fn _fcloseall() -> ::std::os::raw::c_int;
    974 }
    975 extern "C" {
    976     pub fn _fdopen(
    977         _FileHandle: ::std::os::raw::c_int,
    978         _Mode: *const ::std::os::raw::c_char,
    979     ) -> *mut FILE;
    980 }
    981 extern "C" {
    982     pub fn feof(_Stream: *mut FILE) -> ::std::os::raw::c_int;
    983 }
    984 extern "C" {
    985     pub fn ferror(_Stream: *mut FILE) -> ::std::os::raw::c_int;
    986 }
    987 extern "C" {
    988     pub fn fflush(_Stream: *mut FILE) -> ::std::os::raw::c_int;
    989 }
    990 extern "C" {
    991     pub fn fgetc(_Stream: *mut FILE) -> ::std::os::raw::c_int;
    992 }
    993 extern "C" {
    994     pub fn _fgetchar() -> ::std::os::raw::c_int;
    995 }
    996 extern "C" {
    997     pub fn fgetpos(_Stream: *mut FILE, _Position: *mut fpos_t) -> ::std::os::raw::c_int;
    998 }
    999 extern "C" {
   1000     pub fn fgets(
   1001         _Buffer: *mut ::std::os::raw::c_char,
   1002         _MaxCount: ::std::os::raw::c_int,
   1003         _Stream: *mut FILE,
   1004     ) -> *mut ::std::os::raw::c_char;
   1005 }
   1006 extern "C" {
   1007     pub fn _fileno(_Stream: *mut FILE) -> ::std::os::raw::c_int;
   1008 }
   1009 extern "C" {
   1010     pub fn _flushall() -> ::std::os::raw::c_int;
   1011 }
   1012 extern "C" {
   1013     pub fn fopen(
   1014         _FileName: *const ::std::os::raw::c_char,
   1015         _Mode: *const ::std::os::raw::c_char,
   1016     ) -> *mut FILE;
   1017 }
   1018 extern "C" {
   1019     pub fn fputc(_Character: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
   1020 }
   1021 extern "C" {
   1022     pub fn _fputchar(_Character: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1023 }
   1024 extern "C" {
   1025     pub fn fputs(
   1026         _Buffer: *const ::std::os::raw::c_char,
   1027         _Stream: *mut FILE,
   1028     ) -> ::std::os::raw::c_int;
   1029 }
   1030 extern "C" {
   1031     pub fn fread(
   1032         _Buffer: *mut ::std::os::raw::c_void,
   1033         _ElementSize: ::std::os::raw::c_ulonglong,
   1034         _ElementCount: ::std::os::raw::c_ulonglong,
   1035         _Stream: *mut FILE,
   1036     ) -> ::std::os::raw::c_ulonglong;
   1037 }
   1038 extern "C" {
   1039     pub fn freopen(
   1040         _FileName: *const ::std::os::raw::c_char,
   1041         _Mode: *const ::std::os::raw::c_char,
   1042         _Stream: *mut FILE,
   1043     ) -> *mut FILE;
   1044 }
   1045 extern "C" {
   1046     pub fn _fsopen(
   1047         _FileName: *const ::std::os::raw::c_char,
   1048         _Mode: *const ::std::os::raw::c_char,
   1049         _ShFlag: ::std::os::raw::c_int,
   1050     ) -> *mut FILE;
   1051 }
   1052 extern "C" {
   1053     pub fn fsetpos(_Stream: *mut FILE, _Position: *const fpos_t) -> ::std::os::raw::c_int;
   1054 }
   1055 extern "C" {
   1056     pub fn fseek(
   1057         _Stream: *mut FILE,
   1058         _Offset: ::std::os::raw::c_long,
   1059         _Origin: ::std::os::raw::c_int,
   1060     ) -> ::std::os::raw::c_int;
   1061 }
   1062 extern "C" {
   1063     pub fn _fseeki64(
   1064         _Stream: *mut FILE,
   1065         _Offset: ::std::os::raw::c_longlong,
   1066         _Origin: ::std::os::raw::c_int,
   1067     ) -> ::std::os::raw::c_int;
   1068 }
   1069 extern "C" {
   1070     pub fn ftell(_Stream: *mut FILE) -> ::std::os::raw::c_long;
   1071 }
   1072 extern "C" {
   1073     pub fn _ftelli64(_Stream: *mut FILE) -> ::std::os::raw::c_longlong;
   1074 }
   1075 extern "C" {
   1076     pub fn fwrite(
   1077         _Buffer: *const ::std::os::raw::c_void,
   1078         _ElementSize: ::std::os::raw::c_ulonglong,
   1079         _ElementCount: ::std::os::raw::c_ulonglong,
   1080         _Stream: *mut FILE,
   1081     ) -> ::std::os::raw::c_ulonglong;
   1082 }
   1083 extern "C" {
   1084     pub fn getc(_Stream: *mut FILE) -> ::std::os::raw::c_int;
   1085 }
   1086 extern "C" {
   1087     pub fn getchar() -> ::std::os::raw::c_int;
   1088 }
   1089 extern "C" {
   1090     pub fn _getmaxstdio() -> ::std::os::raw::c_int;
   1091 }
   1092 extern "C" {
   1093     pub fn _getw(_Stream: *mut FILE) -> ::std::os::raw::c_int;
   1094 }
   1095 extern "C" {
   1096     pub fn perror(_ErrorMessage: *const ::std::os::raw::c_char);
   1097 }
   1098 extern "C" {
   1099     pub fn _pclose(_Stream: *mut FILE) -> ::std::os::raw::c_int;
   1100 }
   1101 extern "C" {
   1102     pub fn _popen(
   1103         _Command: *const ::std::os::raw::c_char,
   1104         _Mode: *const ::std::os::raw::c_char,
   1105     ) -> *mut FILE;
   1106 }
   1107 extern "C" {
   1108     pub fn putc(_Character: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
   1109 }
   1110 extern "C" {
   1111     pub fn putchar(_Character: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1112 }
   1113 extern "C" {
   1114     pub fn puts(_Buffer: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
   1115 }
   1116 extern "C" {
   1117     pub fn _putw(_Word: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
   1118 }
   1119 extern "C" {
   1120     pub fn remove(_FileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
   1121 }
   1122 extern "C" {
   1123     pub fn rename(
   1124         _OldFileName: *const ::std::os::raw::c_char,
   1125         _NewFileName: *const ::std::os::raw::c_char,
   1126     ) -> ::std::os::raw::c_int;
   1127 }
   1128 extern "C" {
   1129     pub fn _unlink(_FileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
   1130 }
   1131 extern "C" {
   1132     pub fn unlink(_FileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
   1133 }
   1134 extern "C" {
   1135     pub fn rewind(_Stream: *mut FILE);
   1136 }
   1137 extern "C" {
   1138     pub fn _rmtmp() -> ::std::os::raw::c_int;
   1139 }
   1140 extern "C" {
   1141     pub fn setbuf(_Stream: *mut FILE, _Buffer: *mut ::std::os::raw::c_char);
   1142 }
   1143 extern "C" {
   1144     pub fn _setmaxstdio(_Maximum: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1145 }
   1146 extern "C" {
   1147     pub fn setvbuf(
   1148         _Stream: *mut FILE,
   1149         _Buffer: *mut ::std::os::raw::c_char,
   1150         _Mode: ::std::os::raw::c_int,
   1151         _Size: usize,
   1152     ) -> ::std::os::raw::c_int;
   1153 }
   1154 extern "C" {
   1155     pub fn _tempnam(
   1156         _DirectoryName: *const ::std::os::raw::c_char,
   1157         _FilePrefix: *const ::std::os::raw::c_char,
   1158     ) -> *mut ::std::os::raw::c_char;
   1159 }
   1160 extern "C" {
   1161     pub fn tmpfile() -> *mut FILE;
   1162 }
   1163 extern "C" {
   1164     pub fn tmpnam(_Buffer: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
   1165 }
   1166 extern "C" {
   1167     pub fn ungetc(_Character: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
   1168 }
   1169 extern "C" {
   1170     pub fn _lock_file(_Stream: *mut FILE);
   1171 }
   1172 extern "C" {
   1173     pub fn _unlock_file(_Stream: *mut FILE);
   1174 }
   1175 extern "C" {
   1176     pub fn _fclose_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
   1177 }
   1178 extern "C" {
   1179     pub fn _fflush_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
   1180 }
   1181 extern "C" {
   1182     pub fn _fgetc_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
   1183 }
   1184 extern "C" {
   1185     pub fn _fputc_nolock(
   1186         _Character: ::std::os::raw::c_int,
   1187         _Stream: *mut FILE,
   1188     ) -> ::std::os::raw::c_int;
   1189 }
   1190 extern "C" {
   1191     pub fn _fread_nolock(
   1192         _Buffer: *mut ::std::os::raw::c_void,
   1193         _ElementSize: usize,
   1194         _ElementCount: usize,
   1195         _Stream: *mut FILE,
   1196     ) -> usize;
   1197 }
   1198 extern "C" {
   1199     pub fn _fread_nolock_s(
   1200         _Buffer: *mut ::std::os::raw::c_void,
   1201         _BufferSize: usize,
   1202         _ElementSize: usize,
   1203         _ElementCount: usize,
   1204         _Stream: *mut FILE,
   1205     ) -> usize;
   1206 }
   1207 extern "C" {
   1208     pub fn _fseek_nolock(
   1209         _Stream: *mut FILE,
   1210         _Offset: ::std::os::raw::c_long,
   1211         _Origin: ::std::os::raw::c_int,
   1212     ) -> ::std::os::raw::c_int;
   1213 }
   1214 extern "C" {
   1215     pub fn _fseeki64_nolock(
   1216         _Stream: *mut FILE,
   1217         _Offset: ::std::os::raw::c_longlong,
   1218         _Origin: ::std::os::raw::c_int,
   1219     ) -> ::std::os::raw::c_int;
   1220 }
   1221 extern "C" {
   1222     pub fn _ftell_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_long;
   1223 }
   1224 extern "C" {
   1225     pub fn _ftelli64_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_longlong;
   1226 }
   1227 extern "C" {
   1228     pub fn _fwrite_nolock(
   1229         _Buffer: *const ::std::os::raw::c_void,
   1230         _ElementSize: usize,
   1231         _ElementCount: usize,
   1232         _Stream: *mut FILE,
   1233     ) -> usize;
   1234 }
   1235 extern "C" {
   1236     pub fn _getc_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
   1237 }
   1238 extern "C" {
   1239     pub fn _putc_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 _ungetc_nolock(
   1246         _Character: ::std::os::raw::c_int,
   1247         _Stream: *mut FILE,
   1248     ) -> ::std::os::raw::c_int;
   1249 }
   1250 extern "C" {
   1251     pub fn __p__commode() -> *mut ::std::os::raw::c_int;
   1252 }
   1253 extern "C" {
   1254     pub fn __stdio_common_vfprintf(
   1255         _Options: ::std::os::raw::c_ulonglong,
   1256         _Stream: *mut FILE,
   1257         _Format: *const ::std::os::raw::c_char,
   1258         _Locale: _locale_t,
   1259         _ArgList: va_list,
   1260     ) -> ::std::os::raw::c_int;
   1261 }
   1262 extern "C" {
   1263     pub fn __stdio_common_vfprintf_s(
   1264         _Options: ::std::os::raw::c_ulonglong,
   1265         _Stream: *mut FILE,
   1266         _Format: *const ::std::os::raw::c_char,
   1267         _Locale: _locale_t,
   1268         _ArgList: va_list,
   1269     ) -> ::std::os::raw::c_int;
   1270 }
   1271 extern "C" {
   1272     pub fn __stdio_common_vfprintf_p(
   1273         _Options: ::std::os::raw::c_ulonglong,
   1274         _Stream: *mut FILE,
   1275         _Format: *const ::std::os::raw::c_char,
   1276         _Locale: _locale_t,
   1277         _ArgList: va_list,
   1278     ) -> ::std::os::raw::c_int;
   1279 }
   1280 extern "C" {
   1281     pub fn _set_printf_count_output(_Value: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1282 }
   1283 extern "C" {
   1284     pub fn _get_printf_count_output() -> ::std::os::raw::c_int;
   1285 }
   1286 extern "C" {
   1287     pub fn __stdio_common_vfscanf(
   1288         _Options: ::std::os::raw::c_ulonglong,
   1289         _Stream: *mut FILE,
   1290         _Format: *const ::std::os::raw::c_char,
   1291         _Locale: _locale_t,
   1292         _Arglist: va_list,
   1293     ) -> ::std::os::raw::c_int;
   1294 }
   1295 extern "C" {
   1296     pub fn __stdio_common_vsprintf(
   1297         _Options: ::std::os::raw::c_ulonglong,
   1298         _Buffer: *mut ::std::os::raw::c_char,
   1299         _BufferCount: usize,
   1300         _Format: *const ::std::os::raw::c_char,
   1301         _Locale: _locale_t,
   1302         _ArgList: va_list,
   1303     ) -> ::std::os::raw::c_int;
   1304 }
   1305 extern "C" {
   1306     pub fn __stdio_common_vsprintf_s(
   1307         _Options: ::std::os::raw::c_ulonglong,
   1308         _Buffer: *mut ::std::os::raw::c_char,
   1309         _BufferCount: usize,
   1310         _Format: *const ::std::os::raw::c_char,
   1311         _Locale: _locale_t,
   1312         _ArgList: va_list,
   1313     ) -> ::std::os::raw::c_int;
   1314 }
   1315 extern "C" {
   1316     pub fn __stdio_common_vsnprintf_s(
   1317         _Options: ::std::os::raw::c_ulonglong,
   1318         _Buffer: *mut ::std::os::raw::c_char,
   1319         _BufferCount: usize,
   1320         _MaxCount: usize,
   1321         _Format: *const ::std::os::raw::c_char,
   1322         _Locale: _locale_t,
   1323         _ArgList: va_list,
   1324     ) -> ::std::os::raw::c_int;
   1325 }
   1326 extern "C" {
   1327     pub fn __stdio_common_vsprintf_p(
   1328         _Options: ::std::os::raw::c_ulonglong,
   1329         _Buffer: *mut ::std::os::raw::c_char,
   1330         _BufferCount: usize,
   1331         _Format: *const ::std::os::raw::c_char,
   1332         _Locale: _locale_t,
   1333         _ArgList: va_list,
   1334     ) -> ::std::os::raw::c_int;
   1335 }
   1336 extern "C" {
   1337     pub fn __stdio_common_vsscanf(
   1338         _Options: ::std::os::raw::c_ulonglong,
   1339         _Buffer: *const ::std::os::raw::c_char,
   1340         _BufferCount: usize,
   1341         _Format: *const ::std::os::raw::c_char,
   1342         _Locale: _locale_t,
   1343         _ArgList: va_list,
   1344     ) -> ::std::os::raw::c_int;
   1345 }
   1346 extern "C" {
   1347     pub fn tempnam(
   1348         _Directory: *const ::std::os::raw::c_char,
   1349         _FilePrefix: *const ::std::os::raw::c_char,
   1350     ) -> *mut ::std::os::raw::c_char;
   1351 }
   1352 extern "C" {
   1353     pub fn fcloseall() -> ::std::os::raw::c_int;
   1354 }
   1355 extern "C" {
   1356     pub fn fdopen(
   1357         _FileHandle: ::std::os::raw::c_int,
   1358         _Format: *const ::std::os::raw::c_char,
   1359     ) -> *mut FILE;
   1360 }
   1361 extern "C" {
   1362     pub fn fgetchar() -> ::std::os::raw::c_int;
   1363 }
   1364 extern "C" {
   1365     pub fn fileno(_Stream: *mut FILE) -> ::std::os::raw::c_int;
   1366 }
   1367 extern "C" {
   1368     pub fn flushall() -> ::std::os::raw::c_int;
   1369 }
   1370 extern "C" {
   1371     pub fn fputchar(_Ch: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1372 }
   1373 extern "C" {
   1374     pub fn getw(_Stream: *mut FILE) -> ::std::os::raw::c_int;
   1375 }
   1376 extern "C" {
   1377     pub fn putw(_Ch: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
   1378 }
   1379 extern "C" {
   1380     pub fn rmtmp() -> ::std::os::raw::c_int;
   1381 }
   1382 extern "C" {
   1383     pub fn __pctype_func() -> *const ::std::os::raw::c_ushort;
   1384 }
   1385 extern "C" {
   1386     pub fn __pwctype_func() -> *const wctype_t;
   1387 }
   1388 extern "C" {
   1389     pub fn iswalnum(_C: wint_t) -> ::std::os::raw::c_int;
   1390 }
   1391 extern "C" {
   1392     pub fn iswalpha(_C: wint_t) -> ::std::os::raw::c_int;
   1393 }
   1394 extern "C" {
   1395     pub fn iswascii(_C: wint_t) -> ::std::os::raw::c_int;
   1396 }
   1397 extern "C" {
   1398     pub fn iswblank(_C: wint_t) -> ::std::os::raw::c_int;
   1399 }
   1400 extern "C" {
   1401     pub fn iswcntrl(_C: wint_t) -> ::std::os::raw::c_int;
   1402 }
   1403 extern "C" {
   1404     pub fn iswdigit(_C: wint_t) -> ::std::os::raw::c_int;
   1405 }
   1406 extern "C" {
   1407     pub fn iswgraph(_C: wint_t) -> ::std::os::raw::c_int;
   1408 }
   1409 extern "C" {
   1410     pub fn iswlower(_C: wint_t) -> ::std::os::raw::c_int;
   1411 }
   1412 extern "C" {
   1413     pub fn iswprint(_C: wint_t) -> ::std::os::raw::c_int;
   1414 }
   1415 extern "C" {
   1416     pub fn iswpunct(_C: wint_t) -> ::std::os::raw::c_int;
   1417 }
   1418 extern "C" {
   1419     pub fn iswspace(_C: wint_t) -> ::std::os::raw::c_int;
   1420 }
   1421 extern "C" {
   1422     pub fn iswupper(_C: wint_t) -> ::std::os::raw::c_int;
   1423 }
   1424 extern "C" {
   1425     pub fn iswxdigit(_C: wint_t) -> ::std::os::raw::c_int;
   1426 }
   1427 extern "C" {
   1428     pub fn __iswcsymf(_C: wint_t) -> ::std::os::raw::c_int;
   1429 }
   1430 extern "C" {
   1431     pub fn __iswcsym(_C: wint_t) -> ::std::os::raw::c_int;
   1432 }
   1433 extern "C" {
   1434     pub fn _iswalnum_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1435 }
   1436 extern "C" {
   1437     pub fn _iswalpha_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1438 }
   1439 extern "C" {
   1440     pub fn _iswblank_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1441 }
   1442 extern "C" {
   1443     pub fn _iswcntrl_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1444 }
   1445 extern "C" {
   1446     pub fn _iswdigit_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1447 }
   1448 extern "C" {
   1449     pub fn _iswgraph_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1450 }
   1451 extern "C" {
   1452     pub fn _iswlower_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1453 }
   1454 extern "C" {
   1455     pub fn _iswprint_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1456 }
   1457 extern "C" {
   1458     pub fn _iswpunct_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1459 }
   1460 extern "C" {
   1461     pub fn _iswspace_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1462 }
   1463 extern "C" {
   1464     pub fn _iswupper_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1465 }
   1466 extern "C" {
   1467     pub fn _iswxdigit_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1468 }
   1469 extern "C" {
   1470     pub fn _iswcsymf_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1471 }
   1472 extern "C" {
   1473     pub fn _iswcsym_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1474 }
   1475 extern "C" {
   1476     pub fn towupper(_C: wint_t) -> wint_t;
   1477 }
   1478 extern "C" {
   1479     pub fn towlower(_C: wint_t) -> wint_t;
   1480 }
   1481 extern "C" {
   1482     pub fn iswctype(_C: wint_t, _Type: wctype_t) -> ::std::os::raw::c_int;
   1483 }
   1484 extern "C" {
   1485     pub fn _towupper_l(_C: wint_t, _Locale: _locale_t) -> wint_t;
   1486 }
   1487 extern "C" {
   1488     pub fn _towlower_l(_C: wint_t, _Locale: _locale_t) -> wint_t;
   1489 }
   1490 extern "C" {
   1491     pub fn _iswctype_l(_C: wint_t, _Type: wctype_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1492 }
   1493 extern "C" {
   1494     pub fn isleadbyte(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1495 }
   1496 extern "C" {
   1497     pub fn _isleadbyte_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1498 }
   1499 extern "C" {
   1500     pub fn is_wctype(_C: wint_t, _Type: wctype_t) -> ::std::os::raw::c_int;
   1501 }
   1502 extern "C" {
   1503     pub fn _isctype(
   1504         _C: ::std::os::raw::c_int,
   1505         _Type: ::std::os::raw::c_int,
   1506     ) -> ::std::os::raw::c_int;
   1507 }
   1508 extern "C" {
   1509     pub fn _isctype_l(
   1510         _C: ::std::os::raw::c_int,
   1511         _Type: ::std::os::raw::c_int,
   1512         _Locale: _locale_t,
   1513     ) -> ::std::os::raw::c_int;
   1514 }
   1515 extern "C" {
   1516     pub fn isalpha(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1517 }
   1518 extern "C" {
   1519     pub fn _isalpha_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1520 }
   1521 extern "C" {
   1522     pub fn isupper(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1523 }
   1524 extern "C" {
   1525     pub fn _isupper_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1526 }
   1527 extern "C" {
   1528     pub fn islower(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1529 }
   1530 extern "C" {
   1531     pub fn _islower_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1532 }
   1533 extern "C" {
   1534     pub fn isdigit(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1535 }
   1536 extern "C" {
   1537     pub fn _isdigit_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1538 }
   1539 extern "C" {
   1540     pub fn isxdigit(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1541 }
   1542 extern "C" {
   1543     pub fn _isxdigit_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1544 }
   1545 extern "C" {
   1546     pub fn isspace(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1547 }
   1548 extern "C" {
   1549     pub fn _isspace_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1550 }
   1551 extern "C" {
   1552     pub fn ispunct(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1553 }
   1554 extern "C" {
   1555     pub fn _ispunct_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1556 }
   1557 extern "C" {
   1558     pub fn isblank(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1559 }
   1560 extern "C" {
   1561     pub fn _isblank_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1562 }
   1563 extern "C" {
   1564     pub fn isalnum(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1565 }
   1566 extern "C" {
   1567     pub fn _isalnum_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1568 }
   1569 extern "C" {
   1570     pub fn isprint(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1571 }
   1572 extern "C" {
   1573     pub fn _isprint_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1574 }
   1575 extern "C" {
   1576     pub fn isgraph(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1577 }
   1578 extern "C" {
   1579     pub fn _isgraph_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1580 }
   1581 extern "C" {
   1582     pub fn iscntrl(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1583 }
   1584 extern "C" {
   1585     pub fn _iscntrl_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1586 }
   1587 extern "C" {
   1588     pub fn toupper(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1589 }
   1590 extern "C" {
   1591     pub fn tolower(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1592 }
   1593 extern "C" {
   1594     pub fn _tolower(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1595 }
   1596 extern "C" {
   1597     pub fn _tolower_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1598 }
   1599 extern "C" {
   1600     pub fn _toupper(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1601 }
   1602 extern "C" {
   1603     pub fn _toupper_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
   1604 }
   1605 extern "C" {
   1606     pub fn __isascii(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1607 }
   1608 extern "C" {
   1609     pub fn __toascii(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1610 }
   1611 extern "C" {
   1612     pub fn __iscsymf(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1613 }
   1614 extern "C" {
   1615     pub fn __iscsym(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
   1616 }
   1617 extern "C" {
   1618     pub fn ___mb_cur_max_func() -> ::std::os::raw::c_int;
   1619 }
   1620 extern "C" {
   1621     pub fn ___mb_cur_max_l_func(_Locale: _locale_t) -> ::std::os::raw::c_int;
   1622 }
   1623 extern "C" {
   1624     pub fn _wassert(_Message: *const wchar_t, _File: *const wchar_t, _Line: ::std::os::raw::c_uint);
   1625 }
   1626 extern "C" {
   1627     pub fn _errno() -> *mut ::std::os::raw::c_int;
   1628 }
   1629 extern "C" {
   1630     pub fn _set_errno(_Value: ::std::os::raw::c_int) -> errno_t;
   1631 }
   1632 extern "C" {
   1633     pub fn _get_errno(_Value: *mut ::std::os::raw::c_int) -> errno_t;
   1634 }
   1635 extern "C" {
   1636     pub fn __doserrno() -> *mut ::std::os::raw::c_ulong;
   1637 }
   1638 extern "C" {
   1639     pub fn _set_doserrno(_Value: ::std::os::raw::c_ulong) -> errno_t;
   1640 }
   1641 extern "C" {
   1642     pub fn _get_doserrno(_Value: *mut ::std::os::raw::c_ulong) -> errno_t;
   1643 }
   1644 extern "C" {
   1645     pub fn memchr(
   1646         _Buf: *const ::std::os::raw::c_void,
   1647         _Val: ::std::os::raw::c_int,
   1648         _MaxCount: ::std::os::raw::c_ulonglong,
   1649     ) -> *mut ::std::os::raw::c_void;
   1650 }
   1651 extern "C" {
   1652     pub fn memcmp(
   1653         _Buf1: *const ::std::os::raw::c_void,
   1654         _Buf2: *const ::std::os::raw::c_void,
   1655         _Size: ::std::os::raw::c_ulonglong,
   1656     ) -> ::std::os::raw::c_int;
   1657 }
   1658 extern "C" {
   1659     pub fn memcpy(
   1660         _Dst: *mut ::std::os::raw::c_void,
   1661         _Src: *const ::std::os::raw::c_void,
   1662         _Size: ::std::os::raw::c_ulonglong,
   1663     ) -> *mut ::std::os::raw::c_void;
   1664 }
   1665 extern "C" {
   1666     pub fn memmove(
   1667         _Dst: *mut ::std::os::raw::c_void,
   1668         _Src: *const ::std::os::raw::c_void,
   1669         _Size: ::std::os::raw::c_ulonglong,
   1670     ) -> *mut ::std::os::raw::c_void;
   1671 }
   1672 extern "C" {
   1673     pub fn memset(
   1674         _Dst: *mut ::std::os::raw::c_void,
   1675         _Val: ::std::os::raw::c_int,
   1676         _Size: ::std::os::raw::c_ulonglong,
   1677     ) -> *mut ::std::os::raw::c_void;
   1678 }
   1679 extern "C" {
   1680     pub fn strchr(
   1681         _Str: *const ::std::os::raw::c_char,
   1682         _Val: ::std::os::raw::c_int,
   1683     ) -> *mut ::std::os::raw::c_char;
   1684 }
   1685 extern "C" {
   1686     pub fn strrchr(
   1687         _Str: *const ::std::os::raw::c_char,
   1688         _Ch: ::std::os::raw::c_int,
   1689     ) -> *mut ::std::os::raw::c_char;
   1690 }
   1691 extern "C" {
   1692     pub fn strstr(
   1693         _Str: *const ::std::os::raw::c_char,
   1694         _SubStr: *const ::std::os::raw::c_char,
   1695     ) -> *mut ::std::os::raw::c_char;
   1696 }
   1697 extern "C" {
   1698     pub fn wcschr(
   1699         _Str: *const ::std::os::raw::c_ushort,
   1700         _Ch: ::std::os::raw::c_ushort,
   1701     ) -> *mut ::std::os::raw::c_ushort;
   1702 }
   1703 extern "C" {
   1704     pub fn wcsrchr(_Str: *const wchar_t, _Ch: wchar_t) -> *mut wchar_t;
   1705 }
   1706 extern "C" {
   1707     pub fn wcsstr(_Str: *const wchar_t, _SubStr: *const wchar_t) -> *mut wchar_t;
   1708 }
   1709 extern "C" {
   1710     pub fn _memicmp(
   1711         _Buf1: *const ::std::os::raw::c_void,
   1712         _Buf2: *const ::std::os::raw::c_void,
   1713         _Size: usize,
   1714     ) -> ::std::os::raw::c_int;
   1715 }
   1716 extern "C" {
   1717     pub fn _memicmp_l(
   1718         _Buf1: *const ::std::os::raw::c_void,
   1719         _Buf2: *const ::std::os::raw::c_void,
   1720         _Size: usize,
   1721         _Locale: _locale_t,
   1722     ) -> ::std::os::raw::c_int;
   1723 }
   1724 extern "C" {
   1725     pub fn memccpy(
   1726         _Dst: *mut ::std::os::raw::c_void,
   1727         _Src: *const ::std::os::raw::c_void,
   1728         _Val: ::std::os::raw::c_int,
   1729         _Size: ::std::os::raw::c_ulonglong,
   1730     ) -> *mut ::std::os::raw::c_void;
   1731 }
   1732 extern "C" {
   1733     pub fn memicmp(
   1734         _Buf1: *const ::std::os::raw::c_void,
   1735         _Buf2: *const ::std::os::raw::c_void,
   1736         _Size: usize,
   1737     ) -> ::std::os::raw::c_int;
   1738 }
   1739 extern "C" {
   1740     pub fn wcscat_s(
   1741         _Destination: *mut wchar_t,
   1742         _SizeInWords: rsize_t,
   1743         _Source: *const wchar_t,
   1744     ) -> errno_t;
   1745 }
   1746 extern "C" {
   1747     pub fn wcscpy_s(
   1748         _Destination: *mut wchar_t,
   1749         _SizeInWords: rsize_t,
   1750         _Source: *const wchar_t,
   1751     ) -> errno_t;
   1752 }
   1753 extern "C" {
   1754     pub fn wcsncat_s(
   1755         _Destination: *mut wchar_t,
   1756         _SizeInWords: rsize_t,
   1757         _Source: *const wchar_t,
   1758         _MaxCount: rsize_t,
   1759     ) -> errno_t;
   1760 }
   1761 extern "C" {
   1762     pub fn wcsncpy_s(
   1763         _Destination: *mut wchar_t,
   1764         _SizeInWords: rsize_t,
   1765         _Source: *const wchar_t,
   1766         _MaxCount: rsize_t,
   1767     ) -> errno_t;
   1768 }
   1769 extern "C" {
   1770     pub fn wcstok_s(
   1771         _String: *mut wchar_t,
   1772         _Delimiter: *const wchar_t,
   1773         _Context: *mut *mut wchar_t,
   1774     ) -> *mut wchar_t;
   1775 }
   1776 extern "C" {
   1777     pub fn _wcsdup(_String: *const wchar_t) -> *mut wchar_t;
   1778 }
   1779 extern "C" {
   1780     pub fn wcscat(_Destination: *mut wchar_t, _Source: *const wchar_t) -> *mut wchar_t;
   1781 }
   1782 extern "C" {
   1783     pub fn wcscmp(
   1784         _String1: *const ::std::os::raw::c_ushort,
   1785         _String2: *const ::std::os::raw::c_ushort,
   1786     ) -> ::std::os::raw::c_int;
   1787 }
   1788 extern "C" {
   1789     pub fn wcscpy(_Destination: *mut wchar_t, _Source: *const wchar_t) -> *mut wchar_t;
   1790 }
   1791 extern "C" {
   1792     pub fn wcscspn(_String: *const wchar_t, _Control: *const wchar_t) -> usize;
   1793 }
   1794 extern "C" {
   1795     pub fn wcslen(_String: *const ::std::os::raw::c_ushort) -> ::std::os::raw::c_ulonglong;
   1796 }
   1797 extern "C" {
   1798     pub fn wcsnlen(_Source: *const wchar_t, _MaxCount: usize) -> usize;
   1799 }
   1800 extern "C" {
   1801     pub fn wcsncat(
   1802         _Destination: *mut wchar_t,
   1803         _Source: *const wchar_t,
   1804         _Count: usize,
   1805     ) -> *mut wchar_t;
   1806 }
   1807 extern "C" {
   1808     pub fn wcsncmp(
   1809         _String1: *const ::std::os::raw::c_ushort,
   1810         _String2: *const ::std::os::raw::c_ushort,
   1811         _MaxCount: ::std::os::raw::c_ulonglong,
   1812     ) -> ::std::os::raw::c_int;
   1813 }
   1814 extern "C" {
   1815     pub fn wcsncpy(
   1816         _Destination: *mut wchar_t,
   1817         _Source: *const wchar_t,
   1818         _Count: usize,
   1819     ) -> *mut wchar_t;
   1820 }
   1821 extern "C" {
   1822     pub fn wcspbrk(_String: *const wchar_t, _Control: *const wchar_t) -> *mut wchar_t;
   1823 }
   1824 extern "C" {
   1825     pub fn wcsspn(_String: *const wchar_t, _Control: *const wchar_t) -> usize;
   1826 }
   1827 extern "C" {
   1828     pub fn wcstok(
   1829         _String: *mut wchar_t,
   1830         _Delimiter: *const wchar_t,
   1831         _Context: *mut *mut wchar_t,
   1832     ) -> *mut wchar_t;
   1833 }
   1834 extern "C" {
   1835     pub fn _wcserror(_ErrorNumber: ::std::os::raw::c_int) -> *mut wchar_t;
   1836 }
   1837 extern "C" {
   1838     pub fn _wcserror_s(
   1839         _Buffer: *mut wchar_t,
   1840         _SizeInWords: usize,
   1841         _ErrorNumber: ::std::os::raw::c_int,
   1842     ) -> errno_t;
   1843 }
   1844 extern "C" {
   1845     pub fn __wcserror(_String: *const wchar_t) -> *mut wchar_t;
   1846 }
   1847 extern "C" {
   1848     pub fn __wcserror_s(
   1849         _Buffer: *mut wchar_t,
   1850         _SizeInWords: usize,
   1851         _ErrorMessage: *const wchar_t,
   1852     ) -> errno_t;
   1853 }
   1854 extern "C" {
   1855     pub fn _wcsicmp(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
   1856 }
   1857 extern "C" {
   1858     pub fn _wcsicmp_l(
   1859         _String1: *const wchar_t,
   1860         _String2: *const wchar_t,
   1861         _Locale: _locale_t,
   1862     ) -> ::std::os::raw::c_int;
   1863 }
   1864 extern "C" {
   1865     pub fn _wcsnicmp(
   1866         _String1: *const wchar_t,
   1867         _String2: *const wchar_t,
   1868         _MaxCount: usize,
   1869     ) -> ::std::os::raw::c_int;
   1870 }
   1871 extern "C" {
   1872     pub fn _wcsnicmp_l(
   1873         _String1: *const wchar_t,
   1874         _String2: *const wchar_t,
   1875         _MaxCount: usize,
   1876         _Locale: _locale_t,
   1877     ) -> ::std::os::raw::c_int;
   1878 }
   1879 extern "C" {
   1880     pub fn _wcsnset_s(
   1881         _Destination: *mut wchar_t,
   1882         _SizeInWords: usize,
   1883         _Value: wchar_t,
   1884         _MaxCount: usize,
   1885     ) -> errno_t;
   1886 }
   1887 extern "C" {
   1888     pub fn _wcsnset(_String: *mut wchar_t, _Value: wchar_t, _MaxCount: usize) -> *mut wchar_t;
   1889 }
   1890 extern "C" {
   1891     pub fn _wcsrev(_String: *mut wchar_t) -> *mut wchar_t;
   1892 }
   1893 extern "C" {
   1894     pub fn _wcsset_s(_Destination: *mut wchar_t, _SizeInWords: usize, _Value: wchar_t) -> errno_t;
   1895 }
   1896 extern "C" {
   1897     pub fn _wcsset(_String: *mut wchar_t, _Value: wchar_t) -> *mut wchar_t;
   1898 }
   1899 extern "C" {
   1900     pub fn _wcslwr_s(_String: *mut wchar_t, _SizeInWords: usize) -> errno_t;
   1901 }
   1902 extern "C" {
   1903     pub fn _wcslwr(_String: *mut wchar_t) -> *mut wchar_t;
   1904 }
   1905 extern "C" {
   1906     pub fn _wcslwr_s_l(_String: *mut wchar_t, _SizeInWords: usize, _Locale: _locale_t) -> errno_t;
   1907 }
   1908 extern "C" {
   1909     pub fn _wcslwr_l(_String: *mut wchar_t, _Locale: _locale_t) -> *mut wchar_t;
   1910 }
   1911 extern "C" {
   1912     pub fn _wcsupr_s(_String: *mut wchar_t, _Size: usize) -> errno_t;
   1913 }
   1914 extern "C" {
   1915     pub fn _wcsupr(_String: *mut wchar_t) -> *mut wchar_t;
   1916 }
   1917 extern "C" {
   1918     pub fn _wcsupr_s_l(_String: *mut wchar_t, _Size: usize, _Locale: _locale_t) -> errno_t;
   1919 }
   1920 extern "C" {
   1921     pub fn _wcsupr_l(_String: *mut wchar_t, _Locale: _locale_t) -> *mut wchar_t;
   1922 }
   1923 extern "C" {
   1924     pub fn wcsxfrm(_Destination: *mut wchar_t, _Source: *const wchar_t, _MaxCount: usize) -> usize;
   1925 }
   1926 extern "C" {
   1927     pub fn _wcsxfrm_l(
   1928         _Destination: *mut wchar_t,
   1929         _Source: *const wchar_t,
   1930         _MaxCount: usize,
   1931         _Locale: _locale_t,
   1932     ) -> usize;
   1933 }
   1934 extern "C" {
   1935     pub fn wcscoll(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
   1936 }
   1937 extern "C" {
   1938     pub fn _wcscoll_l(
   1939         _String1: *const wchar_t,
   1940         _String2: *const wchar_t,
   1941         _Locale: _locale_t,
   1942     ) -> ::std::os::raw::c_int;
   1943 }
   1944 extern "C" {
   1945     pub fn _wcsicoll(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
   1946 }
   1947 extern "C" {
   1948     pub fn _wcsicoll_l(
   1949         _String1: *const wchar_t,
   1950         _String2: *const wchar_t,
   1951         _Locale: _locale_t,
   1952     ) -> ::std::os::raw::c_int;
   1953 }
   1954 extern "C" {
   1955     pub fn _wcsncoll(
   1956         _String1: *const wchar_t,
   1957         _String2: *const wchar_t,
   1958         _MaxCount: usize,
   1959     ) -> ::std::os::raw::c_int;
   1960 }
   1961 extern "C" {
   1962     pub fn _wcsncoll_l(
   1963         _String1: *const wchar_t,
   1964         _String2: *const wchar_t,
   1965         _MaxCount: usize,
   1966         _Locale: _locale_t,
   1967     ) -> ::std::os::raw::c_int;
   1968 }
   1969 extern "C" {
   1970     pub fn _wcsnicoll(
   1971         _String1: *const wchar_t,
   1972         _String2: *const wchar_t,
   1973         _MaxCount: usize,
   1974     ) -> ::std::os::raw::c_int;
   1975 }
   1976 extern "C" {
   1977     pub fn _wcsnicoll_l(
   1978         _String1: *const wchar_t,
   1979         _String2: *const wchar_t,
   1980         _MaxCount: usize,
   1981         _Locale: _locale_t,
   1982     ) -> ::std::os::raw::c_int;
   1983 }
   1984 extern "C" {
   1985     pub fn wcsdup(_String: *const wchar_t) -> *mut wchar_t;
   1986 }
   1987 extern "C" {
   1988     pub fn wcsicmp(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
   1989 }
   1990 extern "C" {
   1991     pub fn wcsnicmp(
   1992         _String1: *const wchar_t,
   1993         _String2: *const wchar_t,
   1994         _MaxCount: usize,
   1995     ) -> ::std::os::raw::c_int;
   1996 }
   1997 extern "C" {
   1998     pub fn wcsnset(_String: *mut wchar_t, _Value: wchar_t, _MaxCount: usize) -> *mut wchar_t;
   1999 }
   2000 extern "C" {
   2001     pub fn wcsrev(_String: *mut wchar_t) -> *mut wchar_t;
   2002 }
   2003 extern "C" {
   2004     pub fn wcsset(_String: *mut wchar_t, _Value: wchar_t) -> *mut wchar_t;
   2005 }
   2006 extern "C" {
   2007     pub fn wcslwr(_String: *mut wchar_t) -> *mut wchar_t;
   2008 }
   2009 extern "C" {
   2010     pub fn wcsupr(_String: *mut wchar_t) -> *mut wchar_t;
   2011 }
   2012 extern "C" {
   2013     pub fn wcsicoll(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
   2014 }
   2015 extern "C" {
   2016     pub fn strcpy_s(
   2017         _Destination: *mut ::std::os::raw::c_char,
   2018         _SizeInBytes: rsize_t,
   2019         _Source: *const ::std::os::raw::c_char,
   2020     ) -> errno_t;
   2021 }
   2022 extern "C" {
   2023     pub fn strcat_s(
   2024         _Destination: *mut ::std::os::raw::c_char,
   2025         _SizeInBytes: rsize_t,
   2026         _Source: *const ::std::os::raw::c_char,
   2027     ) -> errno_t;
   2028 }
   2029 extern "C" {
   2030     pub fn strerror_s(
   2031         _Buffer: *mut ::std::os::raw::c_char,
   2032         _SizeInBytes: usize,
   2033         _ErrorNumber: ::std::os::raw::c_int,
   2034     ) -> errno_t;
   2035 }
   2036 extern "C" {
   2037     pub fn strncat_s(
   2038         _Destination: *mut ::std::os::raw::c_char,
   2039         _SizeInBytes: rsize_t,
   2040         _Source: *const ::std::os::raw::c_char,
   2041         _MaxCount: rsize_t,
   2042     ) -> errno_t;
   2043 }
   2044 extern "C" {
   2045     pub fn strncpy_s(
   2046         _Destination: *mut ::std::os::raw::c_char,
   2047         _SizeInBytes: rsize_t,
   2048         _Source: *const ::std::os::raw::c_char,
   2049         _MaxCount: rsize_t,
   2050     ) -> errno_t;
   2051 }
   2052 extern "C" {
   2053     pub fn strtok_s(
   2054         _String: *mut ::std::os::raw::c_char,
   2055         _Delimiter: *const ::std::os::raw::c_char,
   2056         _Context: *mut *mut ::std::os::raw::c_char,
   2057     ) -> *mut ::std::os::raw::c_char;
   2058 }
   2059 extern "C" {
   2060     pub fn _memccpy(
   2061         _Dst: *mut ::std::os::raw::c_void,
   2062         _Src: *const ::std::os::raw::c_void,
   2063         _Val: ::std::os::raw::c_int,
   2064         _MaxCount: usize,
   2065     ) -> *mut ::std::os::raw::c_void;
   2066 }
   2067 extern "C" {
   2068     pub fn strcat(
   2069         _Destination: *mut ::std::os::raw::c_char,
   2070         _Source: *const ::std::os::raw::c_char,
   2071     ) -> *mut ::std::os::raw::c_char;
   2072 }
   2073 extern "C" {
   2074     pub fn strcmp(
   2075         _Str1: *const ::std::os::raw::c_char,
   2076         _Str2: *const ::std::os::raw::c_char,
   2077     ) -> ::std::os::raw::c_int;
   2078 }
   2079 extern "C" {
   2080     pub fn _strcmpi(
   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(
   2087         _String1: *const ::std::os::raw::c_char,
   2088         _String2: *const ::std::os::raw::c_char,
   2089     ) -> ::std::os::raw::c_int;
   2090 }
   2091 extern "C" {
   2092     pub fn _strcoll_l(
   2093         _String1: *const ::std::os::raw::c_char,
   2094         _String2: *const ::std::os::raw::c_char,
   2095         _Locale: _locale_t,
   2096     ) -> ::std::os::raw::c_int;
   2097 }
   2098 extern "C" {
   2099     pub fn strcpy(
   2100         _Destination: *mut ::std::os::raw::c_char,
   2101         _Source: *const ::std::os::raw::c_char,
   2102     ) -> *mut ::std::os::raw::c_char;
   2103 }
   2104 extern "C" {
   2105     pub fn strcspn(
   2106         _Str: *const ::std::os::raw::c_char,
   2107         _Control: *const ::std::os::raw::c_char,
   2108     ) -> ::std::os::raw::c_ulonglong;
   2109 }
   2110 extern "C" {
   2111     pub fn _strdup(_Source: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
   2112 }
   2113 extern "C" {
   2114     pub fn _strerror(_ErrorMessage: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
   2115 }
   2116 extern "C" {
   2117     pub fn _strerror_s(
   2118         _Buffer: *mut ::std::os::raw::c_char,
   2119         _SizeInBytes: usize,
   2120         _ErrorMessage: *const ::std::os::raw::c_char,
   2121     ) -> errno_t;
   2122 }
   2123 extern "C" {
   2124     pub fn strerror(_ErrorMessage: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
   2125 }
   2126 extern "C" {
   2127     pub fn _stricmp(
   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(
   2134         _String1: *const ::std::os::raw::c_char,
   2135         _String2: *const ::std::os::raw::c_char,
   2136     ) -> ::std::os::raw::c_int;
   2137 }
   2138 extern "C" {
   2139     pub fn _stricoll_l(
   2140         _String1: *const ::std::os::raw::c_char,
   2141         _String2: *const ::std::os::raw::c_char,
   2142         _Locale: _locale_t,
   2143     ) -> ::std::os::raw::c_int;
   2144 }
   2145 extern "C" {
   2146     pub fn _stricmp_l(
   2147         _String1: *const ::std::os::raw::c_char,
   2148         _String2: *const ::std::os::raw::c_char,
   2149         _Locale: _locale_t,
   2150     ) -> ::std::os::raw::c_int;
   2151 }
   2152 extern "C" {
   2153     pub fn strlen(_Str: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulonglong;
   2154 }
   2155 extern "C" {
   2156     pub fn _strlwr_s(_String: *mut ::std::os::raw::c_char, _Size: usize) -> errno_t;
   2157 }
   2158 extern "C" {
   2159     pub fn _strlwr(_String: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
   2160 }
   2161 extern "C" {
   2162     pub fn _strlwr_s_l(
   2163         _String: *mut ::std::os::raw::c_char,
   2164         _Size: usize,
   2165         _Locale: _locale_t,
   2166     ) -> errno_t;
   2167 }
   2168 extern "C" {
   2169     pub fn _strlwr_l(
   2170         _String: *mut ::std::os::raw::c_char,
   2171         _Locale: _locale_t,
   2172     ) -> *mut ::std::os::raw::c_char;
   2173 }
   2174 extern "C" {
   2175     pub fn strncat(
   2176         _Destination: *mut ::std::os::raw::c_char,
   2177         _Source: *const ::std::os::raw::c_char,
   2178         _Count: ::std::os::raw::c_ulonglong,
   2179     ) -> *mut ::std::os::raw::c_char;
   2180 }
   2181 extern "C" {
   2182     pub fn strncmp(
   2183         _Str1: *const ::std::os::raw::c_char,
   2184         _Str2: *const ::std::os::raw::c_char,
   2185         _MaxCount: ::std::os::raw::c_ulonglong,
   2186     ) -> ::std::os::raw::c_int;
   2187 }
   2188 extern "C" {
   2189     pub fn _strnicmp(
   2190         _String1: *const ::std::os::raw::c_char,
   2191         _String2: *const ::std::os::raw::c_char,
   2192         _MaxCount: usize,
   2193     ) -> ::std::os::raw::c_int;
   2194 }
   2195 extern "C" {
   2196     pub fn _strnicmp_l(
   2197         _String1: *const ::std::os::raw::c_char,
   2198         _String2: *const ::std::os::raw::c_char,
   2199         _MaxCount: usize,
   2200         _Locale: _locale_t,
   2201     ) -> ::std::os::raw::c_int;
   2202 }
   2203 extern "C" {
   2204     pub fn _strnicoll(
   2205         _String1: *const ::std::os::raw::c_char,
   2206         _String2: *const ::std::os::raw::c_char,
   2207         _MaxCount: usize,
   2208     ) -> ::std::os::raw::c_int;
   2209 }
   2210 extern "C" {
   2211     pub fn _strnicoll_l(
   2212         _String1: *const ::std::os::raw::c_char,
   2213         _String2: *const ::std::os::raw::c_char,
   2214         _MaxCount: usize,
   2215         _Locale: _locale_t,
   2216     ) -> ::std::os::raw::c_int;
   2217 }
   2218 extern "C" {
   2219     pub fn _strncoll(
   2220         _String1: *const ::std::os::raw::c_char,
   2221         _String2: *const ::std::os::raw::c_char,
   2222         _MaxCount: usize,
   2223     ) -> ::std::os::raw::c_int;
   2224 }
   2225 extern "C" {
   2226     pub fn _strncoll_l(
   2227         _String1: *const ::std::os::raw::c_char,
   2228         _String2: *const ::std::os::raw::c_char,
   2229         _MaxCount: usize,
   2230         _Locale: _locale_t,
   2231     ) -> ::std::os::raw::c_int;
   2232 }
   2233 extern "C" {
   2234     pub fn __strncnt(_String: *const ::std::os::raw::c_char, _Count: usize) -> usize;
   2235 }
   2236 extern "C" {
   2237     pub fn strncpy(
   2238         _Destination: *mut ::std::os::raw::c_char,
   2239         _Source: *const ::std::os::raw::c_char,
   2240         _Count: ::std::os::raw::c_ulonglong,
   2241     ) -> *mut ::std::os::raw::c_char;
   2242 }
   2243 extern "C" {
   2244     pub fn strnlen(_String: *const ::std::os::raw::c_char, _MaxCount: usize) -> usize;
   2245 }
   2246 extern "C" {
   2247     pub fn _strnset_s(
   2248         _String: *mut ::std::os::raw::c_char,
   2249         _SizeInBytes: usize,
   2250         _Value: ::std::os::raw::c_int,
   2251         _MaxCount: usize,
   2252     ) -> errno_t;
   2253 }
   2254 extern "C" {
   2255     pub fn _strnset(
   2256         _Destination: *mut ::std::os::raw::c_char,
   2257         _Value: ::std::os::raw::c_int,
   2258         _Count: usize,
   2259     ) -> *mut ::std::os::raw::c_char;
   2260 }
   2261 extern "C" {
   2262     pub fn strpbrk(
   2263         _Str: *const ::std::os::raw::c_char,
   2264         _Control: *const ::std::os::raw::c_char,
   2265     ) -> *mut ::std::os::raw::c_char;
   2266 }
   2267 extern "C" {
   2268     pub fn _strrev(_Str: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
   2269 }
   2270 extern "C" {
   2271     pub fn _strset_s(
   2272         _Destination: *mut ::std::os::raw::c_char,
   2273         _DestinationSize: usize,
   2274         _Value: ::std::os::raw::c_int,
   2275     ) -> errno_t;
   2276 }
   2277 extern "C" {
   2278     pub fn _strset(
   2279         _Destination: *mut ::std::os::raw::c_char,
   2280         _Value: ::std::os::raw::c_int,
   2281     ) -> *mut ::std::os::raw::c_char;
   2282 }
   2283 extern "C" {
   2284     pub fn strspn(
   2285         _Str: *const ::std::os::raw::c_char,
   2286         _Control: *const ::std::os::raw::c_char,
   2287     ) -> ::std::os::raw::c_ulonglong;
   2288 }
   2289 extern "C" {
   2290     pub fn strtok(
   2291         _String: *mut ::std::os::raw::c_char,
   2292         _Delimiter: *const ::std::os::raw::c_char,
   2293     ) -> *mut ::std::os::raw::c_char;
   2294 }
   2295 extern "C" {
   2296     pub fn _strupr_s(_String: *mut ::std::os::raw::c_char, _Size: usize) -> errno_t;
   2297 }
   2298 extern "C" {
   2299     pub fn _strupr(_String: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
   2300 }
   2301 extern "C" {
   2302     pub fn _strupr_s_l(
   2303         _String: *mut ::std::os::raw::c_char,
   2304         _Size: usize,
   2305         _Locale: _locale_t,
   2306     ) -> errno_t;
   2307 }
   2308 extern "C" {
   2309     pub fn _strupr_l(
   2310         _String: *mut ::std::os::raw::c_char,
   2311         _Locale: _locale_t,
   2312     ) -> *mut ::std::os::raw::c_char;
   2313 }
   2314 extern "C" {
   2315     pub fn strxfrm(
   2316         _Destination: *mut ::std::os::raw::c_char,
   2317         _Source: *const ::std::os::raw::c_char,
   2318         _MaxCount: ::std::os::raw::c_ulonglong,
   2319     ) -> ::std::os::raw::c_ulonglong;
   2320 }
   2321 extern "C" {
   2322     pub fn _strxfrm_l(
   2323         _Destination: *mut ::std::os::raw::c_char,
   2324         _Source: *const ::std::os::raw::c_char,
   2325         _MaxCount: usize,
   2326         _Locale: _locale_t,
   2327     ) -> usize;
   2328 }
   2329 extern "C" {
   2330     pub fn strdup(_String: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
   2331 }
   2332 extern "C" {
   2333     pub fn strcmpi(
   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 stricmp(
   2340         _String1: *const ::std::os::raw::c_char,
   2341         _String2: *const ::std::os::raw::c_char,
   2342     ) -> ::std::os::raw::c_int;
   2343 }
   2344 extern "C" {
   2345     pub fn strlwr(_String: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
   2346 }
   2347 extern "C" {
   2348     pub fn strnicmp(
   2349         _String1: *const ::std::os::raw::c_char,
   2350         _String2: *const ::std::os::raw::c_char,
   2351         _MaxCount: usize,
   2352     ) -> ::std::os::raw::c_int;
   2353 }
   2354 extern "C" {
   2355     pub fn strnset(
   2356         _String: *mut ::std::os::raw::c_char,
   2357         _Value: ::std::os::raw::c_int,
   2358         _MaxCount: usize,
   2359     ) -> *mut ::std::os::raw::c_char;
   2360 }
   2361 extern "C" {
   2362     pub fn strrev(_String: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
   2363 }
   2364 extern "C" {
   2365     pub fn strset(
   2366         _String: *mut ::std::os::raw::c_char,
   2367         _Value: ::std::os::raw::c_int,
   2368     ) -> *mut ::std::os::raw::c_char;
   2369 }
   2370 extern "C" {
   2371     pub fn strupr(_String: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
   2372 }
   2373 #[repr(C)]
   2374 #[derive(Debug, Copy, Clone)]
   2375 pub struct cursor {
   2376     pub start: *mut ::std::os::raw::c_uchar,
   2377     pub p: *mut ::std::os::raw::c_uchar,
   2378     pub end: *mut ::std::os::raw::c_uchar,
   2379 }
   2380 #[test]
   2381 fn bindgen_test_layout_cursor() {
   2382     const UNINIT: ::std::mem::MaybeUninit<cursor> = ::std::mem::MaybeUninit::uninit();
   2383     let ptr = UNINIT.as_ptr();
   2384     assert_eq!(
   2385         ::std::mem::size_of::<cursor>(),
   2386         24usize,
   2387         concat!("Size of: ", stringify!(cursor))
   2388     );
   2389     assert_eq!(
   2390         ::std::mem::align_of::<cursor>(),
   2391         8usize,
   2392         concat!("Alignment of ", stringify!(cursor))
   2393     );
   2394     assert_eq!(
   2395         unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize },
   2396         0usize,
   2397         concat!(
   2398             "Offset of field: ",
   2399             stringify!(cursor),
   2400             "::",
   2401             stringify!(start)
   2402         )
   2403     );
   2404     assert_eq!(
   2405         unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize },
   2406         8usize,
   2407         concat!("Offset of field: ", stringify!(cursor), "::", stringify!(p))
   2408     );
   2409     assert_eq!(
   2410         unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize },
   2411         16usize,
   2412         concat!(
   2413             "Offset of field: ",
   2414             stringify!(cursor),
   2415             "::",
   2416             stringify!(end)
   2417         )
   2418     );
   2419 }
   2420 #[repr(C)]
   2421 #[derive(Debug, Copy, Clone)]
   2422 pub struct ndb_str_block {
   2423     pub str_: *const ::std::os::raw::c_char,
   2424     pub len: u32,
   2425 }
   2426 #[test]
   2427 fn bindgen_test_layout_ndb_str_block() {
   2428     const UNINIT: ::std::mem::MaybeUninit<ndb_str_block> = ::std::mem::MaybeUninit::uninit();
   2429     let ptr = UNINIT.as_ptr();
   2430     assert_eq!(
   2431         ::std::mem::size_of::<ndb_str_block>(),
   2432         16usize,
   2433         concat!("Size of: ", stringify!(ndb_str_block))
   2434     );
   2435     assert_eq!(
   2436         ::std::mem::align_of::<ndb_str_block>(),
   2437         8usize,
   2438         concat!("Alignment of ", stringify!(ndb_str_block))
   2439     );
   2440     assert_eq!(
   2441         unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize },
   2442         0usize,
   2443         concat!(
   2444             "Offset of field: ",
   2445             stringify!(ndb_str_block),
   2446             "::",
   2447             stringify!(str_)
   2448         )
   2449     );
   2450     assert_eq!(
   2451         unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
   2452         8usize,
   2453         concat!(
   2454             "Offset of field: ",
   2455             stringify!(ndb_str_block),
   2456             "::",
   2457             stringify!(len)
   2458         )
   2459     );
   2460 }
   2461 pub type str_block_t = ndb_str_block;
   2462 #[repr(C)]
   2463 #[derive(Debug, Copy, Clone)]
   2464 pub struct ndb_json_parser {
   2465     _unused: [u8; 0],
   2466 }
   2467 #[repr(C)]
   2468 #[derive(Debug, Copy, Clone)]
   2469 pub struct ndb {
   2470     _unused: [u8; 0],
   2471 }
   2472 #[repr(C)]
   2473 #[derive(Debug, Copy, Clone)]
   2474 pub struct ndb_blocks {
   2475     _unused: [u8; 0],
   2476 }
   2477 #[repr(C)]
   2478 #[derive(Debug, Copy, Clone)]
   2479 pub struct ndb_note {
   2480     _unused: [u8; 0],
   2481 }
   2482 #[repr(C)]
   2483 #[derive(Debug, Copy, Clone)]
   2484 pub struct ndb_tag {
   2485     _unused: [u8; 0],
   2486 }
   2487 #[repr(C)]
   2488 #[derive(Debug, Copy, Clone)]
   2489 pub struct ndb_tags {
   2490     _unused: [u8; 0],
   2491 }
   2492 #[repr(C)]
   2493 #[derive(Debug, Copy, Clone)]
   2494 pub struct ndb_lmdb {
   2495     _unused: [u8; 0],
   2496 }
   2497 #[repr(C)]
   2498 #[derive(Copy, Clone)]
   2499 pub struct ndb_packed_str {
   2500     _unused: [u8; 0],
   2501 }
   2502 #[repr(C)]
   2503 #[derive(Debug, Copy, Clone)]
   2504 pub struct bolt11 {
   2505     _unused: [u8; 0],
   2506 }
   2507 pub const ndb_metadata_type_NDB_NOTE_META_RESERVED: ndb_metadata_type = 0;
   2508 pub const ndb_metadata_type_NDB_NOTE_META_COUNTS: ndb_metadata_type = 100;
   2509 pub const ndb_metadata_type_NDB_NOTE_META_REACTION: ndb_metadata_type = 200;
   2510 pub type ndb_metadata_type = ::std::os::raw::c_int;
   2511 pub const ndb_decrypt_result_NIP44_OK: ndb_decrypt_result = 0;
   2512 pub const ndb_decrypt_result_NIP44_ERR_UNSUPPORTED_ENCODING: ndb_decrypt_result = 1;
   2513 pub const ndb_decrypt_result_NIP44_ERR_INVALID_PAYLOAD: ndb_decrypt_result = 2;
   2514 pub const ndb_decrypt_result_NIP44_ERR_BASE64_DECODE: ndb_decrypt_result = 3;
   2515 pub const ndb_decrypt_result_NIP44_ERR_SECKEY_VERIFY_FAILED: ndb_decrypt_result = 4;
   2516 pub const ndb_decrypt_result_NIP44_ERR_PUBKEY_PARSE_FAILED: ndb_decrypt_result = 5;
   2517 pub const ndb_decrypt_result_NIP44_ERR_ECDH_FAILED: ndb_decrypt_result = 6;
   2518 pub const ndb_decrypt_result_NIP44_ERR_FILL_RANDOM_FAILED: ndb_decrypt_result = 7;
   2519 pub const ndb_decrypt_result_NIP44_ERR_INVALID_MAC: ndb_decrypt_result = 8;
   2520 pub const ndb_decrypt_result_NIP44_ERR_INVALID_PADDING: ndb_decrypt_result = 9;
   2521 pub const ndb_decrypt_result_NIP44_ERR_BUFFER_TOO_SMALL: ndb_decrypt_result = 10;
   2522 pub type ndb_decrypt_result = ::std::os::raw::c_int;
   2523 #[repr(C)]
   2524 #[derive(Debug, Copy, Clone)]
   2525 pub struct nip44_payload {
   2526     pub version: ::std::os::raw::c_uchar,
   2527     pub nonce: *mut ::std::os::raw::c_uchar,
   2528     pub ciphertext: *mut ::std::os::raw::c_uchar,
   2529     pub ciphertext_len: usize,
   2530     pub mac: *mut ::std::os::raw::c_uchar,
   2531 }
   2532 #[test]
   2533 fn bindgen_test_layout_nip44_payload() {
   2534     const UNINIT: ::std::mem::MaybeUninit<nip44_payload> = ::std::mem::MaybeUninit::uninit();
   2535     let ptr = UNINIT.as_ptr();
   2536     assert_eq!(
   2537         ::std::mem::size_of::<nip44_payload>(),
   2538         40usize,
   2539         concat!("Size of: ", stringify!(nip44_payload))
   2540     );
   2541     assert_eq!(
   2542         ::std::mem::align_of::<nip44_payload>(),
   2543         8usize,
   2544         concat!("Alignment of ", stringify!(nip44_payload))
   2545     );
   2546     assert_eq!(
   2547         unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
   2548         0usize,
   2549         concat!(
   2550             "Offset of field: ",
   2551             stringify!(nip44_payload),
   2552             "::",
   2553             stringify!(version)
   2554         )
   2555     );
   2556     assert_eq!(
   2557         unsafe { ::std::ptr::addr_of!((*ptr).nonce) as usize - ptr as usize },
   2558         8usize,
   2559         concat!(
   2560             "Offset of field: ",
   2561             stringify!(nip44_payload),
   2562             "::",
   2563             stringify!(nonce)
   2564         )
   2565     );
   2566     assert_eq!(
   2567         unsafe { ::std::ptr::addr_of!((*ptr).ciphertext) as usize - ptr as usize },
   2568         16usize,
   2569         concat!(
   2570             "Offset of field: ",
   2571             stringify!(nip44_payload),
   2572             "::",
   2573             stringify!(ciphertext)
   2574         )
   2575     );
   2576     assert_eq!(
   2577         unsafe { ::std::ptr::addr_of!((*ptr).ciphertext_len) as usize - ptr as usize },
   2578         24usize,
   2579         concat!(
   2580             "Offset of field: ",
   2581             stringify!(nip44_payload),
   2582             "::",
   2583             stringify!(ciphertext_len)
   2584         )
   2585     );
   2586     assert_eq!(
   2587         unsafe { ::std::ptr::addr_of!((*ptr).mac) as usize - ptr as usize },
   2588         32usize,
   2589         concat!(
   2590             "Offset of field: ",
   2591             stringify!(nip44_payload),
   2592             "::",
   2593             stringify!(mac)
   2594         )
   2595     );
   2596 }
   2597 extern "C" {
   2598     pub fn nip44_decrypt(
   2599         secp_context: *mut ::std::os::raw::c_void,
   2600         sender_pubkey: *const ::std::os::raw::c_uchar,
   2601         receiver_seckey: *const ::std::os::raw::c_uchar,
   2602         payload: *const ::std::os::raw::c_char,
   2603         payload_len: ::std::os::raw::c_int,
   2604         buf: *mut ::std::os::raw::c_uchar,
   2605         bufsize: usize,
   2606         decrypted: *mut *mut ::std::os::raw::c_uchar,
   2607         decrypted_len: *mut u16,
   2608     ) -> ndb_decrypt_result;
   2609 }
   2610 extern "C" {
   2611     pub fn nip44_encrypt(
   2612         secp: *mut ::std::os::raw::c_void,
   2613         sender_seckey: *const ::std::os::raw::c_uchar,
   2614         receiver_pubkey: *const ::std::os::raw::c_uchar,
   2615         plaintext: *const ::std::os::raw::c_uchar,
   2616         plaintext_size: u16,
   2617         buf: *mut ::std::os::raw::c_uchar,
   2618         bufsize: usize,
   2619         out: *mut *mut ::std::os::raw::c_char,
   2620         out_len: *mut isize,
   2621     ) -> ndb_decrypt_result;
   2622 }
   2623 extern "C" {
   2624     pub fn nip44_decrypt_raw(
   2625         secp: *mut ::std::os::raw::c_void,
   2626         sender_pubkey: *const ::std::os::raw::c_uchar,
   2627         receiver_seckey: *const ::std::os::raw::c_uchar,
   2628         decoded: *mut nip44_payload,
   2629         decrypted: *mut *mut ::std::os::raw::c_uchar,
   2630         decrypted_len: *mut u16,
   2631     ) -> ndb_decrypt_result;
   2632 }
   2633 extern "C" {
   2634     pub fn nip44_decode_payload(
   2635         decoded: *mut nip44_payload,
   2636         buf: *mut ::std::os::raw::c_uchar,
   2637         bufsize: usize,
   2638         payload: *const ::std::os::raw::c_char,
   2639         payload_len: usize,
   2640     ) -> ndb_decrypt_result;
   2641 }
   2642 extern "C" {
   2643     pub fn nip44_err_msg(res: ndb_decrypt_result) -> *const ::std::os::raw::c_char;
   2644 }
   2645 #[repr(C)]
   2646 #[derive(Debug, Copy, Clone)]
   2647 pub struct ndb_tag_ptr {
   2648     pub ptr: *mut ndb_tag,
   2649 }
   2650 #[test]
   2651 fn bindgen_test_layout_ndb_tag_ptr() {
   2652     const UNINIT: ::std::mem::MaybeUninit<ndb_tag_ptr> = ::std::mem::MaybeUninit::uninit();
   2653     let ptr = UNINIT.as_ptr();
   2654     assert_eq!(
   2655         ::std::mem::size_of::<ndb_tag_ptr>(),
   2656         8usize,
   2657         concat!("Size of: ", stringify!(ndb_tag_ptr))
   2658     );
   2659     assert_eq!(
   2660         ::std::mem::align_of::<ndb_tag_ptr>(),
   2661         8usize,
   2662         concat!("Alignment of ", stringify!(ndb_tag_ptr))
   2663     );
   2664     assert_eq!(
   2665         unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
   2666         0usize,
   2667         concat!(
   2668             "Offset of field: ",
   2669             stringify!(ndb_tag_ptr),
   2670             "::",
   2671             stringify!(ptr)
   2672         )
   2673     );
   2674 }
   2675 #[repr(C)]
   2676 #[derive(Debug, Copy, Clone)]
   2677 pub struct ndb_tags_ptr {
   2678     pub ptr: *mut ndb_tags,
   2679 }
   2680 #[test]
   2681 fn bindgen_test_layout_ndb_tags_ptr() {
   2682     const UNINIT: ::std::mem::MaybeUninit<ndb_tags_ptr> = ::std::mem::MaybeUninit::uninit();
   2683     let ptr = UNINIT.as_ptr();
   2684     assert_eq!(
   2685         ::std::mem::size_of::<ndb_tags_ptr>(),
   2686         8usize,
   2687         concat!("Size of: ", stringify!(ndb_tags_ptr))
   2688     );
   2689     assert_eq!(
   2690         ::std::mem::align_of::<ndb_tags_ptr>(),
   2691         8usize,
   2692         concat!("Alignment of ", stringify!(ndb_tags_ptr))
   2693     );
   2694     assert_eq!(
   2695         unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
   2696         0usize,
   2697         concat!(
   2698             "Offset of field: ",
   2699             stringify!(ndb_tags_ptr),
   2700             "::",
   2701             stringify!(ptr)
   2702         )
   2703     );
   2704 }
   2705 #[repr(C)]
   2706 #[derive(Debug, Copy, Clone)]
   2707 pub struct ndb_block_ptr {
   2708     pub ptr: *mut ndb_block,
   2709 }
   2710 #[test]
   2711 fn bindgen_test_layout_ndb_block_ptr() {
   2712     const UNINIT: ::std::mem::MaybeUninit<ndb_block_ptr> = ::std::mem::MaybeUninit::uninit();
   2713     let ptr = UNINIT.as_ptr();
   2714     assert_eq!(
   2715         ::std::mem::size_of::<ndb_block_ptr>(),
   2716         8usize,
   2717         concat!("Size of: ", stringify!(ndb_block_ptr))
   2718     );
   2719     assert_eq!(
   2720         ::std::mem::align_of::<ndb_block_ptr>(),
   2721         8usize,
   2722         concat!("Alignment of ", stringify!(ndb_block_ptr))
   2723     );
   2724     assert_eq!(
   2725         unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
   2726         0usize,
   2727         concat!(
   2728             "Offset of field: ",
   2729             stringify!(ndb_block_ptr),
   2730             "::",
   2731             stringify!(ptr)
   2732         )
   2733     );
   2734 }
   2735 #[repr(C)]
   2736 #[derive(Debug, Copy, Clone)]
   2737 pub struct ndb_blocks_ptr {
   2738     pub ptr: *mut ndb_blocks,
   2739 }
   2740 #[test]
   2741 fn bindgen_test_layout_ndb_blocks_ptr() {
   2742     const UNINIT: ::std::mem::MaybeUninit<ndb_blocks_ptr> = ::std::mem::MaybeUninit::uninit();
   2743     let ptr = UNINIT.as_ptr();
   2744     assert_eq!(
   2745         ::std::mem::size_of::<ndb_blocks_ptr>(),
   2746         8usize,
   2747         concat!("Size of: ", stringify!(ndb_blocks_ptr))
   2748     );
   2749     assert_eq!(
   2750         ::std::mem::align_of::<ndb_blocks_ptr>(),
   2751         8usize,
   2752         concat!("Alignment of ", stringify!(ndb_blocks_ptr))
   2753     );
   2754     assert_eq!(
   2755         unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
   2756         0usize,
   2757         concat!(
   2758             "Offset of field: ",
   2759             stringify!(ndb_blocks_ptr),
   2760             "::",
   2761             stringify!(ptr)
   2762         )
   2763     );
   2764 }
   2765 #[repr(C)]
   2766 #[derive(Debug, Copy, Clone)]
   2767 pub struct ndb_note_ptr {
   2768     pub ptr: *mut ndb_note,
   2769 }
   2770 #[test]
   2771 fn bindgen_test_layout_ndb_note_ptr() {
   2772     const UNINIT: ::std::mem::MaybeUninit<ndb_note_ptr> = ::std::mem::MaybeUninit::uninit();
   2773     let ptr = UNINIT.as_ptr();
   2774     assert_eq!(
   2775         ::std::mem::size_of::<ndb_note_ptr>(),
   2776         8usize,
   2777         concat!("Size of: ", stringify!(ndb_note_ptr))
   2778     );
   2779     assert_eq!(
   2780         ::std::mem::align_of::<ndb_note_ptr>(),
   2781         8usize,
   2782         concat!("Alignment of ", stringify!(ndb_note_ptr))
   2783     );
   2784     assert_eq!(
   2785         unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
   2786         0usize,
   2787         concat!(
   2788             "Offset of field: ",
   2789             stringify!(ndb_note_ptr),
   2790             "::",
   2791             stringify!(ptr)
   2792         )
   2793     );
   2794 }
   2795 #[repr(C)]
   2796 #[derive(Debug, Copy, Clone)]
   2797 pub struct ndb_t {
   2798     pub ndb: *mut ndb,
   2799 }
   2800 #[test]
   2801 fn bindgen_test_layout_ndb_t() {
   2802     const UNINIT: ::std::mem::MaybeUninit<ndb_t> = ::std::mem::MaybeUninit::uninit();
   2803     let ptr = UNINIT.as_ptr();
   2804     assert_eq!(
   2805         ::std::mem::size_of::<ndb_t>(),
   2806         8usize,
   2807         concat!("Size of: ", stringify!(ndb_t))
   2808     );
   2809     assert_eq!(
   2810         ::std::mem::align_of::<ndb_t>(),
   2811         8usize,
   2812         concat!("Alignment of ", stringify!(ndb_t))
   2813     );
   2814     assert_eq!(
   2815         unsafe { ::std::ptr::addr_of!((*ptr).ndb) as usize - ptr as usize },
   2816         0usize,
   2817         concat!(
   2818             "Offset of field: ",
   2819             stringify!(ndb_t),
   2820             "::",
   2821             stringify!(ndb)
   2822         )
   2823     );
   2824 }
   2825 #[repr(C)]
   2826 #[derive(Copy, Clone)]
   2827 pub union ndb_reaction_str {
   2828     pub binmoji: u64,
   2829     pub packed: ndb_reaction_str__bindgen_ty_1,
   2830 }
   2831 #[repr(C)]
   2832 #[derive(Debug, Copy, Clone)]
   2833 pub struct ndb_reaction_str__bindgen_ty_1 {
   2834     pub flag: u8,
   2835     pub str_: [::std::os::raw::c_char; 7usize],
   2836 }
   2837 #[test]
   2838 fn bindgen_test_layout_ndb_reaction_str__bindgen_ty_1() {
   2839     const UNINIT: ::std::mem::MaybeUninit<ndb_reaction_str__bindgen_ty_1> =
   2840         ::std::mem::MaybeUninit::uninit();
   2841     let ptr = UNINIT.as_ptr();
   2842     assert_eq!(
   2843         ::std::mem::size_of::<ndb_reaction_str__bindgen_ty_1>(),
   2844         8usize,
   2845         concat!("Size of: ", stringify!(ndb_reaction_str__bindgen_ty_1))
   2846     );
   2847     assert_eq!(
   2848         ::std::mem::align_of::<ndb_reaction_str__bindgen_ty_1>(),
   2849         1usize,
   2850         concat!("Alignment of ", stringify!(ndb_reaction_str__bindgen_ty_1))
   2851     );
   2852     assert_eq!(
   2853         unsafe { ::std::ptr::addr_of!((*ptr).flag) as usize - ptr as usize },
   2854         0usize,
   2855         concat!(
   2856             "Offset of field: ",
   2857             stringify!(ndb_reaction_str__bindgen_ty_1),
   2858             "::",
   2859             stringify!(flag)
   2860         )
   2861     );
   2862     assert_eq!(
   2863         unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize },
   2864         1usize,
   2865         concat!(
   2866             "Offset of field: ",
   2867             stringify!(ndb_reaction_str__bindgen_ty_1),
   2868             "::",
   2869             stringify!(str_)
   2870         )
   2871     );
   2872 }
   2873 #[test]
   2874 fn bindgen_test_layout_ndb_reaction_str() {
   2875     const UNINIT: ::std::mem::MaybeUninit<ndb_reaction_str> = ::std::mem::MaybeUninit::uninit();
   2876     let ptr = UNINIT.as_ptr();
   2877     assert_eq!(
   2878         ::std::mem::size_of::<ndb_reaction_str>(),
   2879         8usize,
   2880         concat!("Size of: ", stringify!(ndb_reaction_str))
   2881     );
   2882     assert_eq!(
   2883         ::std::mem::align_of::<ndb_reaction_str>(),
   2884         8usize,
   2885         concat!("Alignment of ", stringify!(ndb_reaction_str))
   2886     );
   2887     assert_eq!(
   2888         unsafe { ::std::ptr::addr_of!((*ptr).binmoji) as usize - ptr as usize },
   2889         0usize,
   2890         concat!(
   2891             "Offset of field: ",
   2892             stringify!(ndb_reaction_str),
   2893             "::",
   2894             stringify!(binmoji)
   2895         )
   2896     );
   2897     assert_eq!(
   2898         unsafe { ::std::ptr::addr_of!((*ptr).packed) as usize - ptr as usize },
   2899         0usize,
   2900         concat!(
   2901             "Offset of field: ",
   2902             stringify!(ndb_reaction_str),
   2903             "::",
   2904             stringify!(packed)
   2905         )
   2906     );
   2907 }
   2908 #[repr(C)]
   2909 #[derive(Debug, Copy, Clone)]
   2910 pub struct ndb_note_meta_builder {
   2911     pub cursor: cursor,
   2912 }
   2913 #[test]
   2914 fn bindgen_test_layout_ndb_note_meta_builder() {
   2915     const UNINIT: ::std::mem::MaybeUninit<ndb_note_meta_builder> =
   2916         ::std::mem::MaybeUninit::uninit();
   2917     let ptr = UNINIT.as_ptr();
   2918     assert_eq!(
   2919         ::std::mem::size_of::<ndb_note_meta_builder>(),
   2920         24usize,
   2921         concat!("Size of: ", stringify!(ndb_note_meta_builder))
   2922     );
   2923     assert_eq!(
   2924         ::std::mem::align_of::<ndb_note_meta_builder>(),
   2925         8usize,
   2926         concat!("Alignment of ", stringify!(ndb_note_meta_builder))
   2927     );
   2928     assert_eq!(
   2929         unsafe { ::std::ptr::addr_of!((*ptr).cursor) as usize - ptr as usize },
   2930         0usize,
   2931         concat!(
   2932             "Offset of field: ",
   2933             stringify!(ndb_note_meta_builder),
   2934             "::",
   2935             stringify!(cursor)
   2936         )
   2937     );
   2938 }
   2939 #[repr(C)]
   2940 #[derive(Copy, Clone)]
   2941 pub struct ndb_str {
   2942     pub flag: ::std::os::raw::c_uchar,
   2943     pub __bindgen_anon_1: ndb_str__bindgen_ty_1,
   2944 }
   2945 #[repr(C)]
   2946 #[derive(Copy, Clone)]
   2947 pub union ndb_str__bindgen_ty_1 {
   2948     pub str_: *const ::std::os::raw::c_char,
   2949     pub id: *mut ::std::os::raw::c_uchar,
   2950 }
   2951 #[test]
   2952 fn bindgen_test_layout_ndb_str__bindgen_ty_1() {
   2953     const UNINIT: ::std::mem::MaybeUninit<ndb_str__bindgen_ty_1> =
   2954         ::std::mem::MaybeUninit::uninit();
   2955     let ptr = UNINIT.as_ptr();
   2956     assert_eq!(
   2957         ::std::mem::size_of::<ndb_str__bindgen_ty_1>(),
   2958         8usize,
   2959         concat!("Size of: ", stringify!(ndb_str__bindgen_ty_1))
   2960     );
   2961     assert_eq!(
   2962         ::std::mem::align_of::<ndb_str__bindgen_ty_1>(),
   2963         8usize,
   2964         concat!("Alignment of ", stringify!(ndb_str__bindgen_ty_1))
   2965     );
   2966     assert_eq!(
   2967         unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize },
   2968         0usize,
   2969         concat!(
   2970             "Offset of field: ",
   2971             stringify!(ndb_str__bindgen_ty_1),
   2972             "::",
   2973             stringify!(str_)
   2974         )
   2975     );
   2976     assert_eq!(
   2977         unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize },
   2978         0usize,
   2979         concat!(
   2980             "Offset of field: ",
   2981             stringify!(ndb_str__bindgen_ty_1),
   2982             "::",
   2983             stringify!(id)
   2984         )
   2985     );
   2986 }
   2987 #[test]
   2988 fn bindgen_test_layout_ndb_str() {
   2989     const UNINIT: ::std::mem::MaybeUninit<ndb_str> = ::std::mem::MaybeUninit::uninit();
   2990     let ptr = UNINIT.as_ptr();
   2991     assert_eq!(
   2992         ::std::mem::size_of::<ndb_str>(),
   2993         16usize,
   2994         concat!("Size of: ", stringify!(ndb_str))
   2995     );
   2996     assert_eq!(
   2997         ::std::mem::align_of::<ndb_str>(),
   2998         8usize,
   2999         concat!("Alignment of ", stringify!(ndb_str))
   3000     );
   3001     assert_eq!(
   3002         unsafe { ::std::ptr::addr_of!((*ptr).flag) as usize - ptr as usize },
   3003         0usize,
   3004         concat!(
   3005             "Offset of field: ",
   3006             stringify!(ndb_str),
   3007             "::",
   3008             stringify!(flag)
   3009         )
   3010     );
   3011 }
   3012 #[repr(C)]
   3013 #[derive(Debug, Copy, Clone)]
   3014 pub struct ndb_ingest_meta {
   3015     pub client: ::std::os::raw::c_uint,
   3016     pub relay: *const ::std::os::raw::c_char,
   3017 }
   3018 #[test]
   3019 fn bindgen_test_layout_ndb_ingest_meta() {
   3020     const UNINIT: ::std::mem::MaybeUninit<ndb_ingest_meta> = ::std::mem::MaybeUninit::uninit();
   3021     let ptr = UNINIT.as_ptr();
   3022     assert_eq!(
   3023         ::std::mem::size_of::<ndb_ingest_meta>(),
   3024         16usize,
   3025         concat!("Size of: ", stringify!(ndb_ingest_meta))
   3026     );
   3027     assert_eq!(
   3028         ::std::mem::align_of::<ndb_ingest_meta>(),
   3029         8usize,
   3030         concat!("Alignment of ", stringify!(ndb_ingest_meta))
   3031     );
   3032     assert_eq!(
   3033         unsafe { ::std::ptr::addr_of!((*ptr).client) as usize - ptr as usize },
   3034         0usize,
   3035         concat!(
   3036             "Offset of field: ",
   3037             stringify!(ndb_ingest_meta),
   3038             "::",
   3039             stringify!(client)
   3040         )
   3041     );
   3042     assert_eq!(
   3043         unsafe { ::std::ptr::addr_of!((*ptr).relay) as usize - ptr as usize },
   3044         8usize,
   3045         concat!(
   3046             "Offset of field: ",
   3047             stringify!(ndb_ingest_meta),
   3048             "::",
   3049             stringify!(relay)
   3050         )
   3051     );
   3052 }
   3053 #[repr(C)]
   3054 #[derive(Debug, Copy, Clone)]
   3055 pub struct ndb_keypair {
   3056     pub pubkey: [::std::os::raw::c_uchar; 32usize],
   3057     pub secret: [::std::os::raw::c_uchar; 32usize],
   3058     pub pair: [::std::os::raw::c_uchar; 96usize],
   3059 }
   3060 #[test]
   3061 fn bindgen_test_layout_ndb_keypair() {
   3062     const UNINIT: ::std::mem::MaybeUninit<ndb_keypair> = ::std::mem::MaybeUninit::uninit();
   3063     let ptr = UNINIT.as_ptr();
   3064     assert_eq!(
   3065         ::std::mem::size_of::<ndb_keypair>(),
   3066         160usize,
   3067         concat!("Size of: ", stringify!(ndb_keypair))
   3068     );
   3069     assert_eq!(
   3070         ::std::mem::align_of::<ndb_keypair>(),
   3071         1usize,
   3072         concat!("Alignment of ", stringify!(ndb_keypair))
   3073     );
   3074     assert_eq!(
   3075         unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
   3076         0usize,
   3077         concat!(
   3078             "Offset of field: ",
   3079             stringify!(ndb_keypair),
   3080             "::",
   3081             stringify!(pubkey)
   3082         )
   3083     );
   3084     assert_eq!(
   3085         unsafe { ::std::ptr::addr_of!((*ptr).secret) as usize - ptr as usize },
   3086         32usize,
   3087         concat!(
   3088             "Offset of field: ",
   3089             stringify!(ndb_keypair),
   3090             "::",
   3091             stringify!(secret)
   3092         )
   3093     );
   3094     assert_eq!(
   3095         unsafe { ::std::ptr::addr_of!((*ptr).pair) as usize - ptr as usize },
   3096         64usize,
   3097         concat!(
   3098             "Offset of field: ",
   3099             stringify!(ndb_keypair),
   3100             "::",
   3101             stringify!(pair)
   3102         )
   3103     );
   3104 }
   3105 pub type ndb_idres = ::std::os::raw::c_int;
   3106 pub type ndb_id_fn = ::std::option::Option<
   3107     unsafe extern "C" fn(
   3108         arg1: *mut ::std::os::raw::c_void,
   3109         arg2: *const ::std::os::raw::c_char,
   3110     ) -> ndb_idres,
   3111 >;
   3112 pub type ndb_sub_fn =
   3113     ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, subid: u64)>;
   3114 #[repr(C)]
   3115 #[derive(Debug, Copy, Clone)]
   3116 pub struct ndb_id_cb {
   3117     pub fn_: ndb_id_fn,
   3118     pub data: *mut ::std::os::raw::c_void,
   3119 }
   3120 #[test]
   3121 fn bindgen_test_layout_ndb_id_cb() {
   3122     const UNINIT: ::std::mem::MaybeUninit<ndb_id_cb> = ::std::mem::MaybeUninit::uninit();
   3123     let ptr = UNINIT.as_ptr();
   3124     assert_eq!(
   3125         ::std::mem::size_of::<ndb_id_cb>(),
   3126         16usize,
   3127         concat!("Size of: ", stringify!(ndb_id_cb))
   3128     );
   3129     assert_eq!(
   3130         ::std::mem::align_of::<ndb_id_cb>(),
   3131         8usize,
   3132         concat!("Alignment of ", stringify!(ndb_id_cb))
   3133     );
   3134     assert_eq!(
   3135         unsafe { ::std::ptr::addr_of!((*ptr).fn_) as usize - ptr as usize },
   3136         0usize,
   3137         concat!(
   3138             "Offset of field: ",
   3139             stringify!(ndb_id_cb),
   3140             "::",
   3141             stringify!(fn_)
   3142         )
   3143     );
   3144     assert_eq!(
   3145         unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
   3146         8usize,
   3147         concat!(
   3148             "Offset of field: ",
   3149             stringify!(ndb_id_cb),
   3150             "::",
   3151             stringify!(data)
   3152         )
   3153     );
   3154 }
   3155 #[repr(C)]
   3156 #[derive(Debug, Copy, Clone)]
   3157 pub struct ndb_txn {
   3158     pub lmdb: *mut ndb_lmdb,
   3159     pub mdb_txn: *mut ::std::os::raw::c_void,
   3160 }
   3161 #[test]
   3162 fn bindgen_test_layout_ndb_txn() {
   3163     const UNINIT: ::std::mem::MaybeUninit<ndb_txn> = ::std::mem::MaybeUninit::uninit();
   3164     let ptr = UNINIT.as_ptr();
   3165     assert_eq!(
   3166         ::std::mem::size_of::<ndb_txn>(),
   3167         16usize,
   3168         concat!("Size of: ", stringify!(ndb_txn))
   3169     );
   3170     assert_eq!(
   3171         ::std::mem::align_of::<ndb_txn>(),
   3172         8usize,
   3173         concat!("Alignment of ", stringify!(ndb_txn))
   3174     );
   3175     assert_eq!(
   3176         unsafe { ::std::ptr::addr_of!((*ptr).lmdb) as usize - ptr as usize },
   3177         0usize,
   3178         concat!(
   3179             "Offset of field: ",
   3180             stringify!(ndb_txn),
   3181             "::",
   3182             stringify!(lmdb)
   3183         )
   3184     );
   3185     assert_eq!(
   3186         unsafe { ::std::ptr::addr_of!((*ptr).mdb_txn) as usize - ptr as usize },
   3187         8usize,
   3188         concat!(
   3189             "Offset of field: ",
   3190             stringify!(ndb_txn),
   3191             "::",
   3192             stringify!(mdb_txn)
   3193         )
   3194     );
   3195 }
   3196 #[repr(C)]
   3197 #[derive(Debug, Copy, Clone)]
   3198 pub struct ndb_event {
   3199     pub note: *mut ndb_note,
   3200 }
   3201 #[test]
   3202 fn bindgen_test_layout_ndb_event() {
   3203     const UNINIT: ::std::mem::MaybeUninit<ndb_event> = ::std::mem::MaybeUninit::uninit();
   3204     let ptr = UNINIT.as_ptr();
   3205     assert_eq!(
   3206         ::std::mem::size_of::<ndb_event>(),
   3207         8usize,
   3208         concat!("Size of: ", stringify!(ndb_event))
   3209     );
   3210     assert_eq!(
   3211         ::std::mem::align_of::<ndb_event>(),
   3212         8usize,
   3213         concat!("Alignment of ", stringify!(ndb_event))
   3214     );
   3215     assert_eq!(
   3216         unsafe { ::std::ptr::addr_of!((*ptr).note) as usize - ptr as usize },
   3217         0usize,
   3218         concat!(
   3219             "Offset of field: ",
   3220             stringify!(ndb_event),
   3221             "::",
   3222             stringify!(note)
   3223         )
   3224     );
   3225 }
   3226 #[repr(C)]
   3227 #[derive(Debug, Copy, Clone)]
   3228 pub struct ndb_command_result {
   3229     pub ok: ::std::os::raw::c_int,
   3230     pub msg: *const ::std::os::raw::c_char,
   3231     pub msglen: ::std::os::raw::c_int,
   3232 }
   3233 #[test]
   3234 fn bindgen_test_layout_ndb_command_result() {
   3235     const UNINIT: ::std::mem::MaybeUninit<ndb_command_result> = ::std::mem::MaybeUninit::uninit();
   3236     let ptr = UNINIT.as_ptr();
   3237     assert_eq!(
   3238         ::std::mem::size_of::<ndb_command_result>(),
   3239         24usize,
   3240         concat!("Size of: ", stringify!(ndb_command_result))
   3241     );
   3242     assert_eq!(
   3243         ::std::mem::align_of::<ndb_command_result>(),
   3244         8usize,
   3245         concat!("Alignment of ", stringify!(ndb_command_result))
   3246     );
   3247     assert_eq!(
   3248         unsafe { ::std::ptr::addr_of!((*ptr).ok) as usize - ptr as usize },
   3249         0usize,
   3250         concat!(
   3251             "Offset of field: ",
   3252             stringify!(ndb_command_result),
   3253             "::",
   3254             stringify!(ok)
   3255         )
   3256     );
   3257     assert_eq!(
   3258         unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize },
   3259         8usize,
   3260         concat!(
   3261             "Offset of field: ",
   3262             stringify!(ndb_command_result),
   3263             "::",
   3264             stringify!(msg)
   3265         )
   3266     );
   3267     assert_eq!(
   3268         unsafe { ::std::ptr::addr_of!((*ptr).msglen) as usize - ptr as usize },
   3269         16usize,
   3270         concat!(
   3271             "Offset of field: ",
   3272             stringify!(ndb_command_result),
   3273             "::",
   3274             stringify!(msglen)
   3275         )
   3276     );
   3277 }
   3278 pub const fce_type_NDB_FCE_EVENT: fce_type = 1;
   3279 pub type fce_type = ::std::os::raw::c_int;
   3280 pub const tce_type_NDB_TCE_EVENT: tce_type = 1;
   3281 pub const tce_type_NDB_TCE_OK: tce_type = 2;
   3282 pub const tce_type_NDB_TCE_NOTICE: tce_type = 3;
   3283 pub const tce_type_NDB_TCE_EOSE: tce_type = 4;
   3284 pub const tce_type_NDB_TCE_AUTH: tce_type = 5;
   3285 pub type tce_type = ::std::os::raw::c_int;
   3286 pub const ndb_ingest_filter_action_NDB_INGEST_REJECT: ndb_ingest_filter_action = 0;
   3287 pub const ndb_ingest_filter_action_NDB_INGEST_ACCEPT: ndb_ingest_filter_action = 1;
   3288 pub const ndb_ingest_filter_action_NDB_INGEST_SKIP_VALIDATION: ndb_ingest_filter_action = 2;
   3289 pub type ndb_ingest_filter_action = ::std::os::raw::c_int;
   3290 #[repr(C)]
   3291 #[derive(Debug, Copy, Clone)]
   3292 pub struct ndb_search_key {
   3293     pub search: [::std::os::raw::c_char; 24usize],
   3294     pub id: [::std::os::raw::c_uchar; 32usize],
   3295     pub timestamp: u64,
   3296 }
   3297 #[test]
   3298 fn bindgen_test_layout_ndb_search_key() {
   3299     const UNINIT: ::std::mem::MaybeUninit<ndb_search_key> = ::std::mem::MaybeUninit::uninit();
   3300     let ptr = UNINIT.as_ptr();
   3301     assert_eq!(
   3302         ::std::mem::size_of::<ndb_search_key>(),
   3303         64usize,
   3304         concat!("Size of: ", stringify!(ndb_search_key))
   3305     );
   3306     assert_eq!(
   3307         ::std::mem::align_of::<ndb_search_key>(),
   3308         8usize,
   3309         concat!("Alignment of ", stringify!(ndb_search_key))
   3310     );
   3311     assert_eq!(
   3312         unsafe { ::std::ptr::addr_of!((*ptr).search) as usize - ptr as usize },
   3313         0usize,
   3314         concat!(
   3315             "Offset of field: ",
   3316             stringify!(ndb_search_key),
   3317             "::",
   3318             stringify!(search)
   3319         )
   3320     );
   3321     assert_eq!(
   3322         unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize },
   3323         24usize,
   3324         concat!(
   3325             "Offset of field: ",
   3326             stringify!(ndb_search_key),
   3327             "::",
   3328             stringify!(id)
   3329         )
   3330     );
   3331     assert_eq!(
   3332         unsafe { ::std::ptr::addr_of!((*ptr).timestamp) as usize - ptr as usize },
   3333         56usize,
   3334         concat!(
   3335             "Offset of field: ",
   3336             stringify!(ndb_search_key),
   3337             "::",
   3338             stringify!(timestamp)
   3339         )
   3340     );
   3341 }
   3342 #[repr(C)]
   3343 #[derive(Debug, Copy, Clone)]
   3344 pub struct ndb_search {
   3345     pub key: *mut ndb_search_key,
   3346     pub profile_key: u64,
   3347     pub cursor: *mut ::std::os::raw::c_void,
   3348 }
   3349 #[test]
   3350 fn bindgen_test_layout_ndb_search() {
   3351     const UNINIT: ::std::mem::MaybeUninit<ndb_search> = ::std::mem::MaybeUninit::uninit();
   3352     let ptr = UNINIT.as_ptr();
   3353     assert_eq!(
   3354         ::std::mem::size_of::<ndb_search>(),
   3355         24usize,
   3356         concat!("Size of: ", stringify!(ndb_search))
   3357     );
   3358     assert_eq!(
   3359         ::std::mem::align_of::<ndb_search>(),
   3360         8usize,
   3361         concat!("Alignment of ", stringify!(ndb_search))
   3362     );
   3363     assert_eq!(
   3364         unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize },
   3365         0usize,
   3366         concat!(
   3367             "Offset of field: ",
   3368             stringify!(ndb_search),
   3369             "::",
   3370             stringify!(key)
   3371         )
   3372     );
   3373     assert_eq!(
   3374         unsafe { ::std::ptr::addr_of!((*ptr).profile_key) as usize - ptr as usize },
   3375         8usize,
   3376         concat!(
   3377             "Offset of field: ",
   3378             stringify!(ndb_search),
   3379             "::",
   3380             stringify!(profile_key)
   3381         )
   3382     );
   3383     assert_eq!(
   3384         unsafe { ::std::ptr::addr_of!((*ptr).cursor) as usize - ptr as usize },
   3385         16usize,
   3386         concat!(
   3387             "Offset of field: ",
   3388             stringify!(ndb_search),
   3389             "::",
   3390             stringify!(cursor)
   3391         )
   3392     );
   3393 }
   3394 #[repr(C)]
   3395 #[derive(Copy, Clone)]
   3396 pub struct ndb_fce {
   3397     pub evtype: fce_type,
   3398     pub __bindgen_anon_1: ndb_fce__bindgen_ty_1,
   3399 }
   3400 #[repr(C)]
   3401 #[derive(Copy, Clone)]
   3402 pub union ndb_fce__bindgen_ty_1 {
   3403     pub event: ndb_event,
   3404 }
   3405 #[test]
   3406 fn bindgen_test_layout_ndb_fce__bindgen_ty_1() {
   3407     const UNINIT: ::std::mem::MaybeUninit<ndb_fce__bindgen_ty_1> =
   3408         ::std::mem::MaybeUninit::uninit();
   3409     let ptr = UNINIT.as_ptr();
   3410     assert_eq!(
   3411         ::std::mem::size_of::<ndb_fce__bindgen_ty_1>(),
   3412         8usize,
   3413         concat!("Size of: ", stringify!(ndb_fce__bindgen_ty_1))
   3414     );
   3415     assert_eq!(
   3416         ::std::mem::align_of::<ndb_fce__bindgen_ty_1>(),
   3417         8usize,
   3418         concat!("Alignment of ", stringify!(ndb_fce__bindgen_ty_1))
   3419     );
   3420     assert_eq!(
   3421         unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize },
   3422         0usize,
   3423         concat!(
   3424             "Offset of field: ",
   3425             stringify!(ndb_fce__bindgen_ty_1),
   3426             "::",
   3427             stringify!(event)
   3428         )
   3429     );
   3430 }
   3431 #[test]
   3432 fn bindgen_test_layout_ndb_fce() {
   3433     const UNINIT: ::std::mem::MaybeUninit<ndb_fce> = ::std::mem::MaybeUninit::uninit();
   3434     let ptr = UNINIT.as_ptr();
   3435     assert_eq!(
   3436         ::std::mem::size_of::<ndb_fce>(),
   3437         16usize,
   3438         concat!("Size of: ", stringify!(ndb_fce))
   3439     );
   3440     assert_eq!(
   3441         ::std::mem::align_of::<ndb_fce>(),
   3442         8usize,
   3443         concat!("Alignment of ", stringify!(ndb_fce))
   3444     );
   3445     assert_eq!(
   3446         unsafe { ::std::ptr::addr_of!((*ptr).evtype) as usize - ptr as usize },
   3447         0usize,
   3448         concat!(
   3449             "Offset of field: ",
   3450             stringify!(ndb_fce),
   3451             "::",
   3452             stringify!(evtype)
   3453         )
   3454     );
   3455 }
   3456 #[repr(C)]
   3457 #[derive(Copy, Clone)]
   3458 pub struct ndb_tce {
   3459     pub evtype: tce_type,
   3460     pub subid: *const ::std::os::raw::c_char,
   3461     pub subid_len: ::std::os::raw::c_int,
   3462     pub __bindgen_anon_1: ndb_tce__bindgen_ty_1,
   3463 }
   3464 #[repr(C)]
   3465 #[derive(Copy, Clone)]
   3466 pub union ndb_tce__bindgen_ty_1 {
   3467     pub event: ndb_event,
   3468     pub command_result: ndb_command_result,
   3469 }
   3470 #[test]
   3471 fn bindgen_test_layout_ndb_tce__bindgen_ty_1() {
   3472     const UNINIT: ::std::mem::MaybeUninit<ndb_tce__bindgen_ty_1> =
   3473         ::std::mem::MaybeUninit::uninit();
   3474     let ptr = UNINIT.as_ptr();
   3475     assert_eq!(
   3476         ::std::mem::size_of::<ndb_tce__bindgen_ty_1>(),
   3477         24usize,
   3478         concat!("Size of: ", stringify!(ndb_tce__bindgen_ty_1))
   3479     );
   3480     assert_eq!(
   3481         ::std::mem::align_of::<ndb_tce__bindgen_ty_1>(),
   3482         8usize,
   3483         concat!("Alignment of ", stringify!(ndb_tce__bindgen_ty_1))
   3484     );
   3485     assert_eq!(
   3486         unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize },
   3487         0usize,
   3488         concat!(
   3489             "Offset of field: ",
   3490             stringify!(ndb_tce__bindgen_ty_1),
   3491             "::",
   3492             stringify!(event)
   3493         )
   3494     );
   3495     assert_eq!(
   3496         unsafe { ::std::ptr::addr_of!((*ptr).command_result) as usize - ptr as usize },
   3497         0usize,
   3498         concat!(
   3499             "Offset of field: ",
   3500             stringify!(ndb_tce__bindgen_ty_1),
   3501             "::",
   3502             stringify!(command_result)
   3503         )
   3504     );
   3505 }
   3506 #[test]
   3507 fn bindgen_test_layout_ndb_tce() {
   3508     const UNINIT: ::std::mem::MaybeUninit<ndb_tce> = ::std::mem::MaybeUninit::uninit();
   3509     let ptr = UNINIT.as_ptr();
   3510     assert_eq!(
   3511         ::std::mem::size_of::<ndb_tce>(),
   3512         48usize,
   3513         concat!("Size of: ", stringify!(ndb_tce))
   3514     );
   3515     assert_eq!(
   3516         ::std::mem::align_of::<ndb_tce>(),
   3517         8usize,
   3518         concat!("Alignment of ", stringify!(ndb_tce))
   3519     );
   3520     assert_eq!(
   3521         unsafe { ::std::ptr::addr_of!((*ptr).evtype) as usize - ptr as usize },
   3522         0usize,
   3523         concat!(
   3524             "Offset of field: ",
   3525             stringify!(ndb_tce),
   3526             "::",
   3527             stringify!(evtype)
   3528         )
   3529     );
   3530     assert_eq!(
   3531         unsafe { ::std::ptr::addr_of!((*ptr).subid) as usize - ptr as usize },
   3532         8usize,
   3533         concat!(
   3534             "Offset of field: ",
   3535             stringify!(ndb_tce),
   3536             "::",
   3537             stringify!(subid)
   3538         )
   3539     );
   3540     assert_eq!(
   3541         unsafe { ::std::ptr::addr_of!((*ptr).subid_len) as usize - ptr as usize },
   3542         16usize,
   3543         concat!(
   3544             "Offset of field: ",
   3545             stringify!(ndb_tce),
   3546             "::",
   3547             stringify!(subid_len)
   3548         )
   3549     );
   3550 }
   3551 pub type ndb_ingest_filter_fn = ::std::option::Option<
   3552     unsafe extern "C" fn(
   3553         arg1: *mut ::std::os::raw::c_void,
   3554         arg2: *mut ndb_note,
   3555     ) -> ndb_ingest_filter_action,
   3556 >;
   3557 pub const ndb_filter_fieldtype_NDB_FILTER_IDS: ndb_filter_fieldtype = 1;
   3558 pub const ndb_filter_fieldtype_NDB_FILTER_AUTHORS: ndb_filter_fieldtype = 2;
   3559 pub const ndb_filter_fieldtype_NDB_FILTER_KINDS: ndb_filter_fieldtype = 3;
   3560 pub const ndb_filter_fieldtype_NDB_FILTER_TAGS: ndb_filter_fieldtype = 4;
   3561 pub const ndb_filter_fieldtype_NDB_FILTER_SINCE: ndb_filter_fieldtype = 5;
   3562 pub const ndb_filter_fieldtype_NDB_FILTER_UNTIL: ndb_filter_fieldtype = 6;
   3563 pub const ndb_filter_fieldtype_NDB_FILTER_LIMIT: ndb_filter_fieldtype = 7;
   3564 pub const ndb_filter_fieldtype_NDB_FILTER_SEARCH: ndb_filter_fieldtype = 8;
   3565 pub const ndb_filter_fieldtype_NDB_FILTER_RELAYS: ndb_filter_fieldtype = 9;
   3566 pub const ndb_filter_fieldtype_NDB_FILTER_CUSTOM: ndb_filter_fieldtype = 10;
   3567 pub type ndb_filter_fieldtype = ::std::os::raw::c_int;
   3568 pub const ndb_generic_element_type_NDB_ELEMENT_UNKNOWN: ndb_generic_element_type = 0;
   3569 pub const ndb_generic_element_type_NDB_ELEMENT_STRING: ndb_generic_element_type = 1;
   3570 pub const ndb_generic_element_type_NDB_ELEMENT_ID: ndb_generic_element_type = 2;
   3571 pub const ndb_generic_element_type_NDB_ELEMENT_INT: ndb_generic_element_type = 3;
   3572 pub const ndb_generic_element_type_NDB_ELEMENT_CUSTOM: ndb_generic_element_type = 4;
   3573 pub type ndb_generic_element_type = ::std::os::raw::c_int;
   3574 pub const ndb_search_order_NDB_ORDER_DESCENDING: ndb_search_order = 0;
   3575 pub const ndb_search_order_NDB_ORDER_ASCENDING: ndb_search_order = 1;
   3576 pub type ndb_search_order = ::std::os::raw::c_int;
   3577 pub const ndb_dbs_NDB_DB_NOTE: ndb_dbs = 0;
   3578 pub const ndb_dbs_NDB_DB_META: ndb_dbs = 1;
   3579 pub const ndb_dbs_NDB_DB_PROFILE: ndb_dbs = 2;
   3580 pub const ndb_dbs_NDB_DB_NOTE_ID: ndb_dbs = 3;
   3581 pub const ndb_dbs_NDB_DB_PROFILE_PK: ndb_dbs = 4;
   3582 pub const ndb_dbs_NDB_DB_NDB_META: ndb_dbs = 5;
   3583 pub const ndb_dbs_NDB_DB_PROFILE_SEARCH: ndb_dbs = 6;
   3584 pub const ndb_dbs_NDB_DB_PROFILE_LAST_FETCH: ndb_dbs = 7;
   3585 pub const ndb_dbs_NDB_DB_NOTE_KIND: ndb_dbs = 8;
   3586 pub const ndb_dbs_NDB_DB_NOTE_TEXT: ndb_dbs = 9;
   3587 pub const ndb_dbs_NDB_DB_NOTE_BLOCKS: ndb_dbs = 10;
   3588 pub const ndb_dbs_NDB_DB_NOTE_TAGS: ndb_dbs = 11;
   3589 pub const ndb_dbs_NDB_DB_NOTE_PUBKEY: ndb_dbs = 12;
   3590 pub const ndb_dbs_NDB_DB_NOTE_PUBKEY_KIND: ndb_dbs = 13;
   3591 pub const ndb_dbs_NDB_DB_NOTE_RELAY_KIND: ndb_dbs = 14;
   3592 pub const ndb_dbs_NDB_DB_NOTE_RELAYS: ndb_dbs = 15;
   3593 pub const ndb_dbs_NDB_DBS: ndb_dbs = 16;
   3594 pub type ndb_dbs = ::std::os::raw::c_int;
   3595 pub const ndb_common_kind_NDB_CKIND_PROFILE: ndb_common_kind = 0;
   3596 pub const ndb_common_kind_NDB_CKIND_TEXT: ndb_common_kind = 1;
   3597 pub const ndb_common_kind_NDB_CKIND_CONTACTS: ndb_common_kind = 2;
   3598 pub const ndb_common_kind_NDB_CKIND_DM: ndb_common_kind = 3;
   3599 pub const ndb_common_kind_NDB_CKIND_DELETE: ndb_common_kind = 4;
   3600 pub const ndb_common_kind_NDB_CKIND_REPOST: ndb_common_kind = 5;
   3601 pub const ndb_common_kind_NDB_CKIND_REACTION: ndb_common_kind = 6;
   3602 pub const ndb_common_kind_NDB_CKIND_ZAP: ndb_common_kind = 7;
   3603 pub const ndb_common_kind_NDB_CKIND_ZAP_REQUEST: ndb_common_kind = 8;
   3604 pub const ndb_common_kind_NDB_CKIND_NWC_REQUEST: ndb_common_kind = 9;
   3605 pub const ndb_common_kind_NDB_CKIND_NWC_RESPONSE: ndb_common_kind = 10;
   3606 pub const ndb_common_kind_NDB_CKIND_HTTP_AUTH: ndb_common_kind = 11;
   3607 pub const ndb_common_kind_NDB_CKIND_LIST: ndb_common_kind = 12;
   3608 pub const ndb_common_kind_NDB_CKIND_LONGFORM: ndb_common_kind = 13;
   3609 pub const ndb_common_kind_NDB_CKIND_STATUS: ndb_common_kind = 14;
   3610 pub const ndb_common_kind_NDB_CKIND_COUNT: ndb_common_kind = 15;
   3611 pub type ndb_common_kind = ::std::os::raw::c_int;
   3612 #[repr(C)]
   3613 #[derive(Debug, Copy, Clone)]
   3614 pub struct ndb_builder {
   3615     pub mem: cursor,
   3616     pub note_cur: cursor,
   3617     pub strings: cursor,
   3618     pub str_indices: cursor,
   3619     pub note: *mut ndb_note,
   3620     pub current_tag: *mut ndb_tag,
   3621 }
   3622 #[test]
   3623 fn bindgen_test_layout_ndb_builder() {
   3624     const UNINIT: ::std::mem::MaybeUninit<ndb_builder> = ::std::mem::MaybeUninit::uninit();
   3625     let ptr = UNINIT.as_ptr();
   3626     assert_eq!(
   3627         ::std::mem::size_of::<ndb_builder>(),
   3628         112usize,
   3629         concat!("Size of: ", stringify!(ndb_builder))
   3630     );
   3631     assert_eq!(
   3632         ::std::mem::align_of::<ndb_builder>(),
   3633         8usize,
   3634         concat!("Alignment of ", stringify!(ndb_builder))
   3635     );
   3636     assert_eq!(
   3637         unsafe { ::std::ptr::addr_of!((*ptr).mem) as usize - ptr as usize },
   3638         0usize,
   3639         concat!(
   3640             "Offset of field: ",
   3641             stringify!(ndb_builder),
   3642             "::",
   3643             stringify!(mem)
   3644         )
   3645     );
   3646     assert_eq!(
   3647         unsafe { ::std::ptr::addr_of!((*ptr).note_cur) as usize - ptr as usize },
   3648         24usize,
   3649         concat!(
   3650             "Offset of field: ",
   3651             stringify!(ndb_builder),
   3652             "::",
   3653             stringify!(note_cur)
   3654         )
   3655     );
   3656     assert_eq!(
   3657         unsafe { ::std::ptr::addr_of!((*ptr).strings) as usize - ptr as usize },
   3658         48usize,
   3659         concat!(
   3660             "Offset of field: ",
   3661             stringify!(ndb_builder),
   3662             "::",
   3663             stringify!(strings)
   3664         )
   3665     );
   3666     assert_eq!(
   3667         unsafe { ::std::ptr::addr_of!((*ptr).str_indices) as usize - ptr as usize },
   3668         72usize,
   3669         concat!(
   3670             "Offset of field: ",
   3671             stringify!(ndb_builder),
   3672             "::",
   3673             stringify!(str_indices)
   3674         )
   3675     );
   3676     assert_eq!(
   3677         unsafe { ::std::ptr::addr_of!((*ptr).note) as usize - ptr as usize },
   3678         96usize,
   3679         concat!(
   3680             "Offset of field: ",
   3681             stringify!(ndb_builder),
   3682             "::",
   3683             stringify!(note)
   3684         )
   3685     );
   3686     assert_eq!(
   3687         unsafe { ::std::ptr::addr_of!((*ptr).current_tag) as usize - ptr as usize },
   3688         104usize,
   3689         concat!(
   3690             "Offset of field: ",
   3691             stringify!(ndb_builder),
   3692             "::",
   3693             stringify!(current_tag)
   3694         )
   3695     );
   3696 }
   3697 #[repr(C)]
   3698 #[derive(Debug, Copy, Clone)]
   3699 pub struct ndb_note_relay_iterator {
   3700     pub txn: *mut ndb_txn,
   3701     pub note_key: u64,
   3702     pub cursor_op: ::std::os::raw::c_int,
   3703     pub mdb_cur: *mut ::std::os::raw::c_void,
   3704 }
   3705 #[test]
   3706 fn bindgen_test_layout_ndb_note_relay_iterator() {
   3707     const UNINIT: ::std::mem::MaybeUninit<ndb_note_relay_iterator> =
   3708         ::std::mem::MaybeUninit::uninit();
   3709     let ptr = UNINIT.as_ptr();
   3710     assert_eq!(
   3711         ::std::mem::size_of::<ndb_note_relay_iterator>(),
   3712         32usize,
   3713         concat!("Size of: ", stringify!(ndb_note_relay_iterator))
   3714     );
   3715     assert_eq!(
   3716         ::std::mem::align_of::<ndb_note_relay_iterator>(),
   3717         8usize,
   3718         concat!("Alignment of ", stringify!(ndb_note_relay_iterator))
   3719     );
   3720     assert_eq!(
   3721         unsafe { ::std::ptr::addr_of!((*ptr).txn) as usize - ptr as usize },
   3722         0usize,
   3723         concat!(
   3724             "Offset of field: ",
   3725             stringify!(ndb_note_relay_iterator),
   3726             "::",
   3727             stringify!(txn)
   3728         )
   3729     );
   3730     assert_eq!(
   3731         unsafe { ::std::ptr::addr_of!((*ptr).note_key) as usize - ptr as usize },
   3732         8usize,
   3733         concat!(
   3734             "Offset of field: ",
   3735             stringify!(ndb_note_relay_iterator),
   3736             "::",
   3737             stringify!(note_key)
   3738         )
   3739     );
   3740     assert_eq!(
   3741         unsafe { ::std::ptr::addr_of!((*ptr).cursor_op) as usize - ptr as usize },
   3742         16usize,
   3743         concat!(
   3744             "Offset of field: ",
   3745             stringify!(ndb_note_relay_iterator),
   3746             "::",
   3747             stringify!(cursor_op)
   3748         )
   3749     );
   3750     assert_eq!(
   3751         unsafe { ::std::ptr::addr_of!((*ptr).mdb_cur) as usize - ptr as usize },
   3752         24usize,
   3753         concat!(
   3754             "Offset of field: ",
   3755             stringify!(ndb_note_relay_iterator),
   3756             "::",
   3757             stringify!(mdb_cur)
   3758         )
   3759     );
   3760 }
   3761 #[repr(C)]
   3762 #[derive(Debug, Copy, Clone)]
   3763 pub struct ndb_note_meta_iterator {
   3764     pub header: *mut ndb_note_meta,
   3765     pub cur: *mut ndb_note_meta,
   3766     pub index: ::std::os::raw::c_int,
   3767 }
   3768 #[test]
   3769 fn bindgen_test_layout_ndb_note_meta_iterator() {
   3770     const UNINIT: ::std::mem::MaybeUninit<ndb_note_meta_iterator> =
   3771         ::std::mem::MaybeUninit::uninit();
   3772     let ptr = UNINIT.as_ptr();
   3773     assert_eq!(
   3774         ::std::mem::size_of::<ndb_note_meta_iterator>(),
   3775         24usize,
   3776         concat!("Size of: ", stringify!(ndb_note_meta_iterator))
   3777     );
   3778     assert_eq!(
   3779         ::std::mem::align_of::<ndb_note_meta_iterator>(),
   3780         8usize,
   3781         concat!("Alignment of ", stringify!(ndb_note_meta_iterator))
   3782     );
   3783     assert_eq!(
   3784         unsafe { ::std::ptr::addr_of!((*ptr).header) as usize - ptr as usize },
   3785         0usize,
   3786         concat!(
   3787             "Offset of field: ",
   3788             stringify!(ndb_note_meta_iterator),
   3789             "::",
   3790             stringify!(header)
   3791         )
   3792     );
   3793     assert_eq!(
   3794         unsafe { ::std::ptr::addr_of!((*ptr).cur) as usize - ptr as usize },
   3795         8usize,
   3796         concat!(
   3797             "Offset of field: ",
   3798             stringify!(ndb_note_meta_iterator),
   3799             "::",
   3800             stringify!(cur)
   3801         )
   3802     );
   3803     assert_eq!(
   3804         unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize },
   3805         16usize,
   3806         concat!(
   3807             "Offset of field: ",
   3808             stringify!(ndb_note_meta_iterator),
   3809             "::",
   3810             stringify!(index)
   3811         )
   3812     );
   3813 }
   3814 #[repr(C)]
   3815 #[derive(Debug, Copy, Clone)]
   3816 pub struct ndb_iterator {
   3817     pub note: *mut ndb_note,
   3818     pub tag: *mut ndb_tag,
   3819     pub index: ::std::os::raw::c_int,
   3820 }
   3821 #[test]
   3822 fn bindgen_test_layout_ndb_iterator() {
   3823     const UNINIT: ::std::mem::MaybeUninit<ndb_iterator> = ::std::mem::MaybeUninit::uninit();
   3824     let ptr = UNINIT.as_ptr();
   3825     assert_eq!(
   3826         ::std::mem::size_of::<ndb_iterator>(),
   3827         24usize,
   3828         concat!("Size of: ", stringify!(ndb_iterator))
   3829     );
   3830     assert_eq!(
   3831         ::std::mem::align_of::<ndb_iterator>(),
   3832         8usize,
   3833         concat!("Alignment of ", stringify!(ndb_iterator))
   3834     );
   3835     assert_eq!(
   3836         unsafe { ::std::ptr::addr_of!((*ptr).note) as usize - ptr as usize },
   3837         0usize,
   3838         concat!(
   3839             "Offset of field: ",
   3840             stringify!(ndb_iterator),
   3841             "::",
   3842             stringify!(note)
   3843         )
   3844     );
   3845     assert_eq!(
   3846         unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize },
   3847         8usize,
   3848         concat!(
   3849             "Offset of field: ",
   3850             stringify!(ndb_iterator),
   3851             "::",
   3852             stringify!(tag)
   3853         )
   3854     );
   3855     assert_eq!(
   3856         unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize },
   3857         16usize,
   3858         concat!(
   3859             "Offset of field: ",
   3860             stringify!(ndb_iterator),
   3861             "::",
   3862             stringify!(index)
   3863         )
   3864     );
   3865 }
   3866 #[repr(C)]
   3867 #[derive(Debug, Copy, Clone)]
   3868 pub struct ndb_filter_string {
   3869     pub string: *const ::std::os::raw::c_char,
   3870     pub len: ::std::os::raw::c_int,
   3871 }
   3872 #[test]
   3873 fn bindgen_test_layout_ndb_filter_string() {
   3874     const UNINIT: ::std::mem::MaybeUninit<ndb_filter_string> = ::std::mem::MaybeUninit::uninit();
   3875     let ptr = UNINIT.as_ptr();
   3876     assert_eq!(
   3877         ::std::mem::size_of::<ndb_filter_string>(),
   3878         16usize,
   3879         concat!("Size of: ", stringify!(ndb_filter_string))
   3880     );
   3881     assert_eq!(
   3882         ::std::mem::align_of::<ndb_filter_string>(),
   3883         8usize,
   3884         concat!("Alignment of ", stringify!(ndb_filter_string))
   3885     );
   3886     assert_eq!(
   3887         unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize },
   3888         0usize,
   3889         concat!(
   3890             "Offset of field: ",
   3891             stringify!(ndb_filter_string),
   3892             "::",
   3893             stringify!(string)
   3894         )
   3895     );
   3896     assert_eq!(
   3897         unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
   3898         8usize,
   3899         concat!(
   3900             "Offset of field: ",
   3901             stringify!(ndb_filter_string),
   3902             "::",
   3903             stringify!(len)
   3904         )
   3905     );
   3906 }
   3907 pub type ndb_filter_callback_fn = ::std::option::Option<
   3908     unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut ndb_note) -> bool,
   3909 >;
   3910 #[repr(C)]
   3911 #[derive(Debug, Copy, Clone)]
   3912 pub struct ndb_filter_custom {
   3913     pub ctx: *mut ::std::os::raw::c_void,
   3914     pub cb: ndb_filter_callback_fn,
   3915 }
   3916 #[test]
   3917 fn bindgen_test_layout_ndb_filter_custom() {
   3918     const UNINIT: ::std::mem::MaybeUninit<ndb_filter_custom> = ::std::mem::MaybeUninit::uninit();
   3919     let ptr = UNINIT.as_ptr();
   3920     assert_eq!(
   3921         ::std::mem::size_of::<ndb_filter_custom>(),
   3922         16usize,
   3923         concat!("Size of: ", stringify!(ndb_filter_custom))
   3924     );
   3925     assert_eq!(
   3926         ::std::mem::align_of::<ndb_filter_custom>(),
   3927         8usize,
   3928         concat!("Alignment of ", stringify!(ndb_filter_custom))
   3929     );
   3930     assert_eq!(
   3931         unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize },
   3932         0usize,
   3933         concat!(
   3934             "Offset of field: ",
   3935             stringify!(ndb_filter_custom),
   3936             "::",
   3937             stringify!(ctx)
   3938         )
   3939     );
   3940     assert_eq!(
   3941         unsafe { ::std::ptr::addr_of!((*ptr).cb) as usize - ptr as usize },
   3942         8usize,
   3943         concat!(
   3944             "Offset of field: ",
   3945             stringify!(ndb_filter_custom),
   3946             "::",
   3947             stringify!(cb)
   3948         )
   3949     );
   3950 }
   3951 #[repr(C)]
   3952 #[derive(Copy, Clone)]
   3953 pub union ndb_filter_element {
   3954     pub string: ndb_filter_string,
   3955     pub id: *const ::std::os::raw::c_uchar,
   3956     pub integer: u64,
   3957     pub custom_filter: ndb_filter_custom,
   3958 }
   3959 #[test]
   3960 fn bindgen_test_layout_ndb_filter_element() {
   3961     const UNINIT: ::std::mem::MaybeUninit<ndb_filter_element> = ::std::mem::MaybeUninit::uninit();
   3962     let ptr = UNINIT.as_ptr();
   3963     assert_eq!(
   3964         ::std::mem::size_of::<ndb_filter_element>(),
   3965         16usize,
   3966         concat!("Size of: ", stringify!(ndb_filter_element))
   3967     );
   3968     assert_eq!(
   3969         ::std::mem::align_of::<ndb_filter_element>(),
   3970         8usize,
   3971         concat!("Alignment of ", stringify!(ndb_filter_element))
   3972     );
   3973     assert_eq!(
   3974         unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize },
   3975         0usize,
   3976         concat!(
   3977             "Offset of field: ",
   3978             stringify!(ndb_filter_element),
   3979             "::",
   3980             stringify!(string)
   3981         )
   3982     );
   3983     assert_eq!(
   3984         unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize },
   3985         0usize,
   3986         concat!(
   3987             "Offset of field: ",
   3988             stringify!(ndb_filter_element),
   3989             "::",
   3990             stringify!(id)
   3991         )
   3992     );
   3993     assert_eq!(
   3994         unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize },
   3995         0usize,
   3996         concat!(
   3997             "Offset of field: ",
   3998             stringify!(ndb_filter_element),
   3999             "::",
   4000             stringify!(integer)
   4001         )
   4002     );
   4003     assert_eq!(
   4004         unsafe { ::std::ptr::addr_of!((*ptr).custom_filter) as usize - ptr as usize },
   4005         0usize,
   4006         concat!(
   4007             "Offset of field: ",
   4008             stringify!(ndb_filter_element),
   4009             "::",
   4010             stringify!(custom_filter)
   4011         )
   4012     );
   4013 }
   4014 #[repr(C)]
   4015 #[derive(Debug, Copy, Clone)]
   4016 pub struct ndb_filter_field {
   4017     pub type_: ndb_filter_fieldtype,
   4018     pub elem_type: ndb_generic_element_type,
   4019     pub tag: ::std::os::raw::c_char,
   4020 }
   4021 #[test]
   4022 fn bindgen_test_layout_ndb_filter_field() {
   4023     const UNINIT: ::std::mem::MaybeUninit<ndb_filter_field> = ::std::mem::MaybeUninit::uninit();
   4024     let ptr = UNINIT.as_ptr();
   4025     assert_eq!(
   4026         ::std::mem::size_of::<ndb_filter_field>(),
   4027         12usize,
   4028         concat!("Size of: ", stringify!(ndb_filter_field))
   4029     );
   4030     assert_eq!(
   4031         ::std::mem::align_of::<ndb_filter_field>(),
   4032         4usize,
   4033         concat!("Alignment of ", stringify!(ndb_filter_field))
   4034     );
   4035     assert_eq!(
   4036         unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
   4037         0usize,
   4038         concat!(
   4039             "Offset of field: ",
   4040             stringify!(ndb_filter_field),
   4041             "::",
   4042             stringify!(type_)
   4043         )
   4044     );
   4045     assert_eq!(
   4046         unsafe { ::std::ptr::addr_of!((*ptr).elem_type) as usize - ptr as usize },
   4047         4usize,
   4048         concat!(
   4049             "Offset of field: ",
   4050             stringify!(ndb_filter_field),
   4051             "::",
   4052             stringify!(elem_type)
   4053         )
   4054     );
   4055     assert_eq!(
   4056         unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize },
   4057         8usize,
   4058         concat!(
   4059             "Offset of field: ",
   4060             stringify!(ndb_filter_field),
   4061             "::",
   4062             stringify!(tag)
   4063         )
   4064     );
   4065 }
   4066 #[repr(C)]
   4067 #[derive(Debug)]
   4068 pub struct ndb_filter_elements {
   4069     pub field: ndb_filter_field,
   4070     pub count: ::std::os::raw::c_int,
   4071     pub elements: __IncompleteArrayField<u64>,
   4072 }
   4073 #[test]
   4074 fn bindgen_test_layout_ndb_filter_elements() {
   4075     const UNINIT: ::std::mem::MaybeUninit<ndb_filter_elements> = ::std::mem::MaybeUninit::uninit();
   4076     let ptr = UNINIT.as_ptr();
   4077     assert_eq!(
   4078         ::std::mem::size_of::<ndb_filter_elements>(),
   4079         16usize,
   4080         concat!("Size of: ", stringify!(ndb_filter_elements))
   4081     );
   4082     assert_eq!(
   4083         ::std::mem::align_of::<ndb_filter_elements>(),
   4084         8usize,
   4085         concat!("Alignment of ", stringify!(ndb_filter_elements))
   4086     );
   4087     assert_eq!(
   4088         unsafe { ::std::ptr::addr_of!((*ptr).field) as usize - ptr as usize },
   4089         0usize,
   4090         concat!(
   4091             "Offset of field: ",
   4092             stringify!(ndb_filter_elements),
   4093             "::",
   4094             stringify!(field)
   4095         )
   4096     );
   4097     assert_eq!(
   4098         unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize },
   4099         12usize,
   4100         concat!(
   4101             "Offset of field: ",
   4102             stringify!(ndb_filter_elements),
   4103             "::",
   4104             stringify!(count)
   4105         )
   4106     );
   4107     assert_eq!(
   4108         unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize },
   4109         16usize,
   4110         concat!(
   4111             "Offset of field: ",
   4112             stringify!(ndb_filter_elements),
   4113             "::",
   4114             stringify!(elements)
   4115         )
   4116     );
   4117 }
   4118 #[repr(C)]
   4119 #[derive(Debug, Copy, Clone)]
   4120 pub struct ndb_filter {
   4121     pub elem_buf: cursor,
   4122     pub data_buf: cursor,
   4123     pub num_elements: ::std::os::raw::c_int,
   4124     pub finalized: ::std::os::raw::c_int,
   4125     pub current: ::std::os::raw::c_int,
   4126     pub elements: [::std::os::raw::c_int; 10usize],
   4127 }
   4128 #[test]
   4129 fn bindgen_test_layout_ndb_filter() {
   4130     const UNINIT: ::std::mem::MaybeUninit<ndb_filter> = ::std::mem::MaybeUninit::uninit();
   4131     let ptr = UNINIT.as_ptr();
   4132     assert_eq!(
   4133         ::std::mem::size_of::<ndb_filter>(),
   4134         104usize,
   4135         concat!("Size of: ", stringify!(ndb_filter))
   4136     );
   4137     assert_eq!(
   4138         ::std::mem::align_of::<ndb_filter>(),
   4139         8usize,
   4140         concat!("Alignment of ", stringify!(ndb_filter))
   4141     );
   4142     assert_eq!(
   4143         unsafe { ::std::ptr::addr_of!((*ptr).elem_buf) as usize - ptr as usize },
   4144         0usize,
   4145         concat!(
   4146             "Offset of field: ",
   4147             stringify!(ndb_filter),
   4148             "::",
   4149             stringify!(elem_buf)
   4150         )
   4151     );
   4152     assert_eq!(
   4153         unsafe { ::std::ptr::addr_of!((*ptr).data_buf) as usize - ptr as usize },
   4154         24usize,
   4155         concat!(
   4156             "Offset of field: ",
   4157             stringify!(ndb_filter),
   4158             "::",
   4159             stringify!(data_buf)
   4160         )
   4161     );
   4162     assert_eq!(
   4163         unsafe { ::std::ptr::addr_of!((*ptr).num_elements) as usize - ptr as usize },
   4164         48usize,
   4165         concat!(
   4166             "Offset of field: ",
   4167             stringify!(ndb_filter),
   4168             "::",
   4169             stringify!(num_elements)
   4170         )
   4171     );
   4172     assert_eq!(
   4173         unsafe { ::std::ptr::addr_of!((*ptr).finalized) as usize - ptr as usize },
   4174         52usize,
   4175         concat!(
   4176             "Offset of field: ",
   4177             stringify!(ndb_filter),
   4178             "::",
   4179             stringify!(finalized)
   4180         )
   4181     );
   4182     assert_eq!(
   4183         unsafe { ::std::ptr::addr_of!((*ptr).current) as usize - ptr as usize },
   4184         56usize,
   4185         concat!(
   4186             "Offset of field: ",
   4187             stringify!(ndb_filter),
   4188             "::",
   4189             stringify!(current)
   4190         )
   4191     );
   4192     assert_eq!(
   4193         unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize },
   4194         60usize,
   4195         concat!(
   4196             "Offset of field: ",
   4197             stringify!(ndb_filter),
   4198             "::",
   4199             stringify!(elements)
   4200         )
   4201     );
   4202 }
   4203 #[repr(C)]
   4204 #[derive(Debug, Copy, Clone)]
   4205 pub struct ndb_config {
   4206     pub flags: ::std::os::raw::c_int,
   4207     pub ingester_threads: ::std::os::raw::c_int,
   4208     pub writer_scratch_buffer_size: ::std::os::raw::c_int,
   4209     pub mapsize: usize,
   4210     pub filter_context: *mut ::std::os::raw::c_void,
   4211     pub ingest_filter: ndb_ingest_filter_fn,
   4212     pub sub_cb_ctx: *mut ::std::os::raw::c_void,
   4213     pub sub_cb: ndb_sub_fn,
   4214 }
   4215 #[test]
   4216 fn bindgen_test_layout_ndb_config() {
   4217     const UNINIT: ::std::mem::MaybeUninit<ndb_config> = ::std::mem::MaybeUninit::uninit();
   4218     let ptr = UNINIT.as_ptr();
   4219     assert_eq!(
   4220         ::std::mem::size_of::<ndb_config>(),
   4221         56usize,
   4222         concat!("Size of: ", stringify!(ndb_config))
   4223     );
   4224     assert_eq!(
   4225         ::std::mem::align_of::<ndb_config>(),
   4226         8usize,
   4227         concat!("Alignment of ", stringify!(ndb_config))
   4228     );
   4229     assert_eq!(
   4230         unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
   4231         0usize,
   4232         concat!(
   4233             "Offset of field: ",
   4234             stringify!(ndb_config),
   4235             "::",
   4236             stringify!(flags)
   4237         )
   4238     );
   4239     assert_eq!(
   4240         unsafe { ::std::ptr::addr_of!((*ptr).ingester_threads) as usize - ptr as usize },
   4241         4usize,
   4242         concat!(
   4243             "Offset of field: ",
   4244             stringify!(ndb_config),
   4245             "::",
   4246             stringify!(ingester_threads)
   4247         )
   4248     );
   4249     assert_eq!(
   4250         unsafe { ::std::ptr::addr_of!((*ptr).writer_scratch_buffer_size) as usize - ptr as usize },
   4251         8usize,
   4252         concat!(
   4253             "Offset of field: ",
   4254             stringify!(ndb_config),
   4255             "::",
   4256             stringify!(writer_scratch_buffer_size)
   4257         )
   4258     );
   4259     assert_eq!(
   4260         unsafe { ::std::ptr::addr_of!((*ptr).mapsize) as usize - ptr as usize },
   4261         16usize,
   4262         concat!(
   4263             "Offset of field: ",
   4264             stringify!(ndb_config),
   4265             "::",
   4266             stringify!(mapsize)
   4267         )
   4268     );
   4269     assert_eq!(
   4270         unsafe { ::std::ptr::addr_of!((*ptr).filter_context) as usize - ptr as usize },
   4271         24usize,
   4272         concat!(
   4273             "Offset of field: ",
   4274             stringify!(ndb_config),
   4275             "::",
   4276             stringify!(filter_context)
   4277         )
   4278     );
   4279     assert_eq!(
   4280         unsafe { ::std::ptr::addr_of!((*ptr).ingest_filter) as usize - ptr as usize },
   4281         32usize,
   4282         concat!(
   4283             "Offset of field: ",
   4284             stringify!(ndb_config),
   4285             "::",
   4286             stringify!(ingest_filter)
   4287         )
   4288     );
   4289     assert_eq!(
   4290         unsafe { ::std::ptr::addr_of!((*ptr).sub_cb_ctx) as usize - ptr as usize },
   4291         40usize,
   4292         concat!(
   4293             "Offset of field: ",
   4294             stringify!(ndb_config),
   4295             "::",
   4296             stringify!(sub_cb_ctx)
   4297         )
   4298     );
   4299     assert_eq!(
   4300         unsafe { ::std::ptr::addr_of!((*ptr).sub_cb) as usize - ptr as usize },
   4301         48usize,
   4302         concat!(
   4303             "Offset of field: ",
   4304             stringify!(ndb_config),
   4305             "::",
   4306             stringify!(sub_cb)
   4307         )
   4308     );
   4309 }
   4310 #[repr(C)]
   4311 #[derive(Debug, Copy, Clone)]
   4312 pub struct ndb_text_search_config {
   4313     pub order: ndb_search_order,
   4314     pub limit: ::std::os::raw::c_int,
   4315 }
   4316 #[test]
   4317 fn bindgen_test_layout_ndb_text_search_config() {
   4318     const UNINIT: ::std::mem::MaybeUninit<ndb_text_search_config> =
   4319         ::std::mem::MaybeUninit::uninit();
   4320     let ptr = UNINIT.as_ptr();
   4321     assert_eq!(
   4322         ::std::mem::size_of::<ndb_text_search_config>(),
   4323         8usize,
   4324         concat!("Size of: ", stringify!(ndb_text_search_config))
   4325     );
   4326     assert_eq!(
   4327         ::std::mem::align_of::<ndb_text_search_config>(),
   4328         4usize,
   4329         concat!("Alignment of ", stringify!(ndb_text_search_config))
   4330     );
   4331     assert_eq!(
   4332         unsafe { ::std::ptr::addr_of!((*ptr).order) as usize - ptr as usize },
   4333         0usize,
   4334         concat!(
   4335             "Offset of field: ",
   4336             stringify!(ndb_text_search_config),
   4337             "::",
   4338             stringify!(order)
   4339         )
   4340     );
   4341     assert_eq!(
   4342         unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize },
   4343         4usize,
   4344         concat!(
   4345             "Offset of field: ",
   4346             stringify!(ndb_text_search_config),
   4347             "::",
   4348             stringify!(limit)
   4349         )
   4350     );
   4351 }
   4352 #[repr(C)]
   4353 #[derive(Debug, Copy, Clone)]
   4354 pub struct ndb_stat_counts {
   4355     pub key_size: usize,
   4356     pub value_size: usize,
   4357     pub count: usize,
   4358 }
   4359 #[test]
   4360 fn bindgen_test_layout_ndb_stat_counts() {
   4361     const UNINIT: ::std::mem::MaybeUninit<ndb_stat_counts> = ::std::mem::MaybeUninit::uninit();
   4362     let ptr = UNINIT.as_ptr();
   4363     assert_eq!(
   4364         ::std::mem::size_of::<ndb_stat_counts>(),
   4365         24usize,
   4366         concat!("Size of: ", stringify!(ndb_stat_counts))
   4367     );
   4368     assert_eq!(
   4369         ::std::mem::align_of::<ndb_stat_counts>(),
   4370         8usize,
   4371         concat!("Alignment of ", stringify!(ndb_stat_counts))
   4372     );
   4373     assert_eq!(
   4374         unsafe { ::std::ptr::addr_of!((*ptr).key_size) as usize - ptr as usize },
   4375         0usize,
   4376         concat!(
   4377             "Offset of field: ",
   4378             stringify!(ndb_stat_counts),
   4379             "::",
   4380             stringify!(key_size)
   4381         )
   4382     );
   4383     assert_eq!(
   4384         unsafe { ::std::ptr::addr_of!((*ptr).value_size) as usize - ptr as usize },
   4385         8usize,
   4386         concat!(
   4387             "Offset of field: ",
   4388             stringify!(ndb_stat_counts),
   4389             "::",
   4390             stringify!(value_size)
   4391         )
   4392     );
   4393     assert_eq!(
   4394         unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize },
   4395         16usize,
   4396         concat!(
   4397             "Offset of field: ",
   4398             stringify!(ndb_stat_counts),
   4399             "::",
   4400             stringify!(count)
   4401         )
   4402     );
   4403 }
   4404 #[repr(C)]
   4405 #[derive(Debug, Copy, Clone)]
   4406 pub struct ndb_stat {
   4407     pub dbs: [ndb_stat_counts; 16usize],
   4408     pub common_kinds: [ndb_stat_counts; 15usize],
   4409     pub other_kinds: ndb_stat_counts,
   4410 }
   4411 #[test]
   4412 fn bindgen_test_layout_ndb_stat() {
   4413     const UNINIT: ::std::mem::MaybeUninit<ndb_stat> = ::std::mem::MaybeUninit::uninit();
   4414     let ptr = UNINIT.as_ptr();
   4415     assert_eq!(
   4416         ::std::mem::size_of::<ndb_stat>(),
   4417         768usize,
   4418         concat!("Size of: ", stringify!(ndb_stat))
   4419     );
   4420     assert_eq!(
   4421         ::std::mem::align_of::<ndb_stat>(),
   4422         8usize,
   4423         concat!("Alignment of ", stringify!(ndb_stat))
   4424     );
   4425     assert_eq!(
   4426         unsafe { ::std::ptr::addr_of!((*ptr).dbs) as usize - ptr as usize },
   4427         0usize,
   4428         concat!(
   4429             "Offset of field: ",
   4430             stringify!(ndb_stat),
   4431             "::",
   4432             stringify!(dbs)
   4433         )
   4434     );
   4435     assert_eq!(
   4436         unsafe { ::std::ptr::addr_of!((*ptr).common_kinds) as usize - ptr as usize },
   4437         384usize,
   4438         concat!(
   4439             "Offset of field: ",
   4440             stringify!(ndb_stat),
   4441             "::",
   4442             stringify!(common_kinds)
   4443         )
   4444     );
   4445     assert_eq!(
   4446         unsafe { ::std::ptr::addr_of!((*ptr).other_kinds) as usize - ptr as usize },
   4447         744usize,
   4448         concat!(
   4449             "Offset of field: ",
   4450             stringify!(ndb_stat),
   4451             "::",
   4452             stringify!(other_kinds)
   4453         )
   4454     );
   4455 }
   4456 #[repr(C)]
   4457 #[derive(Debug, Copy, Clone)]
   4458 pub struct ndb_text_search_key {
   4459     pub str_len: ::std::os::raw::c_int,
   4460     pub str_: *const ::std::os::raw::c_char,
   4461     pub timestamp: u64,
   4462     pub note_id: u64,
   4463     pub word_index: u64,
   4464 }
   4465 #[test]
   4466 fn bindgen_test_layout_ndb_text_search_key() {
   4467     const UNINIT: ::std::mem::MaybeUninit<ndb_text_search_key> = ::std::mem::MaybeUninit::uninit();
   4468     let ptr = UNINIT.as_ptr();
   4469     assert_eq!(
   4470         ::std::mem::size_of::<ndb_text_search_key>(),
   4471         40usize,
   4472         concat!("Size of: ", stringify!(ndb_text_search_key))
   4473     );
   4474     assert_eq!(
   4475         ::std::mem::align_of::<ndb_text_search_key>(),
   4476         8usize,
   4477         concat!("Alignment of ", stringify!(ndb_text_search_key))
   4478     );
   4479     assert_eq!(
   4480         unsafe { ::std::ptr::addr_of!((*ptr).str_len) as usize - ptr as usize },
   4481         0usize,
   4482         concat!(
   4483             "Offset of field: ",
   4484             stringify!(ndb_text_search_key),
   4485             "::",
   4486             stringify!(str_len)
   4487         )
   4488     );
   4489     assert_eq!(
   4490         unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize },
   4491         8usize,
   4492         concat!(
   4493             "Offset of field: ",
   4494             stringify!(ndb_text_search_key),
   4495             "::",
   4496             stringify!(str_)
   4497         )
   4498     );
   4499     assert_eq!(
   4500         unsafe { ::std::ptr::addr_of!((*ptr).timestamp) as usize - ptr as usize },
   4501         16usize,
   4502         concat!(
   4503             "Offset of field: ",
   4504             stringify!(ndb_text_search_key),
   4505             "::",
   4506             stringify!(timestamp)
   4507         )
   4508     );
   4509     assert_eq!(
   4510         unsafe { ::std::ptr::addr_of!((*ptr).note_id) as usize - ptr as usize },
   4511         24usize,
   4512         concat!(
   4513             "Offset of field: ",
   4514             stringify!(ndb_text_search_key),
   4515             "::",
   4516             stringify!(note_id)
   4517         )
   4518     );
   4519     assert_eq!(
   4520         unsafe { ::std::ptr::addr_of!((*ptr).word_index) as usize - ptr as usize },
   4521         32usize,
   4522         concat!(
   4523             "Offset of field: ",
   4524             stringify!(ndb_text_search_key),
   4525             "::",
   4526             stringify!(word_index)
   4527         )
   4528     );
   4529 }
   4530 #[repr(C)]
   4531 #[derive(Debug, Copy, Clone)]
   4532 pub struct ndb_text_search_result {
   4533     pub key: ndb_text_search_key,
   4534     pub prefix_chars: ::std::os::raw::c_int,
   4535     pub note: *mut ndb_note,
   4536     pub note_size: u64,
   4537 }
   4538 #[test]
   4539 fn bindgen_test_layout_ndb_text_search_result() {
   4540     const UNINIT: ::std::mem::MaybeUninit<ndb_text_search_result> =
   4541         ::std::mem::MaybeUninit::uninit();
   4542     let ptr = UNINIT.as_ptr();
   4543     assert_eq!(
   4544         ::std::mem::size_of::<ndb_text_search_result>(),
   4545         64usize,
   4546         concat!("Size of: ", stringify!(ndb_text_search_result))
   4547     );
   4548     assert_eq!(
   4549         ::std::mem::align_of::<ndb_text_search_result>(),
   4550         8usize,
   4551         concat!("Alignment of ", stringify!(ndb_text_search_result))
   4552     );
   4553     assert_eq!(
   4554         unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize },
   4555         0usize,
   4556         concat!(
   4557             "Offset of field: ",
   4558             stringify!(ndb_text_search_result),
   4559             "::",
   4560             stringify!(key)
   4561         )
   4562     );
   4563     assert_eq!(
   4564         unsafe { ::std::ptr::addr_of!((*ptr).prefix_chars) as usize - ptr as usize },
   4565         40usize,
   4566         concat!(
   4567             "Offset of field: ",
   4568             stringify!(ndb_text_search_result),
   4569             "::",
   4570             stringify!(prefix_chars)
   4571         )
   4572     );
   4573     assert_eq!(
   4574         unsafe { ::std::ptr::addr_of!((*ptr).note) as usize - ptr as usize },
   4575         48usize,
   4576         concat!(
   4577             "Offset of field: ",
   4578             stringify!(ndb_text_search_result),
   4579             "::",
   4580             stringify!(note)
   4581         )
   4582     );
   4583     assert_eq!(
   4584         unsafe { ::std::ptr::addr_of!((*ptr).note_size) as usize - ptr as usize },
   4585         56usize,
   4586         concat!(
   4587             "Offset of field: ",
   4588             stringify!(ndb_text_search_result),
   4589             "::",
   4590             stringify!(note_size)
   4591         )
   4592     );
   4593 }
   4594 #[repr(C)]
   4595 #[derive(Debug, Copy, Clone)]
   4596 pub struct ndb_text_search_results {
   4597     pub results: [ndb_text_search_result; 128usize],
   4598     pub num_results: ::std::os::raw::c_int,
   4599 }
   4600 #[test]
   4601 fn bindgen_test_layout_ndb_text_search_results() {
   4602     const UNINIT: ::std::mem::MaybeUninit<ndb_text_search_results> =
   4603         ::std::mem::MaybeUninit::uninit();
   4604     let ptr = UNINIT.as_ptr();
   4605     assert_eq!(
   4606         ::std::mem::size_of::<ndb_text_search_results>(),
   4607         8200usize,
   4608         concat!("Size of: ", stringify!(ndb_text_search_results))
   4609     );
   4610     assert_eq!(
   4611         ::std::mem::align_of::<ndb_text_search_results>(),
   4612         8usize,
   4613         concat!("Alignment of ", stringify!(ndb_text_search_results))
   4614     );
   4615     assert_eq!(
   4616         unsafe { ::std::ptr::addr_of!((*ptr).results) as usize - ptr as usize },
   4617         0usize,
   4618         concat!(
   4619             "Offset of field: ",
   4620             stringify!(ndb_text_search_results),
   4621             "::",
   4622             stringify!(results)
   4623         )
   4624     );
   4625     assert_eq!(
   4626         unsafe { ::std::ptr::addr_of!((*ptr).num_results) as usize - ptr as usize },
   4627         8192usize,
   4628         concat!(
   4629             "Offset of field: ",
   4630             stringify!(ndb_text_search_results),
   4631             "::",
   4632             stringify!(num_results)
   4633         )
   4634     );
   4635 }
   4636 pub const ndb_block_type_BLOCK_HASHTAG: ndb_block_type = 1;
   4637 pub const ndb_block_type_BLOCK_TEXT: ndb_block_type = 2;
   4638 pub const ndb_block_type_BLOCK_MENTION_INDEX: ndb_block_type = 3;
   4639 pub const ndb_block_type_BLOCK_MENTION_BECH32: ndb_block_type = 4;
   4640 pub const ndb_block_type_BLOCK_URL: ndb_block_type = 5;
   4641 pub const ndb_block_type_BLOCK_INVOICE: ndb_block_type = 6;
   4642 pub type ndb_block_type = ::std::os::raw::c_int;
   4643 #[repr(C)]
   4644 #[derive(Debug, Copy, Clone)]
   4645 pub struct ndb_relays {
   4646     pub relays: [ndb_str_block; 24usize],
   4647     pub num_relays: ::std::os::raw::c_int,
   4648 }
   4649 #[test]
   4650 fn bindgen_test_layout_ndb_relays() {
   4651     const UNINIT: ::std::mem::MaybeUninit<ndb_relays> = ::std::mem::MaybeUninit::uninit();
   4652     let ptr = UNINIT.as_ptr();
   4653     assert_eq!(
   4654         ::std::mem::size_of::<ndb_relays>(),
   4655         392usize,
   4656         concat!("Size of: ", stringify!(ndb_relays))
   4657     );
   4658     assert_eq!(
   4659         ::std::mem::align_of::<ndb_relays>(),
   4660         8usize,
   4661         concat!("Alignment of ", stringify!(ndb_relays))
   4662     );
   4663     assert_eq!(
   4664         unsafe { ::std::ptr::addr_of!((*ptr).relays) as usize - ptr as usize },
   4665         0usize,
   4666         concat!(
   4667             "Offset of field: ",
   4668             stringify!(ndb_relays),
   4669             "::",
   4670             stringify!(relays)
   4671         )
   4672     );
   4673     assert_eq!(
   4674         unsafe { ::std::ptr::addr_of!((*ptr).num_relays) as usize - ptr as usize },
   4675         384usize,
   4676         concat!(
   4677             "Offset of field: ",
   4678             stringify!(ndb_relays),
   4679             "::",
   4680             stringify!(num_relays)
   4681         )
   4682     );
   4683 }
   4684 pub const nostr_bech32_type_NOSTR_BECH32_NOTE: nostr_bech32_type = 1;
   4685 pub const nostr_bech32_type_NOSTR_BECH32_NPUB: nostr_bech32_type = 2;
   4686 pub const nostr_bech32_type_NOSTR_BECH32_NPROFILE: nostr_bech32_type = 3;
   4687 pub const nostr_bech32_type_NOSTR_BECH32_NEVENT: nostr_bech32_type = 4;
   4688 pub const nostr_bech32_type_NOSTR_BECH32_NRELAY: nostr_bech32_type = 5;
   4689 pub const nostr_bech32_type_NOSTR_BECH32_NADDR: nostr_bech32_type = 6;
   4690 pub const nostr_bech32_type_NOSTR_BECH32_NSEC: nostr_bech32_type = 7;
   4691 pub type nostr_bech32_type = ::std::os::raw::c_int;
   4692 #[repr(C)]
   4693 #[derive(Debug, Copy, Clone)]
   4694 pub struct bech32_note {
   4695     pub event_id: *const ::std::os::raw::c_uchar,
   4696 }
   4697 #[test]
   4698 fn bindgen_test_layout_bech32_note() {
   4699     const UNINIT: ::std::mem::MaybeUninit<bech32_note> = ::std::mem::MaybeUninit::uninit();
   4700     let ptr = UNINIT.as_ptr();
   4701     assert_eq!(
   4702         ::std::mem::size_of::<bech32_note>(),
   4703         8usize,
   4704         concat!("Size of: ", stringify!(bech32_note))
   4705     );
   4706     assert_eq!(
   4707         ::std::mem::align_of::<bech32_note>(),
   4708         8usize,
   4709         concat!("Alignment of ", stringify!(bech32_note))
   4710     );
   4711     assert_eq!(
   4712         unsafe { ::std::ptr::addr_of!((*ptr).event_id) as usize - ptr as usize },
   4713         0usize,
   4714         concat!(
   4715             "Offset of field: ",
   4716             stringify!(bech32_note),
   4717             "::",
   4718             stringify!(event_id)
   4719         )
   4720     );
   4721 }
   4722 #[repr(C)]
   4723 #[derive(Debug, Copy, Clone)]
   4724 pub struct bech32_npub {
   4725     pub pubkey: *const ::std::os::raw::c_uchar,
   4726 }
   4727 #[test]
   4728 fn bindgen_test_layout_bech32_npub() {
   4729     const UNINIT: ::std::mem::MaybeUninit<bech32_npub> = ::std::mem::MaybeUninit::uninit();
   4730     let ptr = UNINIT.as_ptr();
   4731     assert_eq!(
   4732         ::std::mem::size_of::<bech32_npub>(),
   4733         8usize,
   4734         concat!("Size of: ", stringify!(bech32_npub))
   4735     );
   4736     assert_eq!(
   4737         ::std::mem::align_of::<bech32_npub>(),
   4738         8usize,
   4739         concat!("Alignment of ", stringify!(bech32_npub))
   4740     );
   4741     assert_eq!(
   4742         unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
   4743         0usize,
   4744         concat!(
   4745             "Offset of field: ",
   4746             stringify!(bech32_npub),
   4747             "::",
   4748             stringify!(pubkey)
   4749         )
   4750     );
   4751 }
   4752 #[repr(C)]
   4753 #[derive(Debug, Copy, Clone)]
   4754 pub struct bech32_nsec {
   4755     pub nsec: *const ::std::os::raw::c_uchar,
   4756 }
   4757 #[test]
   4758 fn bindgen_test_layout_bech32_nsec() {
   4759     const UNINIT: ::std::mem::MaybeUninit<bech32_nsec> = ::std::mem::MaybeUninit::uninit();
   4760     let ptr = UNINIT.as_ptr();
   4761     assert_eq!(
   4762         ::std::mem::size_of::<bech32_nsec>(),
   4763         8usize,
   4764         concat!("Size of: ", stringify!(bech32_nsec))
   4765     );
   4766     assert_eq!(
   4767         ::std::mem::align_of::<bech32_nsec>(),
   4768         8usize,
   4769         concat!("Alignment of ", stringify!(bech32_nsec))
   4770     );
   4771     assert_eq!(
   4772         unsafe { ::std::ptr::addr_of!((*ptr).nsec) as usize - ptr as usize },
   4773         0usize,
   4774         concat!(
   4775             "Offset of field: ",
   4776             stringify!(bech32_nsec),
   4777             "::",
   4778             stringify!(nsec)
   4779         )
   4780     );
   4781 }
   4782 #[repr(C)]
   4783 #[derive(Debug, Copy, Clone)]
   4784 pub struct bech32_nevent {
   4785     pub relays: ndb_relays,
   4786     pub event_id: *const ::std::os::raw::c_uchar,
   4787     pub pubkey: *const ::std::os::raw::c_uchar,
   4788 }
   4789 #[test]
   4790 fn bindgen_test_layout_bech32_nevent() {
   4791     const UNINIT: ::std::mem::MaybeUninit<bech32_nevent> = ::std::mem::MaybeUninit::uninit();
   4792     let ptr = UNINIT.as_ptr();
   4793     assert_eq!(
   4794         ::std::mem::size_of::<bech32_nevent>(),
   4795         408usize,
   4796         concat!("Size of: ", stringify!(bech32_nevent))
   4797     );
   4798     assert_eq!(
   4799         ::std::mem::align_of::<bech32_nevent>(),
   4800         8usize,
   4801         concat!("Alignment of ", stringify!(bech32_nevent))
   4802     );
   4803     assert_eq!(
   4804         unsafe { ::std::ptr::addr_of!((*ptr).relays) as usize - ptr as usize },
   4805         0usize,
   4806         concat!(
   4807             "Offset of field: ",
   4808             stringify!(bech32_nevent),
   4809             "::",
   4810             stringify!(relays)
   4811         )
   4812     );
   4813     assert_eq!(
   4814         unsafe { ::std::ptr::addr_of!((*ptr).event_id) as usize - ptr as usize },
   4815         392usize,
   4816         concat!(
   4817             "Offset of field: ",
   4818             stringify!(bech32_nevent),
   4819             "::",
   4820             stringify!(event_id)
   4821         )
   4822     );
   4823     assert_eq!(
   4824         unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
   4825         400usize,
   4826         concat!(
   4827             "Offset of field: ",
   4828             stringify!(bech32_nevent),
   4829             "::",
   4830             stringify!(pubkey)
   4831         )
   4832     );
   4833 }
   4834 #[repr(C)]
   4835 #[derive(Debug, Copy, Clone)]
   4836 pub struct bech32_nprofile {
   4837     pub relays: ndb_relays,
   4838     pub pubkey: *const ::std::os::raw::c_uchar,
   4839 }
   4840 #[test]
   4841 fn bindgen_test_layout_bech32_nprofile() {
   4842     const UNINIT: ::std::mem::MaybeUninit<bech32_nprofile> = ::std::mem::MaybeUninit::uninit();
   4843     let ptr = UNINIT.as_ptr();
   4844     assert_eq!(
   4845         ::std::mem::size_of::<bech32_nprofile>(),
   4846         400usize,
   4847         concat!("Size of: ", stringify!(bech32_nprofile))
   4848     );
   4849     assert_eq!(
   4850         ::std::mem::align_of::<bech32_nprofile>(),
   4851         8usize,
   4852         concat!("Alignment of ", stringify!(bech32_nprofile))
   4853     );
   4854     assert_eq!(
   4855         unsafe { ::std::ptr::addr_of!((*ptr).relays) as usize - ptr as usize },
   4856         0usize,
   4857         concat!(
   4858             "Offset of field: ",
   4859             stringify!(bech32_nprofile),
   4860             "::",
   4861             stringify!(relays)
   4862         )
   4863     );
   4864     assert_eq!(
   4865         unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
   4866         392usize,
   4867         concat!(
   4868             "Offset of field: ",
   4869             stringify!(bech32_nprofile),
   4870             "::",
   4871             stringify!(pubkey)
   4872         )
   4873     );
   4874 }
   4875 #[repr(C)]
   4876 #[derive(Debug, Copy, Clone)]
   4877 pub struct bech32_naddr {
   4878     pub relays: ndb_relays,
   4879     pub identifier: ndb_str_block,
   4880     pub pubkey: *const ::std::os::raw::c_uchar,
   4881 }
   4882 #[test]
   4883 fn bindgen_test_layout_bech32_naddr() {
   4884     const UNINIT: ::std::mem::MaybeUninit<bech32_naddr> = ::std::mem::MaybeUninit::uninit();
   4885     let ptr = UNINIT.as_ptr();
   4886     assert_eq!(
   4887         ::std::mem::size_of::<bech32_naddr>(),
   4888         416usize,
   4889         concat!("Size of: ", stringify!(bech32_naddr))
   4890     );
   4891     assert_eq!(
   4892         ::std::mem::align_of::<bech32_naddr>(),
   4893         8usize,
   4894         concat!("Alignment of ", stringify!(bech32_naddr))
   4895     );
   4896     assert_eq!(
   4897         unsafe { ::std::ptr::addr_of!((*ptr).relays) as usize - ptr as usize },
   4898         0usize,
   4899         concat!(
   4900             "Offset of field: ",
   4901             stringify!(bech32_naddr),
   4902             "::",
   4903             stringify!(relays)
   4904         )
   4905     );
   4906     assert_eq!(
   4907         unsafe { ::std::ptr::addr_of!((*ptr).identifier) as usize - ptr as usize },
   4908         392usize,
   4909         concat!(
   4910             "Offset of field: ",
   4911             stringify!(bech32_naddr),
   4912             "::",
   4913             stringify!(identifier)
   4914         )
   4915     );
   4916     assert_eq!(
   4917         unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
   4918         408usize,
   4919         concat!(
   4920             "Offset of field: ",
   4921             stringify!(bech32_naddr),
   4922             "::",
   4923             stringify!(pubkey)
   4924         )
   4925     );
   4926 }
   4927 #[repr(C)]
   4928 #[derive(Debug, Copy, Clone)]
   4929 pub struct bech32_nrelay {
   4930     pub relay: ndb_str_block,
   4931 }
   4932 #[test]
   4933 fn bindgen_test_layout_bech32_nrelay() {
   4934     const UNINIT: ::std::mem::MaybeUninit<bech32_nrelay> = ::std::mem::MaybeUninit::uninit();
   4935     let ptr = UNINIT.as_ptr();
   4936     assert_eq!(
   4937         ::std::mem::size_of::<bech32_nrelay>(),
   4938         16usize,
   4939         concat!("Size of: ", stringify!(bech32_nrelay))
   4940     );
   4941     assert_eq!(
   4942         ::std::mem::align_of::<bech32_nrelay>(),
   4943         8usize,
   4944         concat!("Alignment of ", stringify!(bech32_nrelay))
   4945     );
   4946     assert_eq!(
   4947         unsafe { ::std::ptr::addr_of!((*ptr).relay) as usize - ptr as usize },
   4948         0usize,
   4949         concat!(
   4950             "Offset of field: ",
   4951             stringify!(bech32_nrelay),
   4952             "::",
   4953             stringify!(relay)
   4954         )
   4955     );
   4956 }
   4957 #[repr(C)]
   4958 #[derive(Copy, Clone)]
   4959 pub struct nostr_bech32 {
   4960     pub type_: nostr_bech32_type,
   4961     pub __bindgen_anon_1: nostr_bech32__bindgen_ty_1,
   4962 }
   4963 #[repr(C)]
   4964 #[derive(Copy, Clone)]
   4965 pub union nostr_bech32__bindgen_ty_1 {
   4966     pub note: bech32_note,
   4967     pub npub: bech32_npub,
   4968     pub nsec: bech32_nsec,
   4969     pub nevent: bech32_nevent,
   4970     pub nprofile: bech32_nprofile,
   4971     pub naddr: bech32_naddr,
   4972     pub nrelay: bech32_nrelay,
   4973 }
   4974 #[test]
   4975 fn bindgen_test_layout_nostr_bech32__bindgen_ty_1() {
   4976     const UNINIT: ::std::mem::MaybeUninit<nostr_bech32__bindgen_ty_1> =
   4977         ::std::mem::MaybeUninit::uninit();
   4978     let ptr = UNINIT.as_ptr();
   4979     assert_eq!(
   4980         ::std::mem::size_of::<nostr_bech32__bindgen_ty_1>(),
   4981         416usize,
   4982         concat!("Size of: ", stringify!(nostr_bech32__bindgen_ty_1))
   4983     );
   4984     assert_eq!(
   4985         ::std::mem::align_of::<nostr_bech32__bindgen_ty_1>(),
   4986         8usize,
   4987         concat!("Alignment of ", stringify!(nostr_bech32__bindgen_ty_1))
   4988     );
   4989     assert_eq!(
   4990         unsafe { ::std::ptr::addr_of!((*ptr).note) as usize - ptr as usize },
   4991         0usize,
   4992         concat!(
   4993             "Offset of field: ",
   4994             stringify!(nostr_bech32__bindgen_ty_1),
   4995             "::",
   4996             stringify!(note)
   4997         )
   4998     );
   4999     assert_eq!(
   5000         unsafe { ::std::ptr::addr_of!((*ptr).npub) as usize - ptr as usize },
   5001         0usize,
   5002         concat!(
   5003             "Offset of field: ",
   5004             stringify!(nostr_bech32__bindgen_ty_1),
   5005             "::",
   5006             stringify!(npub)
   5007         )
   5008     );
   5009     assert_eq!(
   5010         unsafe { ::std::ptr::addr_of!((*ptr).nsec) as usize - ptr as usize },
   5011         0usize,
   5012         concat!(
   5013             "Offset of field: ",
   5014             stringify!(nostr_bech32__bindgen_ty_1),
   5015             "::",
   5016             stringify!(nsec)
   5017         )
   5018     );
   5019     assert_eq!(
   5020         unsafe { ::std::ptr::addr_of!((*ptr).nevent) as usize - ptr as usize },
   5021         0usize,
   5022         concat!(
   5023             "Offset of field: ",
   5024             stringify!(nostr_bech32__bindgen_ty_1),
   5025             "::",
   5026             stringify!(nevent)
   5027         )
   5028     );
   5029     assert_eq!(
   5030         unsafe { ::std::ptr::addr_of!((*ptr).nprofile) as usize - ptr as usize },
   5031         0usize,
   5032         concat!(
   5033             "Offset of field: ",
   5034             stringify!(nostr_bech32__bindgen_ty_1),
   5035             "::",
   5036             stringify!(nprofile)
   5037         )
   5038     );
   5039     assert_eq!(
   5040         unsafe { ::std::ptr::addr_of!((*ptr).naddr) as usize - ptr as usize },
   5041         0usize,
   5042         concat!(
   5043             "Offset of field: ",
   5044             stringify!(nostr_bech32__bindgen_ty_1),
   5045             "::",
   5046             stringify!(naddr)
   5047         )
   5048     );
   5049     assert_eq!(
   5050         unsafe { ::std::ptr::addr_of!((*ptr).nrelay) as usize - ptr as usize },
   5051         0usize,
   5052         concat!(
   5053             "Offset of field: ",
   5054             stringify!(nostr_bech32__bindgen_ty_1),
   5055             "::",
   5056             stringify!(nrelay)
   5057         )
   5058     );
   5059 }
   5060 #[test]
   5061 fn bindgen_test_layout_nostr_bech32() {
   5062     const UNINIT: ::std::mem::MaybeUninit<nostr_bech32> = ::std::mem::MaybeUninit::uninit();
   5063     let ptr = UNINIT.as_ptr();
   5064     assert_eq!(
   5065         ::std::mem::size_of::<nostr_bech32>(),
   5066         424usize,
   5067         concat!("Size of: ", stringify!(nostr_bech32))
   5068     );
   5069     assert_eq!(
   5070         ::std::mem::align_of::<nostr_bech32>(),
   5071         8usize,
   5072         concat!("Alignment of ", stringify!(nostr_bech32))
   5073     );
   5074     assert_eq!(
   5075         unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
   5076         0usize,
   5077         concat!(
   5078             "Offset of field: ",
   5079             stringify!(nostr_bech32),
   5080             "::",
   5081             stringify!(type_)
   5082         )
   5083     );
   5084 }
   5085 #[repr(C)]
   5086 #[derive(Copy, Clone)]
   5087 pub struct ndb_mention_bech32_block {
   5088     pub str_: ndb_str_block,
   5089     pub bech32: nostr_bech32,
   5090 }
   5091 #[test]
   5092 fn bindgen_test_layout_ndb_mention_bech32_block() {
   5093     const UNINIT: ::std::mem::MaybeUninit<ndb_mention_bech32_block> =
   5094         ::std::mem::MaybeUninit::uninit();
   5095     let ptr = UNINIT.as_ptr();
   5096     assert_eq!(
   5097         ::std::mem::size_of::<ndb_mention_bech32_block>(),
   5098         440usize,
   5099         concat!("Size of: ", stringify!(ndb_mention_bech32_block))
   5100     );
   5101     assert_eq!(
   5102         ::std::mem::align_of::<ndb_mention_bech32_block>(),
   5103         8usize,
   5104         concat!("Alignment of ", stringify!(ndb_mention_bech32_block))
   5105     );
   5106     assert_eq!(
   5107         unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize },
   5108         0usize,
   5109         concat!(
   5110             "Offset of field: ",
   5111             stringify!(ndb_mention_bech32_block),
   5112             "::",
   5113             stringify!(str_)
   5114         )
   5115     );
   5116     assert_eq!(
   5117         unsafe { ::std::ptr::addr_of!((*ptr).bech32) as usize - ptr as usize },
   5118         16usize,
   5119         concat!(
   5120             "Offset of field: ",
   5121             stringify!(ndb_mention_bech32_block),
   5122             "::",
   5123             stringify!(bech32)
   5124         )
   5125     );
   5126 }
   5127 #[repr(C)]
   5128 #[derive(Debug, Copy, Clone)]
   5129 pub struct ndb_invoice {
   5130     pub version: ::std::os::raw::c_uchar,
   5131     pub amount: u64,
   5132     pub timestamp: u64,
   5133     pub expiry: u64,
   5134     pub description: *mut ::std::os::raw::c_char,
   5135     pub description_hash: *mut ::std::os::raw::c_uchar,
   5136 }
   5137 #[test]
   5138 fn bindgen_test_layout_ndb_invoice() {
   5139     const UNINIT: ::std::mem::MaybeUninit<ndb_invoice> = ::std::mem::MaybeUninit::uninit();
   5140     let ptr = UNINIT.as_ptr();
   5141     assert_eq!(
   5142         ::std::mem::size_of::<ndb_invoice>(),
   5143         48usize,
   5144         concat!("Size of: ", stringify!(ndb_invoice))
   5145     );
   5146     assert_eq!(
   5147         ::std::mem::align_of::<ndb_invoice>(),
   5148         8usize,
   5149         concat!("Alignment of ", stringify!(ndb_invoice))
   5150     );
   5151     assert_eq!(
   5152         unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
   5153         0usize,
   5154         concat!(
   5155             "Offset of field: ",
   5156             stringify!(ndb_invoice),
   5157             "::",
   5158             stringify!(version)
   5159         )
   5160     );
   5161     assert_eq!(
   5162         unsafe { ::std::ptr::addr_of!((*ptr).amount) as usize - ptr as usize },
   5163         8usize,
   5164         concat!(
   5165             "Offset of field: ",
   5166             stringify!(ndb_invoice),
   5167             "::",
   5168             stringify!(amount)
   5169         )
   5170     );
   5171     assert_eq!(
   5172         unsafe { ::std::ptr::addr_of!((*ptr).timestamp) as usize - ptr as usize },
   5173         16usize,
   5174         concat!(
   5175             "Offset of field: ",
   5176             stringify!(ndb_invoice),
   5177             "::",
   5178             stringify!(timestamp)
   5179         )
   5180     );
   5181     assert_eq!(
   5182         unsafe { ::std::ptr::addr_of!((*ptr).expiry) as usize - ptr as usize },
   5183         24usize,
   5184         concat!(
   5185             "Offset of field: ",
   5186             stringify!(ndb_invoice),
   5187             "::",
   5188             stringify!(expiry)
   5189         )
   5190     );
   5191     assert_eq!(
   5192         unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize },
   5193         32usize,
   5194         concat!(
   5195             "Offset of field: ",
   5196             stringify!(ndb_invoice),
   5197             "::",
   5198             stringify!(description)
   5199         )
   5200     );
   5201     assert_eq!(
   5202         unsafe { ::std::ptr::addr_of!((*ptr).description_hash) as usize - ptr as usize },
   5203         40usize,
   5204         concat!(
   5205             "Offset of field: ",
   5206             stringify!(ndb_invoice),
   5207             "::",
   5208             stringify!(description_hash)
   5209         )
   5210     );
   5211 }
   5212 #[repr(C)]
   5213 #[derive(Debug, Copy, Clone)]
   5214 pub struct ndb_invoice_block {
   5215     pub invstr: ndb_str_block,
   5216     pub invoice: ndb_invoice,
   5217 }
   5218 #[test]
   5219 fn bindgen_test_layout_ndb_invoice_block() {
   5220     const UNINIT: ::std::mem::MaybeUninit<ndb_invoice_block> = ::std::mem::MaybeUninit::uninit();
   5221     let ptr = UNINIT.as_ptr();
   5222     assert_eq!(
   5223         ::std::mem::size_of::<ndb_invoice_block>(),
   5224         64usize,
   5225         concat!("Size of: ", stringify!(ndb_invoice_block))
   5226     );
   5227     assert_eq!(
   5228         ::std::mem::align_of::<ndb_invoice_block>(),
   5229         8usize,
   5230         concat!("Alignment of ", stringify!(ndb_invoice_block))
   5231     );
   5232     assert_eq!(
   5233         unsafe { ::std::ptr::addr_of!((*ptr).invstr) as usize - ptr as usize },
   5234         0usize,
   5235         concat!(
   5236             "Offset of field: ",
   5237             stringify!(ndb_invoice_block),
   5238             "::",
   5239             stringify!(invstr)
   5240         )
   5241     );
   5242     assert_eq!(
   5243         unsafe { ::std::ptr::addr_of!((*ptr).invoice) as usize - ptr as usize },
   5244         16usize,
   5245         concat!(
   5246             "Offset of field: ",
   5247             stringify!(ndb_invoice_block),
   5248             "::",
   5249             stringify!(invoice)
   5250         )
   5251     );
   5252 }
   5253 #[repr(C)]
   5254 #[derive(Copy, Clone)]
   5255 pub struct ndb_block {
   5256     pub type_: ndb_block_type,
   5257     pub block: ndb_block__bindgen_ty_1,
   5258 }
   5259 #[repr(C)]
   5260 #[derive(Copy, Clone)]
   5261 pub union ndb_block__bindgen_ty_1 {
   5262     pub str_: ndb_str_block,
   5263     pub invoice: ndb_invoice_block,
   5264     pub mention_bech32: ndb_mention_bech32_block,
   5265     pub mention_index: u32,
   5266 }
   5267 #[test]
   5268 fn bindgen_test_layout_ndb_block__bindgen_ty_1() {
   5269     const UNINIT: ::std::mem::MaybeUninit<ndb_block__bindgen_ty_1> =
   5270         ::std::mem::MaybeUninit::uninit();
   5271     let ptr = UNINIT.as_ptr();
   5272     assert_eq!(
   5273         ::std::mem::size_of::<ndb_block__bindgen_ty_1>(),
   5274         440usize,
   5275         concat!("Size of: ", stringify!(ndb_block__bindgen_ty_1))
   5276     );
   5277     assert_eq!(
   5278         ::std::mem::align_of::<ndb_block__bindgen_ty_1>(),
   5279         8usize,
   5280         concat!("Alignment of ", stringify!(ndb_block__bindgen_ty_1))
   5281     );
   5282     assert_eq!(
   5283         unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize },
   5284         0usize,
   5285         concat!(
   5286             "Offset of field: ",
   5287             stringify!(ndb_block__bindgen_ty_1),
   5288             "::",
   5289             stringify!(str_)
   5290         )
   5291     );
   5292     assert_eq!(
   5293         unsafe { ::std::ptr::addr_of!((*ptr).invoice) as usize - ptr as usize },
   5294         0usize,
   5295         concat!(
   5296             "Offset of field: ",
   5297             stringify!(ndb_block__bindgen_ty_1),
   5298             "::",
   5299             stringify!(invoice)
   5300         )
   5301     );
   5302     assert_eq!(
   5303         unsafe { ::std::ptr::addr_of!((*ptr).mention_bech32) as usize - ptr as usize },
   5304         0usize,
   5305         concat!(
   5306             "Offset of field: ",
   5307             stringify!(ndb_block__bindgen_ty_1),
   5308             "::",
   5309             stringify!(mention_bech32)
   5310         )
   5311     );
   5312     assert_eq!(
   5313         unsafe { ::std::ptr::addr_of!((*ptr).mention_index) as usize - ptr as usize },
   5314         0usize,
   5315         concat!(
   5316             "Offset of field: ",
   5317             stringify!(ndb_block__bindgen_ty_1),
   5318             "::",
   5319             stringify!(mention_index)
   5320         )
   5321     );
   5322 }
   5323 #[test]
   5324 fn bindgen_test_layout_ndb_block() {
   5325     const UNINIT: ::std::mem::MaybeUninit<ndb_block> = ::std::mem::MaybeUninit::uninit();
   5326     let ptr = UNINIT.as_ptr();
   5327     assert_eq!(
   5328         ::std::mem::size_of::<ndb_block>(),
   5329         448usize,
   5330         concat!("Size of: ", stringify!(ndb_block))
   5331     );
   5332     assert_eq!(
   5333         ::std::mem::align_of::<ndb_block>(),
   5334         8usize,
   5335         concat!("Alignment of ", stringify!(ndb_block))
   5336     );
   5337     assert_eq!(
   5338         unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
   5339         0usize,
   5340         concat!(
   5341             "Offset of field: ",
   5342             stringify!(ndb_block),
   5343             "::",
   5344             stringify!(type_)
   5345         )
   5346     );
   5347     assert_eq!(
   5348         unsafe { ::std::ptr::addr_of!((*ptr).block) as usize - ptr as usize },
   5349         8usize,
   5350         concat!(
   5351             "Offset of field: ",
   5352             stringify!(ndb_block),
   5353             "::",
   5354             stringify!(block)
   5355         )
   5356     );
   5357 }
   5358 #[repr(C)]
   5359 #[derive(Copy, Clone)]
   5360 pub struct ndb_block_iterator {
   5361     pub content: *const ::std::os::raw::c_char,
   5362     pub blocks: *mut ndb_blocks,
   5363     pub block: ndb_block,
   5364     pub p: *mut ::std::os::raw::c_uchar,
   5365 }
   5366 #[test]
   5367 fn bindgen_test_layout_ndb_block_iterator() {
   5368     const UNINIT: ::std::mem::MaybeUninit<ndb_block_iterator> = ::std::mem::MaybeUninit::uninit();
   5369     let ptr = UNINIT.as_ptr();
   5370     assert_eq!(
   5371         ::std::mem::size_of::<ndb_block_iterator>(),
   5372         472usize,
   5373         concat!("Size of: ", stringify!(ndb_block_iterator))
   5374     );
   5375     assert_eq!(
   5376         ::std::mem::align_of::<ndb_block_iterator>(),
   5377         8usize,
   5378         concat!("Alignment of ", stringify!(ndb_block_iterator))
   5379     );
   5380     assert_eq!(
   5381         unsafe { ::std::ptr::addr_of!((*ptr).content) as usize - ptr as usize },
   5382         0usize,
   5383         concat!(
   5384             "Offset of field: ",
   5385             stringify!(ndb_block_iterator),
   5386             "::",
   5387             stringify!(content)
   5388         )
   5389     );
   5390     assert_eq!(
   5391         unsafe { ::std::ptr::addr_of!((*ptr).blocks) as usize - ptr as usize },
   5392         8usize,
   5393         concat!(
   5394             "Offset of field: ",
   5395             stringify!(ndb_block_iterator),
   5396             "::",
   5397             stringify!(blocks)
   5398         )
   5399     );
   5400     assert_eq!(
   5401         unsafe { ::std::ptr::addr_of!((*ptr).block) as usize - ptr as usize },
   5402         16usize,
   5403         concat!(
   5404             "Offset of field: ",
   5405             stringify!(ndb_block_iterator),
   5406             "::",
   5407             stringify!(block)
   5408         )
   5409     );
   5410     assert_eq!(
   5411         unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize },
   5412         464usize,
   5413         concat!(
   5414             "Offset of field: ",
   5415             stringify!(ndb_block_iterator),
   5416             "::",
   5417             stringify!(p)
   5418         )
   5419     );
   5420 }
   5421 #[repr(C)]
   5422 #[derive(Debug, Copy, Clone)]
   5423 pub struct ndb_query_result {
   5424     pub note: *mut ndb_note,
   5425     pub note_size: u64,
   5426     pub note_id: u64,
   5427 }
   5428 #[test]
   5429 fn bindgen_test_layout_ndb_query_result() {
   5430     const UNINIT: ::std::mem::MaybeUninit<ndb_query_result> = ::std::mem::MaybeUninit::uninit();
   5431     let ptr = UNINIT.as_ptr();
   5432     assert_eq!(
   5433         ::std::mem::size_of::<ndb_query_result>(),
   5434         24usize,
   5435         concat!("Size of: ", stringify!(ndb_query_result))
   5436     );
   5437     assert_eq!(
   5438         ::std::mem::align_of::<ndb_query_result>(),
   5439         8usize,
   5440         concat!("Alignment of ", stringify!(ndb_query_result))
   5441     );
   5442     assert_eq!(
   5443         unsafe { ::std::ptr::addr_of!((*ptr).note) as usize - ptr as usize },
   5444         0usize,
   5445         concat!(
   5446             "Offset of field: ",
   5447             stringify!(ndb_query_result),
   5448             "::",
   5449             stringify!(note)
   5450         )
   5451     );
   5452     assert_eq!(
   5453         unsafe { ::std::ptr::addr_of!((*ptr).note_size) as usize - ptr as usize },
   5454         8usize,
   5455         concat!(
   5456             "Offset of field: ",
   5457             stringify!(ndb_query_result),
   5458             "::",
   5459             stringify!(note_size)
   5460         )
   5461     );
   5462     assert_eq!(
   5463         unsafe { ::std::ptr::addr_of!((*ptr).note_id) as usize - ptr as usize },
   5464         16usize,
   5465         concat!(
   5466             "Offset of field: ",
   5467             stringify!(ndb_query_result),
   5468             "::",
   5469             stringify!(note_id)
   5470         )
   5471     );
   5472 }
   5473 #[repr(C)]
   5474 #[derive(Debug, Copy, Clone)]
   5475 pub struct ndb_query_results {
   5476     pub cur: cursor,
   5477 }
   5478 #[test]
   5479 fn bindgen_test_layout_ndb_query_results() {
   5480     const UNINIT: ::std::mem::MaybeUninit<ndb_query_results> = ::std::mem::MaybeUninit::uninit();
   5481     let ptr = UNINIT.as_ptr();
   5482     assert_eq!(
   5483         ::std::mem::size_of::<ndb_query_results>(),
   5484         24usize,
   5485         concat!("Size of: ", stringify!(ndb_query_results))
   5486     );
   5487     assert_eq!(
   5488         ::std::mem::align_of::<ndb_query_results>(),
   5489         8usize,
   5490         concat!("Alignment of ", stringify!(ndb_query_results))
   5491     );
   5492     assert_eq!(
   5493         unsafe { ::std::ptr::addr_of!((*ptr).cur) as usize - ptr as usize },
   5494         0usize,
   5495         concat!(
   5496             "Offset of field: ",
   5497             stringify!(ndb_query_results),
   5498             "::",
   5499             stringify!(cur)
   5500         )
   5501     );
   5502 }
   5503 extern "C" {
   5504     pub fn ndb_default_config(arg1: *mut ndb_config);
   5505 }
   5506 extern "C" {
   5507     pub fn ndb_config_set_ingest_threads(config: *mut ndb_config, threads: ::std::os::raw::c_int);
   5508 }
   5509 extern "C" {
   5510     pub fn ndb_config_set_flags(config: *mut ndb_config, flags: ::std::os::raw::c_int);
   5511 }
   5512 extern "C" {
   5513     pub fn ndb_config_set_mapsize(config: *mut ndb_config, mapsize: usize);
   5514 }
   5515 extern "C" {
   5516     pub fn ndb_config_set_ingest_filter(
   5517         config: *mut ndb_config,
   5518         fn_: ndb_ingest_filter_fn,
   5519         arg1: *mut ::std::os::raw::c_void,
   5520     );
   5521 }
   5522 extern "C" {
   5523     pub fn ndb_config_set_subscription_callback(
   5524         config: *mut ndb_config,
   5525         fn_: ndb_sub_fn,
   5526         ctx: *mut ::std::os::raw::c_void,
   5527     );
   5528 }
   5529 extern "C" {
   5530     #[doc = " Configurable scratch buffer size for the writer thread. Default is 2MB. If you have smaller notes\n you can decrease this to reduce memory usage. If you have bigger notes you should increase this so\n that the writer thread can properly parse larger notes."]
   5531     pub fn ndb_config_set_writer_scratch_buffer_size(
   5532         config: *mut ndb_config,
   5533         scratch_size: ::std::os::raw::c_int,
   5534     );
   5535 }
   5536 extern "C" {
   5537     pub fn ndb_calculate_id(
   5538         note: *mut ndb_note,
   5539         buf: *mut ::std::os::raw::c_uchar,
   5540         buflen: ::std::os::raw::c_int,
   5541         id: *mut ::std::os::raw::c_uchar,
   5542     ) -> ::std::os::raw::c_int;
   5543 }
   5544 extern "C" {
   5545     pub fn ndb_sign_id(
   5546         keypair: *mut ndb_keypair,
   5547         id: *mut ::std::os::raw::c_uchar,
   5548         sig: *mut ::std::os::raw::c_uchar,
   5549     ) -> ::std::os::raw::c_int;
   5550 }
   5551 extern "C" {
   5552     pub fn ndb_create_keypair(key: *mut ndb_keypair) -> ::std::os::raw::c_int;
   5553 }
   5554 extern "C" {
   5555     pub fn ndb_decode_key(
   5556         secstr: *const ::std::os::raw::c_char,
   5557         keypair: *mut ndb_keypair,
   5558     ) -> ::std::os::raw::c_int;
   5559 }
   5560 extern "C" {
   5561     pub fn ndb_note_verify(
   5562         secp_ctx: *mut ::std::os::raw::c_void,
   5563         scratch: *mut ::std::os::raw::c_uchar,
   5564         scratch_size: usize,
   5565         note: *mut ndb_note,
   5566     ) -> ::std::os::raw::c_int;
   5567 }
   5568 extern "C" {
   5569     pub fn ndb_init(
   5570         ndb: *mut *mut ndb,
   5571         dbdir: *const ::std::os::raw::c_char,
   5572         arg1: *const ndb_config,
   5573     ) -> ::std::os::raw::c_int;
   5574 }
   5575 extern "C" {
   5576     pub fn ndb_db_version(txn: *mut ndb_txn) -> ::std::os::raw::c_int;
   5577 }
   5578 extern "C" {
   5579     pub fn ndb_add_key(ndb: *mut ndb, key: *mut ::std::os::raw::c_uchar) -> ::std::os::raw::c_int;
   5580 }
   5581 extern "C" {
   5582     pub fn ndb_process_event(
   5583         arg1: *mut ndb,
   5584         json: *const ::std::os::raw::c_char,
   5585         len: ::std::os::raw::c_int,
   5586     ) -> ::std::os::raw::c_int;
   5587 }
   5588 extern "C" {
   5589     pub fn ndb_ingest_meta_init(
   5590         meta: *mut ndb_ingest_meta,
   5591         client: ::std::os::raw::c_uint,
   5592         relay: *const ::std::os::raw::c_char,
   5593     );
   5594 }
   5595 extern "C" {
   5596     pub fn ndb_process_event_with(
   5597         arg1: *mut ndb,
   5598         json: *const ::std::os::raw::c_char,
   5599         len: ::std::os::raw::c_int,
   5600         meta: *mut ndb_ingest_meta,
   5601     ) -> ::std::os::raw::c_int;
   5602 }
   5603 extern "C" {
   5604     pub fn ndb_process_events(
   5605         arg1: *mut ndb,
   5606         ldjson: *const ::std::os::raw::c_char,
   5607         len: usize,
   5608     ) -> ::std::os::raw::c_int;
   5609 }
   5610 extern "C" {
   5611     pub fn ndb_process_giftwraps(arg1: *mut ndb, arg2: *mut ndb_txn) -> ::std::os::raw::c_int;
   5612 }
   5613 extern "C" {
   5614     pub fn ndb_process_events_with(
   5615         ndb: *mut ndb,
   5616         ldjson: *const ::std::os::raw::c_char,
   5617         json_len: usize,
   5618         meta: *mut ndb_ingest_meta,
   5619     ) -> ::std::os::raw::c_int;
   5620 }
   5621 extern "C" {
   5622     pub fn ndb_process_client_event(
   5623         arg1: *mut ndb,
   5624         json: *const ::std::os::raw::c_char,
   5625         len: ::std::os::raw::c_int,
   5626     ) -> ::std::os::raw::c_int;
   5627 }
   5628 extern "C" {
   5629     pub fn ndb_process_client_events(
   5630         arg1: *mut ndb,
   5631         json: *const ::std::os::raw::c_char,
   5632         len: usize,
   5633     ) -> ::std::os::raw::c_int;
   5634 }
   5635 extern "C" {
   5636     pub fn ndb_begin_query(arg1: *mut ndb, arg2: *mut ndb_txn) -> ::std::os::raw::c_int;
   5637 }
   5638 extern "C" {
   5639     pub fn ndb_search_profile(
   5640         txn: *mut ndb_txn,
   5641         search: *mut ndb_search,
   5642         query: *const ::std::os::raw::c_char,
   5643     ) -> ::std::os::raw::c_int;
   5644 }
   5645 extern "C" {
   5646     pub fn ndb_search_profile_next(search: *mut ndb_search) -> ::std::os::raw::c_int;
   5647 }
   5648 extern "C" {
   5649     pub fn ndb_search_profile_end(search: *mut ndb_search);
   5650 }
   5651 extern "C" {
   5652     pub fn ndb_end_query(arg1: *mut ndb_txn) -> ::std::os::raw::c_int;
   5653 }
   5654 extern "C" {
   5655     pub fn ndb_write_last_profile_fetch(
   5656         ndb: *mut ndb,
   5657         pubkey: *const ::std::os::raw::c_uchar,
   5658         fetched_at: u64,
   5659     ) -> ::std::os::raw::c_int;
   5660 }
   5661 extern "C" {
   5662     pub fn ndb_read_last_profile_fetch(
   5663         txn: *mut ndb_txn,
   5664         pubkey: *const ::std::os::raw::c_uchar,
   5665     ) -> u64;
   5666 }
   5667 extern "C" {
   5668     pub fn ndb_get_profile_by_pubkey(
   5669         txn: *mut ndb_txn,
   5670         pubkey: *const ::std::os::raw::c_uchar,
   5671         len: *mut usize,
   5672         primkey: *mut u64,
   5673     ) -> *mut ::std::os::raw::c_void;
   5674 }
   5675 extern "C" {
   5676     pub fn ndb_get_profile_by_key(
   5677         txn: *mut ndb_txn,
   5678         key: u64,
   5679         len: *mut usize,
   5680     ) -> *mut ::std::os::raw::c_void;
   5681 }
   5682 extern "C" {
   5683     pub fn ndb_get_notekey_by_id(txn: *mut ndb_txn, id: *const ::std::os::raw::c_uchar) -> u64;
   5684 }
   5685 extern "C" {
   5686     pub fn ndb_get_profilekey_by_pubkey(
   5687         txn: *mut ndb_txn,
   5688         id: *const ::std::os::raw::c_uchar,
   5689     ) -> u64;
   5690 }
   5691 extern "C" {
   5692     pub fn ndb_get_note_by_id(
   5693         txn: *mut ndb_txn,
   5694         id: *const ::std::os::raw::c_uchar,
   5695         len: *mut usize,
   5696         primkey: *mut u64,
   5697     ) -> *mut ndb_note;
   5698 }
   5699 extern "C" {
   5700     pub fn ndb_get_note_by_key(txn: *mut ndb_txn, key: u64, len: *mut usize) -> *mut ndb_note;
   5701 }
   5702 extern "C" {
   5703     pub fn ndb_note_seen_on_relay(
   5704         txn: *mut ndb_txn,
   5705         note_key: u64,
   5706         relay: *const ::std::os::raw::c_char,
   5707     ) -> ::std::os::raw::c_int;
   5708 }
   5709 extern "C" {
   5710     pub fn ndb_destroy(arg1: *mut ndb);
   5711 }
   5712 extern "C" {
   5713     pub fn ndb_parse_json_note(
   5714         arg1: *mut ndb_json_parser,
   5715         arg2: *mut *mut ndb_note,
   5716     ) -> ::std::os::raw::c_int;
   5717 }
   5718 extern "C" {
   5719     pub fn ndb_client_event_from_json(
   5720         json: *const ::std::os::raw::c_char,
   5721         len: ::std::os::raw::c_int,
   5722         fce: *mut ndb_fce,
   5723         buf: *mut ::std::os::raw::c_uchar,
   5724         bufsize: ::std::os::raw::c_int,
   5725         cb: *mut ndb_id_cb,
   5726     ) -> ::std::os::raw::c_int;
   5727 }
   5728 extern "C" {
   5729     pub fn ndb_ws_event_from_json(
   5730         json: *const ::std::os::raw::c_char,
   5731         len: ::std::os::raw::c_int,
   5732         tce: *mut ndb_tce,
   5733         buf: *mut ::std::os::raw::c_uchar,
   5734         bufsize: ::std::os::raw::c_int,
   5735         arg1: *mut ndb_id_cb,
   5736     ) -> ::std::os::raw::c_int;
   5737 }
   5738 extern "C" {
   5739     pub fn ndb_note_from_json(
   5740         json: *const ::std::os::raw::c_char,
   5741         len: ::std::os::raw::c_int,
   5742         arg1: *mut *mut ndb_note,
   5743         buf: *mut ::std::os::raw::c_uchar,
   5744         buflen: ::std::os::raw::c_int,
   5745     ) -> ::std::os::raw::c_int;
   5746 }
   5747 extern "C" {
   5748     pub fn ndb_note_from_json_custom(
   5749         json: *const ::std::os::raw::c_char,
   5750         len: ::std::os::raw::c_int,
   5751         arg1: *mut *mut ndb_note,
   5752         buf: *mut ::std::os::raw::c_uchar,
   5753         buflen: ::std::os::raw::c_int,
   5754         parse_cond: ::std::os::raw::c_int,
   5755     ) -> ::std::os::raw::c_int;
   5756 }
   5757 extern "C" {
   5758     pub fn ndb_builder_init(
   5759         builder: *mut ndb_builder,
   5760         buf: *mut ::std::os::raw::c_uchar,
   5761         bufsize: usize,
   5762     ) -> ::std::os::raw::c_int;
   5763 }
   5764 extern "C" {
   5765     pub fn ndb_builder_finalize(
   5766         builder: *mut ndb_builder,
   5767         note: *mut *mut ndb_note,
   5768         privkey: *mut ndb_keypair,
   5769     ) -> ::std::os::raw::c_int;
   5770 }
   5771 extern "C" {
   5772     pub fn ndb_builder_set_content(
   5773         builder: *mut ndb_builder,
   5774         content: *const ::std::os::raw::c_char,
   5775         len: ::std::os::raw::c_int,
   5776     ) -> ::std::os::raw::c_int;
   5777 }
   5778 extern "C" {
   5779     pub fn ndb_builder_set_created_at(builder: *mut ndb_builder, created_at: u64);
   5780 }
   5781 extern "C" {
   5782     pub fn ndb_builder_set_sig(builder: *mut ndb_builder, sig: *mut ::std::os::raw::c_uchar);
   5783 }
   5784 extern "C" {
   5785     pub fn ndb_builder_set_pubkey(builder: *mut ndb_builder, pubkey: *mut ::std::os::raw::c_uchar);
   5786 }
   5787 extern "C" {
   5788     pub fn ndb_builder_set_id(builder: *mut ndb_builder, id: *mut ::std::os::raw::c_uchar);
   5789 }
   5790 extern "C" {
   5791     pub fn ndb_builder_set_kind(builder: *mut ndb_builder, kind: u32);
   5792 }
   5793 extern "C" {
   5794     pub fn ndb_builder_new_tag(builder: *mut ndb_builder) -> ::std::os::raw::c_int;
   5795 }
   5796 extern "C" {
   5797     pub fn ndb_builder_push_tag_str(
   5798         builder: *mut ndb_builder,
   5799         str_: *const ::std::os::raw::c_char,
   5800         len: ::std::os::raw::c_int,
   5801     ) -> ::std::os::raw::c_int;
   5802 }
   5803 extern "C" {
   5804     pub fn ndb_builder_push_tag_id(
   5805         builder: *mut ndb_builder,
   5806         id: *mut ::std::os::raw::c_uchar,
   5807     ) -> ::std::os::raw::c_int;
   5808 }
   5809 extern "C" {
   5810     pub fn ndb_filter_init(arg1: *mut ndb_filter) -> ::std::os::raw::c_int;
   5811 }
   5812 extern "C" {
   5813     #[doc = " Allocate a filter with a fixed sized buffer (where pages is number of 4096-byte sized blocks)\n You can set pages to 1 if you know you are constructing small filters"]
   5814     pub fn ndb_filter_init_with(
   5815         filter: *mut ndb_filter,
   5816         pages: ::std::os::raw::c_int,
   5817     ) -> ::std::os::raw::c_int;
   5818 }
   5819 extern "C" {
   5820     pub fn ndb_filter_add_id_element(
   5821         arg1: *mut ndb_filter,
   5822         id: *const ::std::os::raw::c_uchar,
   5823     ) -> ::std::os::raw::c_int;
   5824 }
   5825 extern "C" {
   5826     pub fn ndb_filter_add_int_element(arg1: *mut ndb_filter, integer: u64)
   5827         -> ::std::os::raw::c_int;
   5828 }
   5829 extern "C" {
   5830     pub fn ndb_filter_add_str_element(
   5831         arg1: *mut ndb_filter,
   5832         str_: *const ::std::os::raw::c_char,
   5833     ) -> ::std::os::raw::c_int;
   5834 }
   5835 extern "C" {
   5836     pub fn ndb_filter_add_custom_filter_element(
   5837         filter: *mut ndb_filter,
   5838         cb: ndb_filter_callback_fn,
   5839         ctx: *mut ::std::os::raw::c_void,
   5840     ) -> ::std::os::raw::c_int;
   5841 }
   5842 extern "C" {
   5843     pub fn ndb_filter_eq(arg1: *const ndb_filter, arg2: *const ndb_filter)
   5844         -> ::std::os::raw::c_int;
   5845 }
   5846 extern "C" {
   5847     #[doc = " is `a` a subset of `b`"]
   5848     pub fn ndb_filter_is_subset_of(
   5849         a: *const ndb_filter,
   5850         b: *const ndb_filter,
   5851     ) -> ::std::os::raw::c_int;
   5852 }
   5853 extern "C" {
   5854     pub fn ndb_filter_from_json(
   5855         arg1: *const ::std::os::raw::c_char,
   5856         len: ::std::os::raw::c_int,
   5857         filter: *mut ndb_filter,
   5858         buf: *mut ::std::os::raw::c_uchar,
   5859         bufsize: ::std::os::raw::c_int,
   5860     ) -> ::std::os::raw::c_int;
   5861 }
   5862 extern "C" {
   5863     pub fn ndb_filter_get_id_element(
   5864         arg1: *const ndb_filter,
   5865         arg2: *const ndb_filter_elements,
   5866         index: ::std::os::raw::c_int,
   5867     ) -> *mut ::std::os::raw::c_uchar;
   5868 }
   5869 extern "C" {
   5870     pub fn ndb_filter_get_string_element(
   5871         arg1: *const ndb_filter,
   5872         arg2: *const ndb_filter_elements,
   5873         index: ::std::os::raw::c_int,
   5874     ) -> *const ::std::os::raw::c_char;
   5875 }
   5876 extern "C" {
   5877     pub fn ndb_filter_get_int_element(
   5878         arg1: *const ndb_filter_elements,
   5879         index: ::std::os::raw::c_int,
   5880     ) -> u64;
   5881 }
   5882 extern "C" {
   5883     pub fn ndb_filter_get_int_element_ptr(
   5884         arg1: *mut ndb_filter_elements,
   5885         index: ::std::os::raw::c_int,
   5886     ) -> *mut u64;
   5887 }
   5888 extern "C" {
   5889     pub fn ndb_filter_current_element(arg1: *const ndb_filter) -> *mut ndb_filter_elements;
   5890 }
   5891 extern "C" {
   5892     pub fn ndb_filter_get_elements(
   5893         arg1: *const ndb_filter,
   5894         arg2: ::std::os::raw::c_int,
   5895     ) -> *mut ndb_filter_elements;
   5896 }
   5897 extern "C" {
   5898     pub fn ndb_filter_start_field(
   5899         arg1: *mut ndb_filter,
   5900         arg2: ndb_filter_fieldtype,
   5901     ) -> ::std::os::raw::c_int;
   5902 }
   5903 extern "C" {
   5904     pub fn ndb_filter_start_tag_field(
   5905         arg1: *mut ndb_filter,
   5906         tag: ::std::os::raw::c_char,
   5907     ) -> ::std::os::raw::c_int;
   5908 }
   5909 extern "C" {
   5910     pub fn ndb_filter_matches(arg1: *mut ndb_filter, arg2: *mut ndb_note) -> ::std::os::raw::c_int;
   5911 }
   5912 extern "C" {
   5913     pub fn ndb_filter_matches_with_relay(
   5914         arg1: *mut ndb_filter,
   5915         arg2: *mut ndb_note,
   5916         iter: *mut ndb_note_relay_iterator,
   5917     ) -> ::std::os::raw::c_int;
   5918 }
   5919 extern "C" {
   5920     pub fn ndb_filter_clone(dst: *mut ndb_filter, src: *mut ndb_filter) -> ::std::os::raw::c_int;
   5921 }
   5922 extern "C" {
   5923     pub fn ndb_filter_end(arg1: *mut ndb_filter) -> ::std::os::raw::c_int;
   5924 }
   5925 extern "C" {
   5926     pub fn ndb_filter_end_field(arg1: *mut ndb_filter);
   5927 }
   5928 extern "C" {
   5929     pub fn ndb_filter_destroy(arg1: *mut ndb_filter);
   5930 }
   5931 extern "C" {
   5932     pub fn ndb_filter_json(
   5933         arg1: *const ndb_filter,
   5934         buf: *mut ::std::os::raw::c_char,
   5935         buflen: ::std::os::raw::c_int,
   5936     ) -> ::std::os::raw::c_int;
   5937 }
   5938 extern "C" {
   5939     pub fn ndb_subscribe(
   5940         arg1: *mut ndb,
   5941         arg2: *mut ndb_filter,
   5942         num_filters: ::std::os::raw::c_int,
   5943     ) -> u64;
   5944 }
   5945 extern "C" {
   5946     pub fn ndb_wait_for_notes(
   5947         arg1: *mut ndb,
   5948         subid: u64,
   5949         note_ids: *mut u64,
   5950         note_id_capacity: ::std::os::raw::c_int,
   5951     ) -> ::std::os::raw::c_int;
   5952 }
   5953 extern "C" {
   5954     pub fn ndb_poll_for_notes(
   5955         arg1: *mut ndb,
   5956         subid: u64,
   5957         note_ids: *mut u64,
   5958         note_id_capacity: ::std::os::raw::c_int,
   5959     ) -> ::std::os::raw::c_int;
   5960 }
   5961 extern "C" {
   5962     pub fn ndb_unsubscribe(arg1: *mut ndb, subid: u64) -> ::std::os::raw::c_int;
   5963 }
   5964 extern "C" {
   5965     pub fn ndb_num_subscriptions(arg1: *mut ndb) -> ::std::os::raw::c_int;
   5966 }
   5967 extern "C" {
   5968     pub fn ndb_text_search(
   5969         txn: *mut ndb_txn,
   5970         query: *const ::std::os::raw::c_char,
   5971         arg1: *mut ndb_text_search_results,
   5972         arg2: *mut ndb_text_search_config,
   5973     ) -> ::std::os::raw::c_int;
   5974 }
   5975 extern "C" {
   5976     pub fn ndb_text_search_with(
   5977         txn: *mut ndb_txn,
   5978         query: *const ::std::os::raw::c_char,
   5979         arg1: *mut ndb_text_search_results,
   5980         arg2: *mut ndb_text_search_config,
   5981         filter: *mut ndb_filter,
   5982     ) -> ::std::os::raw::c_int;
   5983 }
   5984 extern "C" {
   5985     pub fn ndb_default_text_search_config(arg1: *mut ndb_text_search_config);
   5986 }
   5987 extern "C" {
   5988     pub fn ndb_text_search_config_set_order(
   5989         arg1: *mut ndb_text_search_config,
   5990         arg2: ndb_search_order,
   5991     );
   5992 }
   5993 extern "C" {
   5994     pub fn ndb_text_search_config_set_limit(
   5995         arg1: *mut ndb_text_search_config,
   5996         limit: ::std::os::raw::c_int,
   5997     );
   5998 }
   5999 extern "C" {
   6000     pub fn ndb_query(
   6001         txn: *mut ndb_txn,
   6002         filters: *mut ndb_filter,
   6003         num_filters: ::std::os::raw::c_int,
   6004         results: *mut ndb_query_result,
   6005         result_capacity: ::std::os::raw::c_int,
   6006         count: *mut ::std::os::raw::c_int,
   6007     ) -> ::std::os::raw::c_int;
   6008 }
   6009 extern "C" {
   6010     pub fn ndb_note_meta_builder_init(
   6011         builder: *mut ndb_note_meta_builder,
   6012         arg1: *mut ::std::os::raw::c_uchar,
   6013         arg2: usize,
   6014     ) -> ::std::os::raw::c_int;
   6015 }
   6016 extern "C" {
   6017     pub fn ndb_set_note_meta(
   6018         ndb: *mut ndb,
   6019         id: *const ::std::os::raw::c_uchar,
   6020         meta: *mut ndb_note_meta,
   6021     ) -> ::std::os::raw::c_int;
   6022 }
   6023 extern "C" {
   6024     pub fn ndb_note_meta_total_size(header: *mut ndb_note_meta) -> usize;
   6025 }
   6026 extern "C" {
   6027     pub fn ndb_get_note_meta(
   6028         txn: *mut ndb_txn,
   6029         id: *const ::std::os::raw::c_uchar,
   6030     ) -> *mut ndb_note_meta;
   6031 }
   6032 extern "C" {
   6033     pub fn ndb_note_meta_add_entry(builder: *mut ndb_note_meta_builder)
   6034         -> *mut ndb_note_meta_entry;
   6035 }
   6036 extern "C" {
   6037     pub fn ndb_note_meta_builder_find_entry(
   6038         builder: *mut ndb_note_meta_builder,
   6039         type_: u16,
   6040         payload: *mut u64,
   6041     ) -> *mut ndb_note_meta_entry;
   6042 }
   6043 extern "C" {
   6044     pub fn ndb_note_meta_entries(meta: *mut ndb_note_meta) -> *mut ndb_note_meta_entry;
   6045 }
   6046 extern "C" {
   6047     pub fn ndb_note_meta_entry_at(
   6048         meta: *mut ndb_note_meta,
   6049         ind: ::std::os::raw::c_int,
   6050     ) -> *mut ndb_note_meta_entry;
   6051 }
   6052 extern "C" {
   6053     pub fn ndb_note_meta_find_entry(
   6054         meta: *mut ndb_note_meta,
   6055         type_: u16,
   6056         payload: *mut u64,
   6057     ) -> *mut ndb_note_meta_entry;
   6058 }
   6059 extern "C" {
   6060     pub fn ndb_note_meta_counts_direct_replies(entry: *mut ndb_note_meta_entry) -> *mut u16;
   6061 }
   6062 extern "C" {
   6063     pub fn ndb_note_meta_counts_quotes(entry: *mut ndb_note_meta_entry) -> *mut u16;
   6064 }
   6065 extern "C" {
   6066     pub fn ndb_note_meta_counts_reposts(entry: *mut ndb_note_meta_entry) -> *mut u16;
   6067 }
   6068 extern "C" {
   6069     pub fn ndb_note_meta_entry_type(entry: *mut ndb_note_meta_entry) -> *mut u16;
   6070 }
   6071 extern "C" {
   6072     pub fn ndb_note_meta_entries_count(meta: *mut ndb_note_meta) -> u16;
   6073 }
   6074 extern "C" {
   6075     pub fn ndb_note_meta_counts_thread_replies(entry: *mut ndb_note_meta_entry) -> *mut u32;
   6076 }
   6077 extern "C" {
   6078     pub fn ndb_note_meta_counts_total_reactions(entry: *mut ndb_note_meta_entry) -> *mut u32;
   6079 }
   6080 extern "C" {
   6081     pub fn ndb_note_meta_reaction_count(entry: *mut ndb_note_meta_entry) -> *mut u32;
   6082 }
   6083 extern "C" {
   6084     pub fn ndb_note_meta_reaction_str(entry: *mut ndb_note_meta_entry) -> *mut ndb_reaction_str;
   6085 }
   6086 extern "C" {
   6087     pub fn ndb_note_meta_flags(meta: *mut ndb_note_meta) -> *mut u64;
   6088 }
   6089 extern "C" {
   6090     pub fn ndb_note_meta_build(builder: *mut ndb_note_meta_builder, meta: *mut *mut ndb_note_meta);
   6091 }
   6092 extern "C" {
   6093     pub fn ndb_note_meta_builder_resized(
   6094         builder: *mut ndb_note_meta_builder,
   6095         buf: *mut ::std::os::raw::c_uchar,
   6096         bufsize: usize,
   6097     );
   6098 }
   6099 extern "C" {
   6100     pub fn ndb_note_meta_counts_set(
   6101         entry: *mut ndb_note_meta_entry,
   6102         total_reactions: u32,
   6103         quotes: u16,
   6104         direct_replies: u16,
   6105         thread_replies: u32,
   6106         reposts: u16,
   6107     );
   6108 }
   6109 extern "C" {
   6110     pub fn ndb_note_meta_header_init(arg1: *mut ndb_note_meta);
   6111 }
   6112 extern "C" {
   6113     pub fn ndb_note_meta_reaction_set(
   6114         entry: *mut ndb_note_meta_entry,
   6115         count: u32,
   6116         str_: ndb_reaction_str,
   6117     );
   6118 }
   6119 extern "C" {
   6120     pub fn print_note_meta(meta: *mut ndb_note_meta);
   6121 }
   6122 extern "C" {
   6123     pub fn ndb_reaction_set(
   6124         reaction: *mut ndb_reaction_str,
   6125         str_: *const ::std::os::raw::c_char,
   6126     ) -> ::std::os::raw::c_int;
   6127 }
   6128 extern "C" {
   6129     pub fn ndb_reaction_str_is_emoji(arg1: ndb_reaction_str) -> ::std::os::raw::c_int;
   6130 }
   6131 extern "C" {
   6132     pub fn ndb_reaction_to_str(
   6133         str_: *mut ndb_reaction_str,
   6134         buf: *mut ::std::os::raw::c_char,
   6135     ) -> *const ::std::os::raw::c_char;
   6136 }
   6137 extern "C" {
   6138     pub fn ndb_stat(ndb: *mut ndb, stat: *mut ndb_stat) -> ::std::os::raw::c_int;
   6139 }
   6140 extern "C" {
   6141     pub fn ndb_stat_counts_init(counts: *mut ndb_stat_counts);
   6142 }
   6143 extern "C" {
   6144     pub fn ndb_note_content(note: *mut ndb_note) -> *const ::std::os::raw::c_char;
   6145 }
   6146 extern "C" {
   6147     pub fn ndb_note_str(note: *mut ndb_note, pstr: *mut ndb_packed_str) -> ndb_str;
   6148 }
   6149 extern "C" {
   6150     pub fn ndb_note_content_length(note: *mut ndb_note) -> u32;
   6151 }
   6152 extern "C" {
   6153     pub fn ndb_note_created_at(note: *mut ndb_note) -> u32;
   6154 }
   6155 extern "C" {
   6156     pub fn ndb_note_kind(note: *mut ndb_note) -> u32;
   6157 }
   6158 extern "C" {
   6159     pub fn ndb_note_id(note: *mut ndb_note) -> *mut ::std::os::raw::c_uchar;
   6160 }
   6161 extern "C" {
   6162     pub fn ndb_note_pubkey(note: *mut ndb_note) -> *mut ::std::os::raw::c_uchar;
   6163 }
   6164 extern "C" {
   6165     pub fn ndb_note_sig(note: *mut ndb_note) -> *mut ::std::os::raw::c_uchar;
   6166 }
   6167 extern "C" {
   6168     pub fn _ndb_note_set_kind(note: *mut ndb_note, kind: u32);
   6169 }
   6170 extern "C" {
   6171     pub fn ndb_note_tags(note: *mut ndb_note) -> *mut ndb_tags;
   6172 }
   6173 extern "C" {
   6174     pub fn ndb_str_len(str_: *mut ndb_str) -> ::std::os::raw::c_int;
   6175 }
   6176 extern "C" {
   6177     pub fn ndb_note_flags(arg1: *mut ndb_note) -> *mut u16;
   6178 }
   6179 extern "C" {
   6180     pub fn ndb_note_is_rumor(note: *mut ndb_note) -> ::std::os::raw::c_int;
   6181 }
   6182 extern "C" {
   6183     pub fn ndb_note_rumor_receiver_pubkey(note: *mut ndb_note) -> *mut ::std::os::raw::c_uchar;
   6184 }
   6185 extern "C" {
   6186     pub fn ndb_note_rumor_giftwrap_id(note: *mut ndb_note) -> *mut ::std::os::raw::c_uchar;
   6187 }
   6188 extern "C" {
   6189     #[doc = " write the note as json to a buffer"]
   6190     pub fn ndb_note_json(
   6191         arg1: *mut ndb_note,
   6192         buf: *mut ::std::os::raw::c_char,
   6193         buflen: ::std::os::raw::c_int,
   6194     ) -> ::std::os::raw::c_int;
   6195 }
   6196 extern "C" {
   6197     pub fn ndb_tags_iterate_start(note: *mut ndb_note, iter: *mut ndb_iterator);
   6198 }
   6199 extern "C" {
   6200     pub fn ndb_tags_count(arg1: *mut ndb_tags) -> u16;
   6201 }
   6202 extern "C" {
   6203     pub fn ndb_tag_count(arg1: *mut ndb_tag) -> u16;
   6204 }
   6205 extern "C" {
   6206     pub fn ndb_tags_iterate_next(iter: *mut ndb_iterator) -> ::std::os::raw::c_int;
   6207 }
   6208 extern "C" {
   6209     pub fn ndb_iter_tag_str(iter: *mut ndb_iterator, ind: ::std::os::raw::c_int) -> ndb_str;
   6210 }
   6211 extern "C" {
   6212     pub fn ndb_tag_str(
   6213         note: *mut ndb_note,
   6214         tag: *mut ndb_tag,
   6215         ind: ::std::os::raw::c_int,
   6216     ) -> ndb_str;
   6217 }
   6218 extern "C" {
   6219     pub fn ndb_note_relay_iterate_start(
   6220         txn: *mut ndb_txn,
   6221         iter: *mut ndb_note_relay_iterator,
   6222         note_key: u64,
   6223     ) -> ::std::os::raw::c_int;
   6224 }
   6225 extern "C" {
   6226     pub fn ndb_note_relay_iterate_next(
   6227         iter: *mut ndb_note_relay_iterator,
   6228     ) -> *const ::std::os::raw::c_char;
   6229 }
   6230 extern "C" {
   6231     pub fn ndb_note_relay_iterate_close(iter: *mut ndb_note_relay_iterator);
   6232 }
   6233 extern "C" {
   6234     pub fn ndb_db_name(db: ndb_dbs) -> *const ::std::os::raw::c_char;
   6235 }
   6236 extern "C" {
   6237     pub fn ndb_kind_name(ck: ndb_common_kind) -> *const ::std::os::raw::c_char;
   6238 }
   6239 extern "C" {
   6240     pub fn ndb_kind_to_common_kind(kind: ::std::os::raw::c_int) -> ndb_common_kind;
   6241 }
   6242 extern "C" {
   6243     pub fn ndb_parse_content(
   6244         buf: *mut ::std::os::raw::c_uchar,
   6245         buf_size: ::std::os::raw::c_int,
   6246         content: *const ::std::os::raw::c_char,
   6247         content_len: ::std::os::raw::c_int,
   6248         blocks_p: *mut *mut ndb_blocks,
   6249     ) -> ::std::os::raw::c_int;
   6250 }
   6251 extern "C" {
   6252     pub fn ndb_get_block_type(block: *mut ndb_block) -> ndb_block_type;
   6253 }
   6254 extern "C" {
   6255     pub fn ndb_blocks_flags(block: *mut ndb_blocks) -> ::std::os::raw::c_int;
   6256 }
   6257 extern "C" {
   6258     pub fn ndb_blocks_total_size(blocks: *mut ndb_blocks) -> usize;
   6259 }
   6260 extern "C" {
   6261     pub fn ndb_blocks_word_count(blocks: *mut ndb_blocks) -> ::std::os::raw::c_int;
   6262 }
   6263 extern "C" {
   6264     #[doc = " Free blocks if they are owned, safe to call on unowned blocks as well."]
   6265     pub fn ndb_blocks_free(blocks: *mut ndb_blocks);
   6266 }
   6267 extern "C" {
   6268     pub fn ndb_get_blocks_by_key(
   6269         ndb: *mut ndb,
   6270         txn: *mut ndb_txn,
   6271         note_key: u64,
   6272     ) -> *mut ndb_blocks;
   6273 }
   6274 extern "C" {
   6275     pub fn ndb_blocks_iterate_start(
   6276         arg1: *const ::std::os::raw::c_char,
   6277         arg2: *mut ndb_blocks,
   6278         arg3: *mut ndb_block_iterator,
   6279     );
   6280 }
   6281 extern "C" {
   6282     pub fn ndb_blocks_iterate_next(arg1: *mut ndb_block_iterator) -> *mut ndb_block;
   6283 }
   6284 extern "C" {
   6285     pub fn ndb_block_str(arg1: *mut ndb_block) -> *mut ndb_str_block;
   6286 }
   6287 extern "C" {
   6288     pub fn ndb_str_block_ptr(arg1: *mut ndb_str_block) -> *const ::std::os::raw::c_char;
   6289 }
   6290 extern "C" {
   6291     pub fn ndb_str_block_len(arg1: *mut ndb_str_block) -> u32;
   6292 }
   6293 extern "C" {
   6294     pub fn ndb_bech32_block(block: *mut ndb_block) -> *mut nostr_bech32;
   6295 }
   6296 pub const ndb_meta_clone_result_NDB_META_CLONE_FAILED: ndb_meta_clone_result = 0;
   6297 pub const ndb_meta_clone_result_NDB_META_CLONE_EXISTING_ENTRY: ndb_meta_clone_result = 1;
   6298 pub const ndb_meta_clone_result_NDB_META_CLONE_NEW_ENTRY: ndb_meta_clone_result = 2;
   6299 pub type ndb_meta_clone_result = ::std::os::raw::c_int;
   6300 extern "C" {
   6301     pub fn ndb_note_meta_clone_with_entry(
   6302         meta: *mut *mut ndb_note_meta,
   6303         entry: *mut *mut ndb_note_meta_entry,
   6304         type_: u16,
   6305         payload: *mut u64,
   6306         buf: *mut ::std::os::raw::c_uchar,
   6307         bufsize: usize,
   6308     ) -> ndb_meta_clone_result;
   6309 }
   6310 #[repr(C, packed)]
   6311 #[derive(Copy, Clone)]
   6312 pub struct ndb_note_meta_entry {
   6313     pub type_: u16,
   6314     pub aux2: ndb_note_meta_entry__bindgen_ty_1,
   6315     pub aux: ndb_note_meta_entry__bindgen_ty_2,
   6316     pub payload: ndb_note_meta_entry__bindgen_ty_3,
   6317 }
   6318 #[repr(C, packed)]
   6319 #[derive(Copy, Clone)]
   6320 pub union ndb_note_meta_entry__bindgen_ty_1 {
   6321     pub flags: u16,
   6322     pub reposts: u16,
   6323 }
   6324 #[test]
   6325 fn bindgen_test_layout_ndb_note_meta_entry__bindgen_ty_1() {
   6326     const UNINIT: ::std::mem::MaybeUninit<ndb_note_meta_entry__bindgen_ty_1> =
   6327         ::std::mem::MaybeUninit::uninit();
   6328     let ptr = UNINIT.as_ptr();
   6329     assert_eq!(
   6330         ::std::mem::size_of::<ndb_note_meta_entry__bindgen_ty_1>(),
   6331         2usize,
   6332         concat!("Size of: ", stringify!(ndb_note_meta_entry__bindgen_ty_1))
   6333     );
   6334     assert_eq!(
   6335         ::std::mem::align_of::<ndb_note_meta_entry__bindgen_ty_1>(),
   6336         1usize,
   6337         concat!(
   6338             "Alignment of ",
   6339             stringify!(ndb_note_meta_entry__bindgen_ty_1)
   6340         )
   6341     );
   6342     assert_eq!(
   6343         unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
   6344         0usize,
   6345         concat!(
   6346             "Offset of field: ",
   6347             stringify!(ndb_note_meta_entry__bindgen_ty_1),
   6348             "::",
   6349             stringify!(flags)
   6350         )
   6351     );
   6352     assert_eq!(
   6353         unsafe { ::std::ptr::addr_of!((*ptr).reposts) as usize - ptr as usize },
   6354         0usize,
   6355         concat!(
   6356             "Offset of field: ",
   6357             stringify!(ndb_note_meta_entry__bindgen_ty_1),
   6358             "::",
   6359             stringify!(reposts)
   6360         )
   6361     );
   6362 }
   6363 #[repr(C, packed)]
   6364 #[derive(Copy, Clone)]
   6365 pub union ndb_note_meta_entry__bindgen_ty_2 {
   6366     pub value: u32,
   6367     pub total_reactions: u32,
   6368 }
   6369 #[test]
   6370 fn bindgen_test_layout_ndb_note_meta_entry__bindgen_ty_2() {
   6371     const UNINIT: ::std::mem::MaybeUninit<ndb_note_meta_entry__bindgen_ty_2> =
   6372         ::std::mem::MaybeUninit::uninit();
   6373     let ptr = UNINIT.as_ptr();
   6374     assert_eq!(
   6375         ::std::mem::size_of::<ndb_note_meta_entry__bindgen_ty_2>(),
   6376         4usize,
   6377         concat!("Size of: ", stringify!(ndb_note_meta_entry__bindgen_ty_2))
   6378     );
   6379     assert_eq!(
   6380         ::std::mem::align_of::<ndb_note_meta_entry__bindgen_ty_2>(),
   6381         1usize,
   6382         concat!(
   6383             "Alignment of ",
   6384             stringify!(ndb_note_meta_entry__bindgen_ty_2)
   6385         )
   6386     );
   6387     assert_eq!(
   6388         unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
   6389         0usize,
   6390         concat!(
   6391             "Offset of field: ",
   6392             stringify!(ndb_note_meta_entry__bindgen_ty_2),
   6393             "::",
   6394             stringify!(value)
   6395         )
   6396     );
   6397     assert_eq!(
   6398         unsafe { ::std::ptr::addr_of!((*ptr).total_reactions) as usize - ptr as usize },
   6399         0usize,
   6400         concat!(
   6401             "Offset of field: ",
   6402             stringify!(ndb_note_meta_entry__bindgen_ty_2),
   6403             "::",
   6404             stringify!(total_reactions)
   6405         )
   6406     );
   6407 }
   6408 #[repr(C, packed)]
   6409 #[derive(Copy, Clone)]
   6410 pub union ndb_note_meta_entry__bindgen_ty_3 {
   6411     pub value: u64,
   6412     pub offset: ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_1,
   6413     pub counts: ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_2,
   6414     pub reaction_str: ndb_reaction_str,
   6415 }
   6416 #[repr(C, packed)]
   6417 #[derive(Debug, Copy, Clone)]
   6418 pub struct ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_1 {
   6419     pub offset: u32,
   6420     pub padding: u32,
   6421 }
   6422 #[test]
   6423 fn bindgen_test_layout_ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_1() {
   6424     const UNINIT: ::std::mem::MaybeUninit<ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_1> =
   6425         ::std::mem::MaybeUninit::uninit();
   6426     let ptr = UNINIT.as_ptr();
   6427     assert_eq!(
   6428         ::std::mem::size_of::<ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_1>(),
   6429         8usize,
   6430         concat!(
   6431             "Size of: ",
   6432             stringify!(ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_1)
   6433         )
   6434     );
   6435     assert_eq!(
   6436         ::std::mem::align_of::<ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_1>(),
   6437         1usize,
   6438         concat!(
   6439             "Alignment of ",
   6440             stringify!(ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_1)
   6441         )
   6442     );
   6443     assert_eq!(
   6444         unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
   6445         0usize,
   6446         concat!(
   6447             "Offset of field: ",
   6448             stringify!(ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_1),
   6449             "::",
   6450             stringify!(offset)
   6451         )
   6452     );
   6453     assert_eq!(
   6454         unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize },
   6455         4usize,
   6456         concat!(
   6457             "Offset of field: ",
   6458             stringify!(ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_1),
   6459             "::",
   6460             stringify!(padding)
   6461         )
   6462     );
   6463 }
   6464 #[repr(C, packed)]
   6465 #[derive(Debug, Copy, Clone)]
   6466 pub struct ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_2 {
   6467     pub direct_replies: u16,
   6468     pub quotes: u16,
   6469     pub thread_replies: u32,
   6470 }
   6471 #[test]
   6472 fn bindgen_test_layout_ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_2() {
   6473     const UNINIT: ::std::mem::MaybeUninit<ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_2> =
   6474         ::std::mem::MaybeUninit::uninit();
   6475     let ptr = UNINIT.as_ptr();
   6476     assert_eq!(
   6477         ::std::mem::size_of::<ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_2>(),
   6478         8usize,
   6479         concat!(
   6480             "Size of: ",
   6481             stringify!(ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_2)
   6482         )
   6483     );
   6484     assert_eq!(
   6485         ::std::mem::align_of::<ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_2>(),
   6486         1usize,
   6487         concat!(
   6488             "Alignment of ",
   6489             stringify!(ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_2)
   6490         )
   6491     );
   6492     assert_eq!(
   6493         unsafe { ::std::ptr::addr_of!((*ptr).direct_replies) as usize - ptr as usize },
   6494         0usize,
   6495         concat!(
   6496             "Offset of field: ",
   6497             stringify!(ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_2),
   6498             "::",
   6499             stringify!(direct_replies)
   6500         )
   6501     );
   6502     assert_eq!(
   6503         unsafe { ::std::ptr::addr_of!((*ptr).quotes) as usize - ptr as usize },
   6504         2usize,
   6505         concat!(
   6506             "Offset of field: ",
   6507             stringify!(ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_2),
   6508             "::",
   6509             stringify!(quotes)
   6510         )
   6511     );
   6512     assert_eq!(
   6513         unsafe { ::std::ptr::addr_of!((*ptr).thread_replies) as usize - ptr as usize },
   6514         4usize,
   6515         concat!(
   6516             "Offset of field: ",
   6517             stringify!(ndb_note_meta_entry__bindgen_ty_3__bindgen_ty_2),
   6518             "::",
   6519             stringify!(thread_replies)
   6520         )
   6521     );
   6522 }
   6523 #[test]
   6524 fn bindgen_test_layout_ndb_note_meta_entry__bindgen_ty_3() {
   6525     const UNINIT: ::std::mem::MaybeUninit<ndb_note_meta_entry__bindgen_ty_3> =
   6526         ::std::mem::MaybeUninit::uninit();
   6527     let ptr = UNINIT.as_ptr();
   6528     assert_eq!(
   6529         ::std::mem::size_of::<ndb_note_meta_entry__bindgen_ty_3>(),
   6530         8usize,
   6531         concat!("Size of: ", stringify!(ndb_note_meta_entry__bindgen_ty_3))
   6532     );
   6533     assert_eq!(
   6534         ::std::mem::align_of::<ndb_note_meta_entry__bindgen_ty_3>(),
   6535         1usize,
   6536         concat!(
   6537             "Alignment of ",
   6538             stringify!(ndb_note_meta_entry__bindgen_ty_3)
   6539         )
   6540     );
   6541     assert_eq!(
   6542         unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
   6543         0usize,
   6544         concat!(
   6545             "Offset of field: ",
   6546             stringify!(ndb_note_meta_entry__bindgen_ty_3),
   6547             "::",
   6548             stringify!(value)
   6549         )
   6550     );
   6551     assert_eq!(
   6552         unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
   6553         0usize,
   6554         concat!(
   6555             "Offset of field: ",
   6556             stringify!(ndb_note_meta_entry__bindgen_ty_3),
   6557             "::",
   6558             stringify!(offset)
   6559         )
   6560     );
   6561     assert_eq!(
   6562         unsafe { ::std::ptr::addr_of!((*ptr).counts) as usize - ptr as usize },
   6563         0usize,
   6564         concat!(
   6565             "Offset of field: ",
   6566             stringify!(ndb_note_meta_entry__bindgen_ty_3),
   6567             "::",
   6568             stringify!(counts)
   6569         )
   6570     );
   6571     assert_eq!(
   6572         unsafe { ::std::ptr::addr_of!((*ptr).reaction_str) as usize - ptr as usize },
   6573         0usize,
   6574         concat!(
   6575             "Offset of field: ",
   6576             stringify!(ndb_note_meta_entry__bindgen_ty_3),
   6577             "::",
   6578             stringify!(reaction_str)
   6579         )
   6580     );
   6581 }
   6582 #[test]
   6583 fn bindgen_test_layout_ndb_note_meta_entry() {
   6584     const UNINIT: ::std::mem::MaybeUninit<ndb_note_meta_entry> = ::std::mem::MaybeUninit::uninit();
   6585     let ptr = UNINIT.as_ptr();
   6586     assert_eq!(
   6587         ::std::mem::size_of::<ndb_note_meta_entry>(),
   6588         16usize,
   6589         concat!("Size of: ", stringify!(ndb_note_meta_entry))
   6590     );
   6591     assert_eq!(
   6592         ::std::mem::align_of::<ndb_note_meta_entry>(),
   6593         1usize,
   6594         concat!("Alignment of ", stringify!(ndb_note_meta_entry))
   6595     );
   6596     assert_eq!(
   6597         unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
   6598         0usize,
   6599         concat!(
   6600             "Offset of field: ",
   6601             stringify!(ndb_note_meta_entry),
   6602             "::",
   6603             stringify!(type_)
   6604         )
   6605     );
   6606     assert_eq!(
   6607         unsafe { ::std::ptr::addr_of!((*ptr).aux2) as usize - ptr as usize },
   6608         2usize,
   6609         concat!(
   6610             "Offset of field: ",
   6611             stringify!(ndb_note_meta_entry),
   6612             "::",
   6613             stringify!(aux2)
   6614         )
   6615     );
   6616     assert_eq!(
   6617         unsafe { ::std::ptr::addr_of!((*ptr).aux) as usize - ptr as usize },
   6618         4usize,
   6619         concat!(
   6620             "Offset of field: ",
   6621             stringify!(ndb_note_meta_entry),
   6622             "::",
   6623             stringify!(aux)
   6624         )
   6625     );
   6626     assert_eq!(
   6627         unsafe { ::std::ptr::addr_of!((*ptr).payload) as usize - ptr as usize },
   6628         8usize,
   6629         concat!(
   6630             "Offset of field: ",
   6631             stringify!(ndb_note_meta_entry),
   6632             "::",
   6633             stringify!(payload)
   6634         )
   6635     );
   6636 }
   6637 #[repr(C, packed)]
   6638 #[derive(Debug, Copy, Clone)]
   6639 pub struct ndb_note_meta {
   6640     pub version: u8,
   6641     pub padding: u8,
   6642     pub count: u16,
   6643     pub data_table_size: u32,
   6644     pub flags: u64,
   6645 }
   6646 #[test]
   6647 fn bindgen_test_layout_ndb_note_meta() {
   6648     const UNINIT: ::std::mem::MaybeUninit<ndb_note_meta> = ::std::mem::MaybeUninit::uninit();
   6649     let ptr = UNINIT.as_ptr();
   6650     assert_eq!(
   6651         ::std::mem::size_of::<ndb_note_meta>(),
   6652         16usize,
   6653         concat!("Size of: ", stringify!(ndb_note_meta))
   6654     );
   6655     assert_eq!(
   6656         ::std::mem::align_of::<ndb_note_meta>(),
   6657         1usize,
   6658         concat!("Alignment of ", stringify!(ndb_note_meta))
   6659     );
   6660     assert_eq!(
   6661         unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
   6662         0usize,
   6663         concat!(
   6664             "Offset of field: ",
   6665             stringify!(ndb_note_meta),
   6666             "::",
   6667             stringify!(version)
   6668         )
   6669     );
   6670     assert_eq!(
   6671         unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize },
   6672         1usize,
   6673         concat!(
   6674             "Offset of field: ",
   6675             stringify!(ndb_note_meta),
   6676             "::",
   6677             stringify!(padding)
   6678         )
   6679     );
   6680     assert_eq!(
   6681         unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize },
   6682         2usize,
   6683         concat!(
   6684             "Offset of field: ",
   6685             stringify!(ndb_note_meta),
   6686             "::",
   6687             stringify!(count)
   6688         )
   6689     );
   6690     assert_eq!(
   6691         unsafe { ::std::ptr::addr_of!((*ptr).data_table_size) as usize - ptr as usize },
   6692         4usize,
   6693         concat!(
   6694             "Offset of field: ",
   6695             stringify!(ndb_note_meta),
   6696             "::",
   6697             stringify!(data_table_size)
   6698         )
   6699     );
   6700     assert_eq!(
   6701         unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
   6702         8usize,
   6703         concat!(
   6704             "Offset of field: ",
   6705             stringify!(ndb_note_meta),
   6706             "::",
   6707             stringify!(flags)
   6708         )
   6709     );
   6710 }
   6711 pub const ndb_note_meta_flags_NDB_NOTE_META_FLAG_DELETED: ndb_note_meta_flags = 0;
   6712 pub const ndb_note_meta_flags_NDB_NOTE_META_FLAG_SEEN: ndb_note_meta_flags = 2;
   6713 pub type ndb_note_meta_flags = ::std::os::raw::c_int;
   6714 #[repr(C)]
   6715 #[derive(Debug, Copy, Clone)]
   6716 pub struct __crt_locale_data {
   6717     pub _address: u8,
   6718 }
   6719 #[repr(C)]
   6720 #[derive(Debug, Copy, Clone)]
   6721 pub struct __crt_multibyte_data {
   6722     pub _address: u8,
   6723 }
   6724 pub type __builtin_va_list = *mut ::std::os::raw::c_char;