/* automatically generated by rust-bindgen 0.69.4 */

#[repr(C)]
#[derive(Default)]
pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
impl<T> __IncompleteArrayField<T> {
    #[inline]
    pub const fn new() -> Self {
        __IncompleteArrayField(::std::marker::PhantomData, [])
    }
    #[inline]
    pub fn as_ptr(&self) -> *const T {
        self as *const _ as *const T
    }
    #[inline]
    pub fn as_mut_ptr(&mut self) -> *mut T {
        self as *mut _ as *mut T
    }
    #[inline]
    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
        ::std::slice::from_raw_parts(self.as_ptr(), len)
    }
    #[inline]
    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
        ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
    }
}
impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        fmt.write_str("__IncompleteArrayField")
    }
}
pub const _VCRT_COMPILER_PREPROCESSOR: u32 = 1;
pub const _SAL_VERSION: u32 = 20;
pub const __SAL_H_VERSION: u32 = 180000000;
pub const _USE_DECLSPECS_FOR_SAL: u32 = 0;
pub const _USE_ATTRIBUTES_FOR_SAL: u32 = 0;
pub const _CRT_PACKING: u32 = 8;
pub const _HAS_EXCEPTIONS: u32 = 1;
pub const _STL_LANG: u32 = 0;
pub const _HAS_CXX17: u32 = 0;
pub const _HAS_CXX20: u32 = 0;
pub const _HAS_CXX23: u32 = 0;
pub const _HAS_NODISCARD: u32 = 0;
pub const _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE: u32 = 1;
pub const _CRT_BUILD_DESKTOP_APP: u32 = 1;
pub const _ARGMAX: u32 = 100;
pub const _CRT_INT_MAX: u32 = 2147483647;
pub const _CRT_FUNCTIONS_REQUIRED: u32 = 1;
pub const _CRT_HAS_CXX17: u32 = 0;
pub const _CRT_HAS_C11: u32 = 1;
pub const _CRT_INTERNAL_NONSTDC_NAMES: u32 = 1;
pub const __STDC_SECURE_LIB__: u32 = 200411;
pub const __GOT_SECURE_LIB__: u32 = 200411;
pub const __STDC_WANT_SECURE_LIB__: u32 = 1;
pub const _SECURECRT_FILL_BUFFER_PATTERN: u32 = 254;
pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES: u32 = 0;
pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT: u32 = 0;
pub const _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES: u32 = 1;
pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY: u32 = 0;
pub const _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY: u32 = 0;
pub const WCHAR_MIN: u32 = 0;
pub const WCHAR_MAX: u32 = 65535;
pub const WINT_MIN: u32 = 0;
pub const WINT_MAX: u32 = 65535;
pub const PRId8: &[u8; 4] = b"hhd\0";
pub const PRId16: &[u8; 3] = b"hd\0";
pub const PRId32: &[u8; 2] = b"d\0";
pub const PRId64: &[u8; 4] = b"lld\0";
pub const PRIdLEAST8: &[u8; 4] = b"hhd\0";
pub const PRIdLEAST16: &[u8; 3] = b"hd\0";
pub const PRIdLEAST32: &[u8; 2] = b"d\0";
pub const PRIdLEAST64: &[u8; 4] = b"lld\0";
pub const PRIdFAST8: &[u8; 4] = b"hhd\0";
pub const PRIdFAST16: &[u8; 2] = b"d\0";
pub const PRIdFAST32: &[u8; 2] = b"d\0";
pub const PRIdFAST64: &[u8; 4] = b"lld\0";
pub const PRIdMAX: &[u8; 4] = b"lld\0";
pub const PRIdPTR: &[u8; 4] = b"lld\0";
pub const PRIi8: &[u8; 4] = b"hhi\0";
pub const PRIi16: &[u8; 3] = b"hi\0";
pub const PRIi32: &[u8; 2] = b"i\0";
pub const PRIi64: &[u8; 4] = b"lli\0";
pub const PRIiLEAST8: &[u8; 4] = b"hhi\0";
pub const PRIiLEAST16: &[u8; 3] = b"hi\0";
pub const PRIiLEAST32: &[u8; 2] = b"i\0";
pub const PRIiLEAST64: &[u8; 4] = b"lli\0";
pub const PRIiFAST8: &[u8; 4] = b"hhi\0";
pub const PRIiFAST16: &[u8; 2] = b"i\0";
pub const PRIiFAST32: &[u8; 2] = b"i\0";
pub const PRIiFAST64: &[u8; 4] = b"lli\0";
pub const PRIiMAX: &[u8; 4] = b"lli\0";
pub const PRIiPTR: &[u8; 4] = b"lli\0";
pub const PRIo8: &[u8; 4] = b"hho\0";
pub const PRIo16: &[u8; 3] = b"ho\0";
pub const PRIo32: &[u8; 2] = b"o\0";
pub const PRIo64: &[u8; 4] = b"llo\0";
pub const PRIoLEAST8: &[u8; 4] = b"hho\0";
pub const PRIoLEAST16: &[u8; 3] = b"ho\0";
pub const PRIoLEAST32: &[u8; 2] = b"o\0";
pub const PRIoLEAST64: &[u8; 4] = b"llo\0";
pub const PRIoFAST8: &[u8; 4] = b"hho\0";
pub const PRIoFAST16: &[u8; 2] = b"o\0";
pub const PRIoFAST32: &[u8; 2] = b"o\0";
pub const PRIoFAST64: &[u8; 4] = b"llo\0";
pub const PRIoMAX: &[u8; 4] = b"llo\0";
pub const PRIoPTR: &[u8; 4] = b"llo\0";
pub const PRIu8: &[u8; 4] = b"hhu\0";
pub const PRIu16: &[u8; 3] = b"hu\0";
pub const PRIu32: &[u8; 2] = b"u\0";
pub const PRIu64: &[u8; 4] = b"llu\0";
pub const PRIuLEAST8: &[u8; 4] = b"hhu\0";
pub const PRIuLEAST16: &[u8; 3] = b"hu\0";
pub const PRIuLEAST32: &[u8; 2] = b"u\0";
pub const PRIuLEAST64: &[u8; 4] = b"llu\0";
pub const PRIuFAST8: &[u8; 4] = b"hhu\0";
pub const PRIuFAST16: &[u8; 2] = b"u\0";
pub const PRIuFAST32: &[u8; 2] = b"u\0";
pub const PRIuFAST64: &[u8; 4] = b"llu\0";
pub const PRIuMAX: &[u8; 4] = b"llu\0";
pub const PRIuPTR: &[u8; 4] = b"llu\0";
pub const PRIx8: &[u8; 4] = b"hhx\0";
pub const PRIx16: &[u8; 3] = b"hx\0";
pub const PRIx32: &[u8; 2] = b"x\0";
pub const PRIx64: &[u8; 4] = b"llx\0";
pub const PRIxLEAST8: &[u8; 4] = b"hhx\0";
pub const PRIxLEAST16: &[u8; 3] = b"hx\0";
pub const PRIxLEAST32: &[u8; 2] = b"x\0";
pub const PRIxLEAST64: &[u8; 4] = b"llx\0";
pub const PRIxFAST8: &[u8; 4] = b"hhx\0";
pub const PRIxFAST16: &[u8; 2] = b"x\0";
pub const PRIxFAST32: &[u8; 2] = b"x\0";
pub const PRIxFAST64: &[u8; 4] = b"llx\0";
pub const PRIxMAX: &[u8; 4] = b"llx\0";
pub const PRIxPTR: &[u8; 4] = b"llx\0";
pub const PRIX8: &[u8; 4] = b"hhX\0";
pub const PRIX16: &[u8; 3] = b"hX\0";
pub const PRIX32: &[u8; 2] = b"X\0";
pub const PRIX64: &[u8; 4] = b"llX\0";
pub const PRIXLEAST8: &[u8; 4] = b"hhX\0";
pub const PRIXLEAST16: &[u8; 3] = b"hX\0";
pub const PRIXLEAST32: &[u8; 2] = b"X\0";
pub const PRIXLEAST64: &[u8; 4] = b"llX\0";
pub const PRIXFAST8: &[u8; 4] = b"hhX\0";
pub const PRIXFAST16: &[u8; 2] = b"X\0";
pub const PRIXFAST32: &[u8; 2] = b"X\0";
pub const PRIXFAST64: &[u8; 4] = b"llX\0";
pub const PRIXMAX: &[u8; 4] = b"llX\0";
pub const PRIXPTR: &[u8; 4] = b"llX\0";
pub const SCNd8: &[u8; 4] = b"hhd\0";
pub const SCNd16: &[u8; 3] = b"hd\0";
pub const SCNd32: &[u8; 2] = b"d\0";
pub const SCNd64: &[u8; 4] = b"lld\0";
pub const SCNdLEAST8: &[u8; 4] = b"hhd\0";
pub const SCNdLEAST16: &[u8; 3] = b"hd\0";
pub const SCNdLEAST32: &[u8; 2] = b"d\0";
pub const SCNdLEAST64: &[u8; 4] = b"lld\0";
pub const SCNdFAST8: &[u8; 4] = b"hhd\0";
pub const SCNdFAST16: &[u8; 2] = b"d\0";
pub const SCNdFAST32: &[u8; 2] = b"d\0";
pub const SCNdFAST64: &[u8; 4] = b"lld\0";
pub const SCNdMAX: &[u8; 4] = b"lld\0";
pub const SCNdPTR: &[u8; 4] = b"lld\0";
pub const SCNi8: &[u8; 4] = b"hhi\0";
pub const SCNi16: &[u8; 3] = b"hi\0";
pub const SCNi32: &[u8; 2] = b"i\0";
pub const SCNi64: &[u8; 4] = b"lli\0";
pub const SCNiLEAST8: &[u8; 4] = b"hhi\0";
pub const SCNiLEAST16: &[u8; 3] = b"hi\0";
pub const SCNiLEAST32: &[u8; 2] = b"i\0";
pub const SCNiLEAST64: &[u8; 4] = b"lli\0";
pub const SCNiFAST8: &[u8; 4] = b"hhi\0";
pub const SCNiFAST16: &[u8; 2] = b"i\0";
pub const SCNiFAST32: &[u8; 2] = b"i\0";
pub const SCNiFAST64: &[u8; 4] = b"lli\0";
pub const SCNiMAX: &[u8; 4] = b"lli\0";
pub const SCNiPTR: &[u8; 4] = b"lli\0";
pub const SCNo8: &[u8; 4] = b"hho\0";
pub const SCNo16: &[u8; 3] = b"ho\0";
pub const SCNo32: &[u8; 2] = b"o\0";
pub const SCNo64: &[u8; 4] = b"llo\0";
pub const SCNoLEAST8: &[u8; 4] = b"hho\0";
pub const SCNoLEAST16: &[u8; 3] = b"ho\0";
pub const SCNoLEAST32: &[u8; 2] = b"o\0";
pub const SCNoLEAST64: &[u8; 4] = b"llo\0";
pub const SCNoFAST8: &[u8; 4] = b"hho\0";
pub const SCNoFAST16: &[u8; 2] = b"o\0";
pub const SCNoFAST32: &[u8; 2] = b"o\0";
pub const SCNoFAST64: &[u8; 4] = b"llo\0";
pub const SCNoMAX: &[u8; 4] = b"llo\0";
pub const SCNoPTR: &[u8; 4] = b"llo\0";
pub const SCNu8: &[u8; 4] = b"hhu\0";
pub const SCNu16: &[u8; 3] = b"hu\0";
pub const SCNu32: &[u8; 2] = b"u\0";
pub const SCNu64: &[u8; 4] = b"llu\0";
pub const SCNuLEAST8: &[u8; 4] = b"hhu\0";
pub const SCNuLEAST16: &[u8; 3] = b"hu\0";
pub const SCNuLEAST32: &[u8; 2] = b"u\0";
pub const SCNuLEAST64: &[u8; 4] = b"llu\0";
pub const SCNuFAST8: &[u8; 4] = b"hhu\0";
pub const SCNuFAST16: &[u8; 2] = b"u\0";
pub const SCNuFAST32: &[u8; 2] = b"u\0";
pub const SCNuFAST64: &[u8; 4] = b"llu\0";
pub const SCNuMAX: &[u8; 4] = b"llu\0";
pub const SCNuPTR: &[u8; 4] = b"llu\0";
pub const SCNx8: &[u8; 4] = b"hhx\0";
pub const SCNx16: &[u8; 3] = b"hx\0";
pub const SCNx32: &[u8; 2] = b"x\0";
pub const SCNx64: &[u8; 4] = b"llx\0";
pub const SCNxLEAST8: &[u8; 4] = b"hhx\0";
pub const SCNxLEAST16: &[u8; 3] = b"hx\0";
pub const SCNxLEAST32: &[u8; 2] = b"x\0";
pub const SCNxLEAST64: &[u8; 4] = b"llx\0";
pub const SCNxFAST8: &[u8; 4] = b"hhx\0";
pub const SCNxFAST16: &[u8; 2] = b"x\0";
pub const SCNxFAST32: &[u8; 2] = b"x\0";
pub const SCNxFAST64: &[u8; 4] = b"llx\0";
pub const SCNxMAX: &[u8; 4] = b"llx\0";
pub const SCNxPTR: &[u8; 4] = b"llx\0";
pub const CCAN_COMPILER: &[u8; 3] = b"cc\0";
pub const CCAN_CFLAGS : & [u8 ; 111] = b"-g3 -ggdb -Wall -Wundef -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wold-style-definition\0" ;
pub const CCAN_OUTPUT_EXE_CFLAG: &[u8; 3] = b"-o\0";
pub const HAVE_CCAN: u32 = 1;
pub const HAVE_UNALIGNED_ACCESS: u32 = 1;
pub const HAVE_TYPEOF: u32 = 1;
pub const HAVE_BIG_ENDIAN: u32 = 0;
pub const HAVE_BYTESWAP_H: u32 = 0;
pub const HAVE_BSWAP_64: u32 = 0;
pub const HAVE_LITTLE_ENDIAN: u32 = 1;
pub const __bool_true_false_are_defined: u32 = 1;
pub const false_: u32 = 0;
pub const true_: u32 = 1;
pub const _CRT_INTERNAL_STDIO_SYMBOL_PREFIX: &[u8; 1] = b"\0";
pub const _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION: u32 = 1;
pub const _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR: u32 = 2;
pub const _CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS: u32 = 4;
pub const _CRT_INTERNAL_PRINTF_LEGACY_MSVCRT_COMPATIBILITY: u32 = 8;
pub const _CRT_INTERNAL_PRINTF_LEGACY_THREE_DIGIT_EXPONENTS: u32 = 16;
pub const _CRT_INTERNAL_PRINTF_STANDARD_ROUNDING: u32 = 32;
pub const _CRT_INTERNAL_SCANF_SECURECRT: u32 = 1;
pub const _CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS: u32 = 2;
pub const _CRT_INTERNAL_SCANF_LEGACY_MSVCRT_COMPATIBILITY: u32 = 4;
pub const BUFSIZ: u32 = 512;
pub const _NSTREAM_: u32 = 512;
pub const _IOB_ENTRIES: u32 = 3;
pub const EOF: i32 = -1;
pub const _IOFBF: u32 = 0;
pub const _IOLBF: u32 = 64;
pub const _IONBF: u32 = 4;
pub const L_tmpnam: u32 = 260;
pub const L_tmpnam_s: u32 = 260;
pub const SEEK_CUR: u32 = 1;
pub const SEEK_END: u32 = 2;
pub const SEEK_SET: u32 = 0;
pub const FILENAME_MAX: u32 = 260;
pub const FOPEN_MAX: u32 = 20;
pub const _SYS_OPEN: u32 = 20;
pub const TMP_MAX: u32 = 2147483647;
pub const TMP_MAX_S: u32 = 2147483647;
pub const _TMP_MAX_S: u32 = 2147483647;
pub const SYS_OPEN: u32 = 20;
pub const _UPPER: u32 = 1;
pub const _LOWER: u32 = 2;
pub const _DIGIT: u32 = 4;
pub const _SPACE: u32 = 8;
pub const _PUNCT: u32 = 16;
pub const _CONTROL: u32 = 32;
pub const _BLANK: u32 = 64;
pub const _HEX: u32 = 128;
pub const _LEADBYTE: u32 = 32768;
pub const _ALPHA: u32 = 259;
pub const EPERM: u32 = 1;
pub const ENOENT: u32 = 2;
pub const ESRCH: u32 = 3;
pub const EINTR: u32 = 4;
pub const EIO: u32 = 5;
pub const ENXIO: u32 = 6;
pub const E2BIG: u32 = 7;
pub const ENOEXEC: u32 = 8;
pub const EBADF: u32 = 9;
pub const ECHILD: u32 = 10;
pub const EAGAIN: u32 = 11;
pub const ENOMEM: u32 = 12;
pub const EACCES: u32 = 13;
pub const EFAULT: u32 = 14;
pub const EBUSY: u32 = 16;
pub const EEXIST: u32 = 17;
pub const EXDEV: u32 = 18;
pub const ENODEV: u32 = 19;
pub const ENOTDIR: u32 = 20;
pub const EISDIR: u32 = 21;
pub const ENFILE: u32 = 23;
pub const EMFILE: u32 = 24;
pub const ENOTTY: u32 = 25;
pub const EFBIG: u32 = 27;
pub const ENOSPC: u32 = 28;
pub const ESPIPE: u32 = 29;
pub const EROFS: u32 = 30;
pub const EMLINK: u32 = 31;
pub const EPIPE: u32 = 32;
pub const EDOM: u32 = 33;
pub const EDEADLK: u32 = 36;
pub const ENAMETOOLONG: u32 = 38;
pub const ENOLCK: u32 = 39;
pub const ENOSYS: u32 = 40;
pub const ENOTEMPTY: u32 = 41;
pub const EINVAL: u32 = 22;
pub const ERANGE: u32 = 34;
pub const EILSEQ: u32 = 42;
pub const STRUNCATE: u32 = 80;
pub const EDEADLOCK: u32 = 36;
pub const EADDRINUSE: u32 = 100;
pub const EADDRNOTAVAIL: u32 = 101;
pub const EAFNOSUPPORT: u32 = 102;
pub const EALREADY: u32 = 103;
pub const EBADMSG: u32 = 104;
pub const ECANCELED: u32 = 105;
pub const ECONNABORTED: u32 = 106;
pub const ECONNREFUSED: u32 = 107;
pub const ECONNRESET: u32 = 108;
pub const EDESTADDRREQ: u32 = 109;
pub const EHOSTUNREACH: u32 = 110;
pub const EIDRM: u32 = 111;
pub const EINPROGRESS: u32 = 112;
pub const EISCONN: u32 = 113;
pub const ELOOP: u32 = 114;
pub const EMSGSIZE: u32 = 115;
pub const ENETDOWN: u32 = 116;
pub const ENETRESET: u32 = 117;
pub const ENETUNREACH: u32 = 118;
pub const ENOBUFS: u32 = 119;
pub const ENODATA: u32 = 120;
pub const ENOLINK: u32 = 121;
pub const ENOMSG: u32 = 122;
pub const ENOPROTOOPT: u32 = 123;
pub const ENOSR: u32 = 124;
pub const ENOSTR: u32 = 125;
pub const ENOTCONN: u32 = 126;
pub const ENOTRECOVERABLE: u32 = 127;
pub const ENOTSOCK: u32 = 128;
pub const ENOTSUP: u32 = 129;
pub const EOPNOTSUPP: u32 = 130;
pub const EOTHER: u32 = 131;
pub const EOVERFLOW: u32 = 132;
pub const EOWNERDEAD: u32 = 133;
pub const EPROTO: u32 = 134;
pub const EPROTONOSUPPORT: u32 = 135;
pub const EPROTOTYPE: u32 = 136;
pub const ETIME: u32 = 137;
pub const ETIMEDOUT: u32 = 138;
pub const ETXTBSY: u32 = 139;
pub const EWOULDBLOCK: u32 = 140;
pub const _NLSCMPERROR: u32 = 2147483647;
pub const NDB_PACKED_STR: u32 = 1;
pub const NDB_PACKED_ID: u32 = 2;
pub const NDB_FLAG_NOMIGRATE: u32 = 1;
pub const NDB_FLAG_SKIP_NOTE_VERIFY: u32 = 2;
pub const NDB_NUM_FILTERS: u32 = 7;
pub const MAX_TEXT_SEARCH_RESULTS: u32 = 128;
pub const MAX_TEXT_SEARCH_WORDS: u32 = 8;
pub const NDB_NUM_BLOCK_TYPES: u32 = 6;
pub const NDB_MAX_RELAYS: u32 = 24;
pub const NOSTR_BECH32_KNOWN_TYPES: u32 = 7;
pub type va_list = *mut ::std::os::raw::c_char;
extern "C" {
    pub fn __va_start(arg1: *mut *mut ::std::os::raw::c_char, ...);
}
pub type __vcrt_bool = bool;
pub type wchar_t = ::std::os::raw::c_ushort;
extern "C" {
    pub fn __security_init_cookie();
}
extern "C" {
    pub fn __security_check_cookie(_StackCookie: usize);
}
extern "C" {
    pub fn __report_gsfailure(_StackCookie: usize) -> !;
}
extern "C" {
    pub static mut __security_cookie: usize;
}
pub type __crt_bool = bool;
extern "C" {
    pub fn _invalid_parameter_noinfo();
}
extern "C" {
    pub fn _invalid_parameter_noinfo_noreturn() -> !;
}
extern "C" {
    pub fn _invoke_watson(
        _Expression: *const wchar_t,
        _FunctionName: *const wchar_t,
        _FileName: *const wchar_t,
        _LineNo: ::std::os::raw::c_uint,
        _Reserved: usize,
    ) -> !;
}
pub type errno_t = ::std::os::raw::c_int;
pub type wint_t = ::std::os::raw::c_ushort;
pub type wctype_t = ::std::os::raw::c_ushort;
pub type __time32_t = ::std::os::raw::c_long;
pub type __time64_t = ::std::os::raw::c_longlong;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __crt_locale_data_public {
    pub _locale_pctype: *const ::std::os::raw::c_ushort,
    pub _locale_mb_cur_max: ::std::os::raw::c_int,
    pub _locale_lc_codepage: ::std::os::raw::c_uint,
}
#[test]
fn bindgen_test_layout___crt_locale_data_public() {
    const UNINIT: ::std::mem::MaybeUninit<__crt_locale_data_public> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__crt_locale_data_public>(),
        16usize,
        concat!("Size of: ", stringify!(__crt_locale_data_public))
    );
    assert_eq!(
        ::std::mem::align_of::<__crt_locale_data_public>(),
        8usize,
        concat!("Alignment of ", stringify!(__crt_locale_data_public))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._locale_pctype) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__crt_locale_data_public),
            "::",
            stringify!(_locale_pctype)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._locale_mb_cur_max) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__crt_locale_data_public),
            "::",
            stringify!(_locale_mb_cur_max)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._locale_lc_codepage) as usize - ptr as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(__crt_locale_data_public),
            "::",
            stringify!(_locale_lc_codepage)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __crt_locale_pointers {
    pub locinfo: *mut __crt_locale_data,
    pub mbcinfo: *mut __crt_multibyte_data,
}
#[test]
fn bindgen_test_layout___crt_locale_pointers() {
    const UNINIT: ::std::mem::MaybeUninit<__crt_locale_pointers> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__crt_locale_pointers>(),
        16usize,
        concat!("Size of: ", stringify!(__crt_locale_pointers))
    );
    assert_eq!(
        ::std::mem::align_of::<__crt_locale_pointers>(),
        8usize,
        concat!("Alignment of ", stringify!(__crt_locale_pointers))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).locinfo) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__crt_locale_pointers),
            "::",
            stringify!(locinfo)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mbcinfo) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__crt_locale_pointers),
            "::",
            stringify!(mbcinfo)
        )
    );
}
pub type _locale_t = *mut __crt_locale_pointers;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _Mbstatet {
    pub _Wchar: ::std::os::raw::c_ulong,
    pub _Byte: ::std::os::raw::c_ushort,
    pub _State: ::std::os::raw::c_ushort,
}
#[test]
fn bindgen_test_layout__Mbstatet() {
    const UNINIT: ::std::mem::MaybeUninit<_Mbstatet> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<_Mbstatet>(),
        8usize,
        concat!("Size of: ", stringify!(_Mbstatet))
    );
    assert_eq!(
        ::std::mem::align_of::<_Mbstatet>(),
        4usize,
        concat!("Alignment of ", stringify!(_Mbstatet))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._Wchar) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_Mbstatet),
            "::",
            stringify!(_Wchar)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._Byte) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_Mbstatet),
            "::",
            stringify!(_Byte)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._State) as usize - ptr as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_Mbstatet),
            "::",
            stringify!(_State)
        )
    );
}
pub type mbstate_t = _Mbstatet;
pub type time_t = __time64_t;
pub type rsize_t = usize;
pub type int_least8_t = ::std::os::raw::c_schar;
pub type int_least16_t = ::std::os::raw::c_short;
pub type int_least32_t = ::std::os::raw::c_int;
pub type int_least64_t = ::std::os::raw::c_longlong;
pub type uint_least8_t = ::std::os::raw::c_uchar;
pub type uint_least16_t = ::std::os::raw::c_ushort;
pub type uint_least32_t = ::std::os::raw::c_uint;
pub type uint_least64_t = ::std::os::raw::c_ulonglong;
pub type int_fast8_t = ::std::os::raw::c_schar;
pub type int_fast16_t = ::std::os::raw::c_int;
pub type int_fast32_t = ::std::os::raw::c_int;
pub type int_fast64_t = ::std::os::raw::c_longlong;
pub type uint_fast8_t = ::std::os::raw::c_uchar;
pub type uint_fast16_t = ::std::os::raw::c_uint;
pub type uint_fast32_t = ::std::os::raw::c_uint;
pub type uint_fast64_t = ::std::os::raw::c_ulonglong;
pub type intmax_t = ::std::os::raw::c_longlong;
pub type uintmax_t = ::std::os::raw::c_ulonglong;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _Lldiv_t {
    pub quot: intmax_t,
    pub rem: intmax_t,
}
#[test]
fn bindgen_test_layout__Lldiv_t() {
    const UNINIT: ::std::mem::MaybeUninit<_Lldiv_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<_Lldiv_t>(),
        16usize,
        concat!("Size of: ", stringify!(_Lldiv_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_Lldiv_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_Lldiv_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_Lldiv_t),
            "::",
            stringify!(quot)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_Lldiv_t),
            "::",
            stringify!(rem)
        )
    );
}
pub type imaxdiv_t = _Lldiv_t;
extern "C" {
    pub fn imaxabs(_Number: intmax_t) -> intmax_t;
}
extern "C" {
    pub fn imaxdiv(_Numerator: intmax_t, _Denominator: intmax_t) -> imaxdiv_t;
}
extern "C" {
    pub fn strtoimax(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> intmax_t;
}
extern "C" {
    pub fn _strtoimax_l(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> intmax_t;
}
extern "C" {
    pub fn strtoumax(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> uintmax_t;
}
extern "C" {
    pub fn _strtoumax_l(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> uintmax_t;
}
extern "C" {
    pub fn wcstoimax(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> intmax_t;
}
extern "C" {
    pub fn _wcstoimax_l(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> intmax_t;
}
extern "C" {
    pub fn wcstoumax(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> uintmax_t;
}
extern "C" {
    pub fn _wcstoumax_l(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> uintmax_t;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _iobuf {
    pub _Placeholder: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__iobuf() {
    const UNINIT: ::std::mem::MaybeUninit<_iobuf> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<_iobuf>(),
        8usize,
        concat!("Size of: ", stringify!(_iobuf))
    );
    assert_eq!(
        ::std::mem::align_of::<_iobuf>(),
        8usize,
        concat!("Alignment of ", stringify!(_iobuf))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._Placeholder) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_iobuf),
            "::",
            stringify!(_Placeholder)
        )
    );
}
pub type FILE = _iobuf;
extern "C" {
    pub fn __acrt_iob_func(_Ix: ::std::os::raw::c_uint) -> *mut FILE;
}
extern "C" {
    pub fn fgetwc(_Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _fgetwchar() -> wint_t;
}
extern "C" {
    pub fn fputwc(_Character: wchar_t, _Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _fputwchar(_Character: wchar_t) -> wint_t;
}
extern "C" {
    pub fn getwc(_Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn getwchar() -> wint_t;
}
extern "C" {
    pub fn fgetws(
        _Buffer: *mut wchar_t,
        _BufferCount: ::std::os::raw::c_int,
        _Stream: *mut FILE,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn fputws(_Buffer: *const wchar_t, _Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _getws_s(_Buffer: *mut wchar_t, _BufferCount: usize) -> *mut wchar_t;
}
extern "C" {
    pub fn putwc(_Character: wchar_t, _Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn putwchar(_Character: wchar_t) -> wint_t;
}
extern "C" {
    pub fn _putws(_Buffer: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ungetwc(_Character: wint_t, _Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _wfdopen(_FileHandle: ::std::os::raw::c_int, _Mode: *const wchar_t) -> *mut FILE;
}
extern "C" {
    pub fn _wfopen(_FileName: *const wchar_t, _Mode: *const wchar_t) -> *mut FILE;
}
extern "C" {
    pub fn _wfopen_s(
        _Stream: *mut *mut FILE,
        _FileName: *const wchar_t,
        _Mode: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wfreopen(
        _FileName: *const wchar_t,
        _Mode: *const wchar_t,
        _OldStream: *mut FILE,
    ) -> *mut FILE;
}
extern "C" {
    pub fn _wfreopen_s(
        _Stream: *mut *mut FILE,
        _FileName: *const wchar_t,
        _Mode: *const wchar_t,
        _OldStream: *mut FILE,
    ) -> errno_t;
}
extern "C" {
    pub fn _wfsopen(
        _FileName: *const wchar_t,
        _Mode: *const wchar_t,
        _ShFlag: ::std::os::raw::c_int,
    ) -> *mut FILE;
}
extern "C" {
    pub fn _wperror(_ErrorMessage: *const wchar_t);
}
extern "C" {
    pub fn _wpopen(_Command: *const wchar_t, _Mode: *const wchar_t) -> *mut FILE;
}
extern "C" {
    pub fn _wremove(_FileName: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wtempnam(_Directory: *const wchar_t, _FilePrefix: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wtmpnam_s(_Buffer: *mut wchar_t, _BufferCount: usize) -> errno_t;
}
extern "C" {
    pub fn _wtmpnam(_Buffer: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _fgetwc_nolock(_Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _fputwc_nolock(_Character: wchar_t, _Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _getwc_nolock(_Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _putwc_nolock(_Character: wchar_t, _Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _ungetwc_nolock(_Character: wint_t, _Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn __stdio_common_vfwprintf(
        _Options: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vfwprintf_s(
        _Options: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vfwprintf_p(
        _Options: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vfwscanf(
        _Options: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vswprintf(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *mut wchar_t,
        _BufferCount: usize,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vswprintf_s(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *mut wchar_t,
        _BufferCount: usize,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vsnwprintf_s(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *mut wchar_t,
        _BufferCount: usize,
        _MaxCount: usize,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vswprintf_p(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *mut wchar_t,
        _BufferCount: usize,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vswscanf(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *const wchar_t,
        _BufferCount: usize,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
pub type fpos_t = ::std::os::raw::c_longlong;
extern "C" {
    pub fn _get_stream_buffer_pointers(
        _Stream: *mut FILE,
        _Base: *mut *mut *mut ::std::os::raw::c_char,
        _Pointer: *mut *mut *mut ::std::os::raw::c_char,
        _Count: *mut *mut ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn clearerr_s(_Stream: *mut FILE) -> errno_t;
}
extern "C" {
    pub fn fopen_s(
        _Stream: *mut *mut FILE,
        _FileName: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn fread_s(
        _Buffer: *mut ::std::os::raw::c_void,
        _BufferSize: usize,
        _ElementSize: usize,
        _ElementCount: usize,
        _Stream: *mut FILE,
    ) -> usize;
}
extern "C" {
    pub fn freopen_s(
        _Stream: *mut *mut FILE,
        _FileName: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
        _OldStream: *mut FILE,
    ) -> errno_t;
}
extern "C" {
    pub fn gets_s(
        _Buffer: *mut ::std::os::raw::c_char,
        _Size: rsize_t,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn tmpfile_s(_Stream: *mut *mut FILE) -> errno_t;
}
extern "C" {
    pub fn tmpnam_s(_Buffer: *mut ::std::os::raw::c_char, _Size: rsize_t) -> errno_t;
}
extern "C" {
    pub fn clearerr(_Stream: *mut FILE);
}
extern "C" {
    pub fn fclose(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fcloseall() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fdopen(
        _FileHandle: ::std::os::raw::c_int,
        _Mode: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
extern "C" {
    pub fn feof(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ferror(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fflush(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fgetc(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fgetchar() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fgetpos(_Stream: *mut FILE, _Position: *mut fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fgets(
        _Buffer: *mut ::std::os::raw::c_char,
        _MaxCount: ::std::os::raw::c_int,
        _Stream: *mut FILE,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _fileno(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _flushall() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fopen(
        _FileName: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
extern "C" {
    pub fn fputc(_Character: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fputchar(_Character: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fputs(
        _Buffer: *const ::std::os::raw::c_char,
        _Stream: *mut FILE,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fread(
        _Buffer: *mut ::std::os::raw::c_void,
        _ElementSize: ::std::os::raw::c_ulonglong,
        _ElementCount: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn freopen(
        _FileName: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
        _Stream: *mut FILE,
    ) -> *mut FILE;
}
extern "C" {
    pub fn _fsopen(
        _FileName: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
        _ShFlag: ::std::os::raw::c_int,
    ) -> *mut FILE;
}
extern "C" {
    pub fn fsetpos(_Stream: *mut FILE, _Position: *const fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fseek(
        _Stream: *mut FILE,
        _Offset: ::std::os::raw::c_long,
        _Origin: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fseeki64(
        _Stream: *mut FILE,
        _Offset: ::std::os::raw::c_longlong,
        _Origin: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ftell(_Stream: *mut FILE) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _ftelli64(_Stream: *mut FILE) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn fwrite(
        _Buffer: *const ::std::os::raw::c_void,
        _ElementSize: ::std::os::raw::c_ulonglong,
        _ElementCount: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn getc(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getchar() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _getmaxstdio() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _getw(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn perror(_ErrorMessage: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn _pclose(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _popen(
        _Command: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
extern "C" {
    pub fn putc(_Character: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn putchar(_Character: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn puts(_Buffer: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _putw(_Word: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn remove(_FileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn rename(
        _OldFileName: *const ::std::os::raw::c_char,
        _NewFileName: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _unlink(_FileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn unlink(_FileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn rewind(_Stream: *mut FILE);
}
extern "C" {
    pub fn _rmtmp() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn setbuf(_Stream: *mut FILE, _Buffer: *mut ::std::os::raw::c_char);
}
extern "C" {
    pub fn _setmaxstdio(_Maximum: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn setvbuf(
        _Stream: *mut FILE,
        _Buffer: *mut ::std::os::raw::c_char,
        _Mode: ::std::os::raw::c_int,
        _Size: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _tempnam(
        _DirectoryName: *const ::std::os::raw::c_char,
        _FilePrefix: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn tmpfile() -> *mut FILE;
}
extern "C" {
    pub fn tmpnam(_Buffer: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn ungetc(_Character: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _lock_file(_Stream: *mut FILE);
}
extern "C" {
    pub fn _unlock_file(_Stream: *mut FILE);
}
extern "C" {
    pub fn _fclose_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fflush_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fgetc_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fputc_nolock(
        _Character: ::std::os::raw::c_int,
        _Stream: *mut FILE,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fread_nolock(
        _Buffer: *mut ::std::os::raw::c_void,
        _ElementSize: usize,
        _ElementCount: usize,
        _Stream: *mut FILE,
    ) -> usize;
}
extern "C" {
    pub fn _fread_nolock_s(
        _Buffer: *mut ::std::os::raw::c_void,
        _BufferSize: usize,
        _ElementSize: usize,
        _ElementCount: usize,
        _Stream: *mut FILE,
    ) -> usize;
}
extern "C" {
    pub fn _fseek_nolock(
        _Stream: *mut FILE,
        _Offset: ::std::os::raw::c_long,
        _Origin: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fseeki64_nolock(
        _Stream: *mut FILE,
        _Offset: ::std::os::raw::c_longlong,
        _Origin: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _ftell_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _ftelli64_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _fwrite_nolock(
        _Buffer: *const ::std::os::raw::c_void,
        _ElementSize: usize,
        _ElementCount: usize,
        _Stream: *mut FILE,
    ) -> usize;
}
extern "C" {
    pub fn _getc_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _putc_nolock(
        _Character: ::std::os::raw::c_int,
        _Stream: *mut FILE,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _ungetc_nolock(
        _Character: ::std::os::raw::c_int,
        _Stream: *mut FILE,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __p__commode() -> *mut ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vfprintf(
        _Options: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vfprintf_s(
        _Options: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vfprintf_p(
        _Options: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _set_printf_count_output(_Value: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _get_printf_count_output() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vfscanf(
        _Options: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _Arglist: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vsprintf(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vsprintf_s(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vsnprintf_s(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: usize,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vsprintf_p(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vsscanf(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *const ::std::os::raw::c_char,
        _BufferCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn tempnam(
        _Directory: *const ::std::os::raw::c_char,
        _FilePrefix: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn fcloseall() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fdopen(
        _FileHandle: ::std::os::raw::c_int,
        _Format: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
extern "C" {
    pub fn fgetchar() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fileno(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn flushall() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fputchar(_Ch: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getw(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn putw(_Ch: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn rmtmp() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __pctype_func() -> *const ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn __pwctype_func() -> *const wctype_t;
}
extern "C" {
    pub fn iswalnum(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswalpha(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswascii(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswblank(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswcntrl(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswdigit(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswgraph(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswlower(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswprint(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswpunct(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswspace(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswupper(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswxdigit(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __iswcsymf(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __iswcsym(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswalnum_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswalpha_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswblank_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswcntrl_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswdigit_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswgraph_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswlower_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswprint_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswpunct_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswspace_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswupper_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswxdigit_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswcsymf_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswcsym_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn towupper(_C: wint_t) -> wint_t;
}
extern "C" {
    pub fn towlower(_C: wint_t) -> wint_t;
}
extern "C" {
    pub fn iswctype(_C: wint_t, _Type: wctype_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _towupper_l(_C: wint_t, _Locale: _locale_t) -> wint_t;
}
extern "C" {
    pub fn _towlower_l(_C: wint_t, _Locale: _locale_t) -> wint_t;
}
extern "C" {
    pub fn _iswctype_l(_C: wint_t, _Type: wctype_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isleadbyte(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isleadbyte_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn is_wctype(_C: wint_t, _Type: wctype_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isctype(
        _C: ::std::os::raw::c_int,
        _Type: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isctype_l(
        _C: ::std::os::raw::c_int,
        _Type: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isalpha(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isalpha_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isupper(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isupper_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn islower(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _islower_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isdigit(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isdigit_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isxdigit(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isxdigit_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isspace(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isspace_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ispunct(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _ispunct_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isblank(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isblank_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isalnum(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isalnum_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isprint(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isprint_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isgraph(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isgraph_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iscntrl(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iscntrl_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn toupper(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn tolower(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _tolower(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _tolower_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _toupper(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _toupper_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __isascii(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __toascii(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __iscsymf(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __iscsym(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ___mb_cur_max_func() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ___mb_cur_max_l_func(_Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wassert(_Message: *const wchar_t, _File: *const wchar_t, _Line: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn _errno() -> *mut ::std::os::raw::c_int;
}
extern "C" {
    pub fn _set_errno(_Value: ::std::os::raw::c_int) -> errno_t;
}
extern "C" {
    pub fn _get_errno(_Value: *mut ::std::os::raw::c_int) -> errno_t;
}
extern "C" {
    pub fn __doserrno() -> *mut ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _set_doserrno(_Value: ::std::os::raw::c_ulong) -> errno_t;
}
extern "C" {
    pub fn _get_doserrno(_Value: *mut ::std::os::raw::c_ulong) -> errno_t;
}
extern "C" {
    pub fn memchr(
        _Buf: *const ::std::os::raw::c_void,
        _Val: ::std::os::raw::c_int,
        _MaxCount: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memcmp(
        _Buf1: *const ::std::os::raw::c_void,
        _Buf2: *const ::std::os::raw::c_void,
        _Size: ::std::os::raw::c_ulonglong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn memcpy(
        _Dst: *mut ::std::os::raw::c_void,
        _Src: *const ::std::os::raw::c_void,
        _Size: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memmove(
        _Dst: *mut ::std::os::raw::c_void,
        _Src: *const ::std::os::raw::c_void,
        _Size: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memset(
        _Dst: *mut ::std::os::raw::c_void,
        _Val: ::std::os::raw::c_int,
        _Size: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn strchr(
        _Str: *const ::std::os::raw::c_char,
        _Val: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strrchr(
        _Str: *const ::std::os::raw::c_char,
        _Ch: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strstr(
        _Str: *const ::std::os::raw::c_char,
        _SubStr: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn wcschr(
        _Str: *const ::std::os::raw::c_ushort,
        _Ch: ::std::os::raw::c_ushort,
    ) -> *mut ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn wcsrchr(_Str: *const wchar_t, _Ch: wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsstr(_Str: *const wchar_t, _SubStr: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _memicmp(
        _Buf1: *const ::std::os::raw::c_void,
        _Buf2: *const ::std::os::raw::c_void,
        _Size: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _memicmp_l(
        _Buf1: *const ::std::os::raw::c_void,
        _Buf2: *const ::std::os::raw::c_void,
        _Size: usize,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn memccpy(
        _Dst: *mut ::std::os::raw::c_void,
        _Src: *const ::std::os::raw::c_void,
        _Val: ::std::os::raw::c_int,
        _Size: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memicmp(
        _Buf1: *const ::std::os::raw::c_void,
        _Buf2: *const ::std::os::raw::c_void,
        _Size: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcscat_s(
        _Destination: *mut wchar_t,
        _SizeInWords: rsize_t,
        _Source: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcscpy_s(
        _Destination: *mut wchar_t,
        _SizeInWords: rsize_t,
        _Source: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcsncat_s(
        _Destination: *mut wchar_t,
        _SizeInWords: rsize_t,
        _Source: *const wchar_t,
        _MaxCount: rsize_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcsncpy_s(
        _Destination: *mut wchar_t,
        _SizeInWords: rsize_t,
        _Source: *const wchar_t,
        _MaxCount: rsize_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcstok_s(
        _String: *mut wchar_t,
        _Delimiter: *const wchar_t,
        _Context: *mut *mut wchar_t,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsdup(_String: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcscat(_Destination: *mut wchar_t, _Source: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcscmp(
        _String1: *const ::std::os::raw::c_ushort,
        _String2: *const ::std::os::raw::c_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcscpy(_Destination: *mut wchar_t, _Source: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcscspn(_String: *const wchar_t, _Control: *const wchar_t) -> usize;
}
extern "C" {
    pub fn wcslen(_String: *const ::std::os::raw::c_ushort) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn wcsnlen(_Source: *const wchar_t, _MaxCount: usize) -> usize;
}
extern "C" {
    pub fn wcsncat(
        _Destination: *mut wchar_t,
        _Source: *const wchar_t,
        _Count: usize,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsncmp(
        _String1: *const ::std::os::raw::c_ushort,
        _String2: *const ::std::os::raw::c_ushort,
        _MaxCount: ::std::os::raw::c_ulonglong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcsncpy(
        _Destination: *mut wchar_t,
        _Source: *const wchar_t,
        _Count: usize,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn wcspbrk(_String: *const wchar_t, _Control: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsspn(_String: *const wchar_t, _Control: *const wchar_t) -> usize;
}
extern "C" {
    pub fn wcstok(
        _String: *mut wchar_t,
        _Delimiter: *const wchar_t,
        _Context: *mut *mut wchar_t,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcserror(_ErrorNumber: ::std::os::raw::c_int) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcserror_s(
        _Buffer: *mut wchar_t,
        _SizeInWords: usize,
        _ErrorNumber: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn __wcserror(_String: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn __wcserror_s(
        _Buffer: *mut wchar_t,
        _SizeInWords: usize,
        _ErrorMessage: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wcsicmp(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsicmp_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnicmp(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnicmp_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnset_s(
        _Destination: *mut wchar_t,
        _SizeInWords: usize,
        _Value: wchar_t,
        _MaxCount: usize,
    ) -> errno_t;
}
extern "C" {
    pub fn _wcsnset(_String: *mut wchar_t, _Value: wchar_t, _MaxCount: usize) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsrev(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsset_s(_Destination: *mut wchar_t, _SizeInWords: usize, _Value: wchar_t) -> errno_t;
}
extern "C" {
    pub fn _wcsset(_String: *mut wchar_t, _Value: wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcslwr_s(_String: *mut wchar_t, _SizeInWords: usize) -> errno_t;
}
extern "C" {
    pub fn _wcslwr(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcslwr_s_l(_String: *mut wchar_t, _SizeInWords: usize, _Locale: _locale_t) -> errno_t;
}
extern "C" {
    pub fn _wcslwr_l(_String: *mut wchar_t, _Locale: _locale_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsupr_s(_String: *mut wchar_t, _Size: usize) -> errno_t;
}
extern "C" {
    pub fn _wcsupr(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsupr_s_l(_String: *mut wchar_t, _Size: usize, _Locale: _locale_t) -> errno_t;
}
extern "C" {
    pub fn _wcsupr_l(_String: *mut wchar_t, _Locale: _locale_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsxfrm(_Destination: *mut wchar_t, _Source: *const wchar_t, _MaxCount: usize) -> usize;
}
extern "C" {
    pub fn _wcsxfrm_l(
        _Destination: *mut wchar_t,
        _Source: *const wchar_t,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> usize;
}
extern "C" {
    pub fn wcscoll(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcscoll_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsicoll(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsicoll_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsncoll(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsncoll_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnicoll(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnicoll_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcsdup(_String: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsicmp(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcsnicmp(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcsnset(_String: *mut wchar_t, _Value: wchar_t, _MaxCount: usize) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsrev(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsset(_String: *mut wchar_t, _Value: wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcslwr(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsupr(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsicoll(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strcpy_s(
        _Destination: *mut ::std::os::raw::c_char,
        _SizeInBytes: rsize_t,
        _Source: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn strcat_s(
        _Destination: *mut ::std::os::raw::c_char,
        _SizeInBytes: rsize_t,
        _Source: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn strerror_s(
        _Buffer: *mut ::std::os::raw::c_char,
        _SizeInBytes: usize,
        _ErrorNumber: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn strncat_s(
        _Destination: *mut ::std::os::raw::c_char,
        _SizeInBytes: rsize_t,
        _Source: *const ::std::os::raw::c_char,
        _MaxCount: rsize_t,
    ) -> errno_t;
}
extern "C" {
    pub fn strncpy_s(
        _Destination: *mut ::std::os::raw::c_char,
        _SizeInBytes: rsize_t,
        _Source: *const ::std::os::raw::c_char,
        _MaxCount: rsize_t,
    ) -> errno_t;
}
extern "C" {
    pub fn strtok_s(
        _String: *mut ::std::os::raw::c_char,
        _Delimiter: *const ::std::os::raw::c_char,
        _Context: *mut *mut ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _memccpy(
        _Dst: *mut ::std::os::raw::c_void,
        _Src: *const ::std::os::raw::c_void,
        _Val: ::std::os::raw::c_int,
        _MaxCount: usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn strcat(
        _Destination: *mut ::std::os::raw::c_char,
        _Source: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strcmp(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strcmpi(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strcoll(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strcoll_l(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strcpy(
        _Destination: *mut ::std::os::raw::c_char,
        _Source: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strcspn(
        _Str: *const ::std::os::raw::c_char,
        _Control: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _strdup(_Source: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strerror(_ErrorMessage: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strerror_s(
        _Buffer: *mut ::std::os::raw::c_char,
        _SizeInBytes: usize,
        _ErrorMessage: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn strerror(_ErrorMessage: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _stricmp(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _stricoll(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _stricoll_l(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _stricmp_l(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strlen(_Str: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _strlwr_s(_String: *mut ::std::os::raw::c_char, _Size: usize) -> errno_t;
}
extern "C" {
    pub fn _strlwr(_String: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strlwr_s_l(
        _String: *mut ::std::os::raw::c_char,
        _Size: usize,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _strlwr_l(
        _String: *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strncat(
        _Destination: *mut ::std::os::raw::c_char,
        _Source: *const ::std::os::raw::c_char,
        _Count: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strncmp(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
        _MaxCount: ::std::os::raw::c_ulonglong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strnicmp(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _MaxCount: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strnicmp_l(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strnicoll(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _MaxCount: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strnicoll_l(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strncoll(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _MaxCount: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strncoll_l(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __strncnt(_String: *const ::std::os::raw::c_char, _Count: usize) -> usize;
}
extern "C" {
    pub fn strncpy(
        _Destination: *mut ::std::os::raw::c_char,
        _Source: *const ::std::os::raw::c_char,
        _Count: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strnlen(_String: *const ::std::os::raw::c_char, _MaxCount: usize) -> usize;
}
extern "C" {
    pub fn _strnset_s(
        _String: *mut ::std::os::raw::c_char,
        _SizeInBytes: usize,
        _Value: ::std::os::raw::c_int,
        _MaxCount: usize,
    ) -> errno_t;
}
extern "C" {
    pub fn _strnset(
        _Destination: *mut ::std::os::raw::c_char,
        _Value: ::std::os::raw::c_int,
        _Count: usize,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strpbrk(
        _Str: *const ::std::os::raw::c_char,
        _Control: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strrev(_Str: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strset_s(
        _Destination: *mut ::std::os::raw::c_char,
        _DestinationSize: usize,
        _Value: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _strset(
        _Destination: *mut ::std::os::raw::c_char,
        _Value: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strspn(
        _Str: *const ::std::os::raw::c_char,
        _Control: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn strtok(
        _String: *mut ::std::os::raw::c_char,
        _Delimiter: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strupr_s(_String: *mut ::std::os::raw::c_char, _Size: usize) -> errno_t;
}
extern "C" {
    pub fn _strupr(_String: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strupr_s_l(
        _String: *mut ::std::os::raw::c_char,
        _Size: usize,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _strupr_l(
        _String: *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strxfrm(
        _Destination: *mut ::std::os::raw::c_char,
        _Source: *const ::std::os::raw::c_char,
        _MaxCount: ::std::os::raw::c_ulonglong,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _strxfrm_l(
        _Destination: *mut ::std::os::raw::c_char,
        _Source: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> usize;
}
extern "C" {
    pub fn strdup(_String: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strcmpi(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn stricmp(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strlwr(_String: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strnicmp(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _MaxCount: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strnset(
        _String: *mut ::std::os::raw::c_char,
        _Value: ::std::os::raw::c_int,
        _MaxCount: usize,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strrev(_String: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strset(
        _String: *mut ::std::os::raw::c_char,
        _Value: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strupr(_String: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cursor {
    pub start: *mut ::std::os::raw::c_uchar,
    pub p: *mut ::std::os::raw::c_uchar,
    pub end: *mut ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout_cursor() {
    const UNINIT: ::std::mem::MaybeUninit<cursor> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<cursor>(),
        24usize,
        concat!("Size of: ", stringify!(cursor))
    );
    assert_eq!(
        ::std::mem::align_of::<cursor>(),
        8usize,
        concat!("Alignment of ", stringify!(cursor))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(cursor),
            "::",
            stringify!(start)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize },
        8usize,
        concat!("Offset of field: ", stringify!(cursor), "::", stringify!(p))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(cursor),
            "::",
            stringify!(end)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_str_block {
    pub str_: *const ::std::os::raw::c_char,
    pub len: u32,
}
#[test]
fn bindgen_test_layout_ndb_str_block() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_str_block> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_str_block>(),
        16usize,
        concat!("Size of: ", stringify!(ndb_str_block))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_str_block>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_str_block))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_str_block),
            "::",
            stringify!(str_)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_str_block),
            "::",
            stringify!(len)
        )
    );
}
pub type str_block_t = ndb_str_block;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_json_parser {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_blocks {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_note {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_tag {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_tags {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_lmdb {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ndb_packed_str {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct bolt11 {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_tag_ptr {
    pub ptr: *mut ndb_tag,
}
#[test]
fn bindgen_test_layout_ndb_tag_ptr() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_tag_ptr> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_tag_ptr>(),
        8usize,
        concat!("Size of: ", stringify!(ndb_tag_ptr))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_tag_ptr>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_tag_ptr))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_tag_ptr),
            "::",
            stringify!(ptr)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_tags_ptr {
    pub ptr: *mut ndb_tags,
}
#[test]
fn bindgen_test_layout_ndb_tags_ptr() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_tags_ptr> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_tags_ptr>(),
        8usize,
        concat!("Size of: ", stringify!(ndb_tags_ptr))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_tags_ptr>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_tags_ptr))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_tags_ptr),
            "::",
            stringify!(ptr)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_block_ptr {
    pub ptr: *mut ndb_block,
}
#[test]
fn bindgen_test_layout_ndb_block_ptr() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_block_ptr> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_block_ptr>(),
        8usize,
        concat!("Size of: ", stringify!(ndb_block_ptr))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_block_ptr>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_block_ptr))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_block_ptr),
            "::",
            stringify!(ptr)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_blocks_ptr {
    pub ptr: *mut ndb_blocks,
}
#[test]
fn bindgen_test_layout_ndb_blocks_ptr() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_blocks_ptr> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_blocks_ptr>(),
        8usize,
        concat!("Size of: ", stringify!(ndb_blocks_ptr))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_blocks_ptr>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_blocks_ptr))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_blocks_ptr),
            "::",
            stringify!(ptr)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_note_ptr {
    pub ptr: *mut ndb_note,
}
#[test]
fn bindgen_test_layout_ndb_note_ptr() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_note_ptr> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_note_ptr>(),
        8usize,
        concat!("Size of: ", stringify!(ndb_note_ptr))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_note_ptr>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_note_ptr))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_note_ptr),
            "::",
            stringify!(ptr)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_t {
    pub ndb: *mut ndb,
}
#[test]
fn bindgen_test_layout_ndb_t() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_t>(),
        8usize,
        concat!("Size of: ", stringify!(ndb_t))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_t>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).ndb) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_t),
            "::",
            stringify!(ndb)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ndb_str {
    pub flag: ::std::os::raw::c_uchar,
    pub __bindgen_anon_1: ndb_str__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union ndb_str__bindgen_ty_1 {
    pub str_: *const ::std::os::raw::c_char,
    pub id: *mut ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout_ndb_str__bindgen_ty_1() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_str__bindgen_ty_1> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_str__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(ndb_str__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_str__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_str__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_str__bindgen_ty_1),
            "::",
            stringify!(str_)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_str__bindgen_ty_1),
            "::",
            stringify!(id)
        )
    );
}
#[test]
fn bindgen_test_layout_ndb_str() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_str> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_str>(),
        16usize,
        concat!("Size of: ", stringify!(ndb_str))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_str>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_str))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).flag) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_str),
            "::",
            stringify!(flag)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_keypair {
    pub pubkey: [::std::os::raw::c_uchar; 32usize],
    pub secret: [::std::os::raw::c_uchar; 32usize],
    pub pair: [::std::os::raw::c_uchar; 96usize],
}
#[test]
fn bindgen_test_layout_ndb_keypair() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_keypair> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_keypair>(),
        160usize,
        concat!("Size of: ", stringify!(ndb_keypair))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_keypair>(),
        1usize,
        concat!("Alignment of ", stringify!(ndb_keypair))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_keypair),
            "::",
            stringify!(pubkey)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).secret) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_keypair),
            "::",
            stringify!(secret)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pair) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_keypair),
            "::",
            stringify!(pair)
        )
    );
}
pub type ndb_idres = ::std::os::raw::c_int;
pub type ndb_id_fn = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *mut ::std::os::raw::c_void,
        arg2: *const ::std::os::raw::c_char,
    ) -> ndb_idres,
>;
pub type ndb_sub_fn =
    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, subid: u64)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_id_cb {
    pub fn_: ndb_id_fn,
    pub data: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_ndb_id_cb() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_id_cb> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_id_cb>(),
        16usize,
        concat!("Size of: ", stringify!(ndb_id_cb))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_id_cb>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_id_cb))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).fn_) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_id_cb),
            "::",
            stringify!(fn_)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_id_cb),
            "::",
            stringify!(data)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_txn {
    pub lmdb: *mut ndb_lmdb,
    pub mdb_txn: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_ndb_txn() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_txn> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_txn>(),
        16usize,
        concat!("Size of: ", stringify!(ndb_txn))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_txn>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_txn))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).lmdb) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_txn),
            "::",
            stringify!(lmdb)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mdb_txn) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_txn),
            "::",
            stringify!(mdb_txn)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_event {
    pub note: *mut ndb_note,
}
#[test]
fn bindgen_test_layout_ndb_event() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_event> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_event>(),
        8usize,
        concat!("Size of: ", stringify!(ndb_event))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_event>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_event))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).note) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_event),
            "::",
            stringify!(note)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_command_result {
    pub ok: ::std::os::raw::c_int,
    pub msg: *const ::std::os::raw::c_char,
    pub msglen: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_ndb_command_result() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_command_result> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_command_result>(),
        24usize,
        concat!("Size of: ", stringify!(ndb_command_result))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_command_result>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_command_result))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).ok) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_command_result),
            "::",
            stringify!(ok)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_command_result),
            "::",
            stringify!(msg)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).msglen) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_command_result),
            "::",
            stringify!(msglen)
        )
    );
}
pub const fce_type_NDB_FCE_EVENT: fce_type = 1;
pub type fce_type = ::std::os::raw::c_int;
pub const tce_type_NDB_TCE_EVENT: tce_type = 1;
pub const tce_type_NDB_TCE_OK: tce_type = 2;
pub const tce_type_NDB_TCE_NOTICE: tce_type = 3;
pub const tce_type_NDB_TCE_EOSE: tce_type = 4;
pub const tce_type_NDB_TCE_AUTH: tce_type = 5;
pub type tce_type = ::std::os::raw::c_int;
pub const ndb_ingest_filter_action_NDB_INGEST_REJECT: ndb_ingest_filter_action = 0;
pub const ndb_ingest_filter_action_NDB_INGEST_ACCEPT: ndb_ingest_filter_action = 1;
pub const ndb_ingest_filter_action_NDB_INGEST_SKIP_VALIDATION: ndb_ingest_filter_action = 2;
pub type ndb_ingest_filter_action = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_search_key {
    pub search: [::std::os::raw::c_char; 24usize],
    pub id: [::std::os::raw::c_uchar; 32usize],
    pub timestamp: u64,
}
#[test]
fn bindgen_test_layout_ndb_search_key() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_search_key> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_search_key>(),
        64usize,
        concat!("Size of: ", stringify!(ndb_search_key))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_search_key>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_search_key))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).search) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_search_key),
            "::",
            stringify!(search)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_search_key),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).timestamp) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_search_key),
            "::",
            stringify!(timestamp)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_search {
    pub key: *mut ndb_search_key,
    pub profile_key: u64,
    pub cursor: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_ndb_search() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_search> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_search>(),
        24usize,
        concat!("Size of: ", stringify!(ndb_search))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_search>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_search))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_search),
            "::",
            stringify!(key)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).profile_key) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_search),
            "::",
            stringify!(profile_key)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).cursor) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_search),
            "::",
            stringify!(cursor)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ndb_fce {
    pub evtype: fce_type,
    pub __bindgen_anon_1: ndb_fce__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union ndb_fce__bindgen_ty_1 {
    pub event: ndb_event,
}
#[test]
fn bindgen_test_layout_ndb_fce__bindgen_ty_1() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_fce__bindgen_ty_1> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_fce__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(ndb_fce__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_fce__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_fce__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_fce__bindgen_ty_1),
            "::",
            stringify!(event)
        )
    );
}
#[test]
fn bindgen_test_layout_ndb_fce() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_fce> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_fce>(),
        16usize,
        concat!("Size of: ", stringify!(ndb_fce))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_fce>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_fce))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).evtype) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_fce),
            "::",
            stringify!(evtype)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ndb_tce {
    pub evtype: tce_type,
    pub subid: *const ::std::os::raw::c_char,
    pub subid_len: ::std::os::raw::c_int,
    pub __bindgen_anon_1: ndb_tce__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union ndb_tce__bindgen_ty_1 {
    pub event: ndb_event,
    pub command_result: ndb_command_result,
}
#[test]
fn bindgen_test_layout_ndb_tce__bindgen_ty_1() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_tce__bindgen_ty_1> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_tce__bindgen_ty_1>(),
        24usize,
        concat!("Size of: ", stringify!(ndb_tce__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_tce__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_tce__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_tce__bindgen_ty_1),
            "::",
            stringify!(event)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).command_result) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_tce__bindgen_ty_1),
            "::",
            stringify!(command_result)
        )
    );
}
#[test]
fn bindgen_test_layout_ndb_tce() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_tce> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_tce>(),
        48usize,
        concat!("Size of: ", stringify!(ndb_tce))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_tce>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_tce))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).evtype) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_tce),
            "::",
            stringify!(evtype)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).subid) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_tce),
            "::",
            stringify!(subid)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).subid_len) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_tce),
            "::",
            stringify!(subid_len)
        )
    );
}
pub type ndb_ingest_filter_fn = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *mut ::std::os::raw::c_void,
        arg2: *mut ndb_note,
    ) -> ndb_ingest_filter_action,
>;
pub const ndb_filter_fieldtype_NDB_FILTER_IDS: ndb_filter_fieldtype = 1;
pub const ndb_filter_fieldtype_NDB_FILTER_AUTHORS: ndb_filter_fieldtype = 2;
pub const ndb_filter_fieldtype_NDB_FILTER_KINDS: ndb_filter_fieldtype = 3;
pub const ndb_filter_fieldtype_NDB_FILTER_TAGS: ndb_filter_fieldtype = 4;
pub const ndb_filter_fieldtype_NDB_FILTER_SINCE: ndb_filter_fieldtype = 5;
pub const ndb_filter_fieldtype_NDB_FILTER_UNTIL: ndb_filter_fieldtype = 6;
pub const ndb_filter_fieldtype_NDB_FILTER_LIMIT: ndb_filter_fieldtype = 7;
pub type ndb_filter_fieldtype = ::std::os::raw::c_int;
pub const ndb_generic_element_type_NDB_ELEMENT_UNKNOWN: ndb_generic_element_type = 0;
pub const ndb_generic_element_type_NDB_ELEMENT_STRING: ndb_generic_element_type = 1;
pub const ndb_generic_element_type_NDB_ELEMENT_ID: ndb_generic_element_type = 2;
pub const ndb_generic_element_type_NDB_ELEMENT_INT: ndb_generic_element_type = 3;
pub type ndb_generic_element_type = ::std::os::raw::c_int;
pub const ndb_search_order_NDB_ORDER_DESCENDING: ndb_search_order = 0;
pub const ndb_search_order_NDB_ORDER_ASCENDING: ndb_search_order = 1;
pub type ndb_search_order = ::std::os::raw::c_int;
pub const ndb_dbs_NDB_DB_NOTE: ndb_dbs = 0;
pub const ndb_dbs_NDB_DB_META: ndb_dbs = 1;
pub const ndb_dbs_NDB_DB_PROFILE: ndb_dbs = 2;
pub const ndb_dbs_NDB_DB_NOTE_ID: ndb_dbs = 3;
pub const ndb_dbs_NDB_DB_PROFILE_PK: ndb_dbs = 4;
pub const ndb_dbs_NDB_DB_NDB_META: ndb_dbs = 5;
pub const ndb_dbs_NDB_DB_PROFILE_SEARCH: ndb_dbs = 6;
pub const ndb_dbs_NDB_DB_PROFILE_LAST_FETCH: ndb_dbs = 7;
pub const ndb_dbs_NDB_DB_NOTE_KIND: ndb_dbs = 8;
pub const ndb_dbs_NDB_DB_NOTE_TEXT: ndb_dbs = 9;
pub const ndb_dbs_NDB_DB_NOTE_BLOCKS: ndb_dbs = 10;
pub const ndb_dbs_NDB_DB_NOTE_TAGS: ndb_dbs = 11;
pub const ndb_dbs_NDB_DBS: ndb_dbs = 12;
pub type ndb_dbs = ::std::os::raw::c_int;
pub const ndb_common_kind_NDB_CKIND_PROFILE: ndb_common_kind = 0;
pub const ndb_common_kind_NDB_CKIND_TEXT: ndb_common_kind = 1;
pub const ndb_common_kind_NDB_CKIND_CONTACTS: ndb_common_kind = 2;
pub const ndb_common_kind_NDB_CKIND_DM: ndb_common_kind = 3;
pub const ndb_common_kind_NDB_CKIND_DELETE: ndb_common_kind = 4;
pub const ndb_common_kind_NDB_CKIND_REPOST: ndb_common_kind = 5;
pub const ndb_common_kind_NDB_CKIND_REACTION: ndb_common_kind = 6;
pub const ndb_common_kind_NDB_CKIND_ZAP: ndb_common_kind = 7;
pub const ndb_common_kind_NDB_CKIND_ZAP_REQUEST: ndb_common_kind = 8;
pub const ndb_common_kind_NDB_CKIND_NWC_REQUEST: ndb_common_kind = 9;
pub const ndb_common_kind_NDB_CKIND_NWC_RESPONSE: ndb_common_kind = 10;
pub const ndb_common_kind_NDB_CKIND_HTTP_AUTH: ndb_common_kind = 11;
pub const ndb_common_kind_NDB_CKIND_LIST: ndb_common_kind = 12;
pub const ndb_common_kind_NDB_CKIND_LONGFORM: ndb_common_kind = 13;
pub const ndb_common_kind_NDB_CKIND_STATUS: ndb_common_kind = 14;
pub const ndb_common_kind_NDB_CKIND_COUNT: ndb_common_kind = 15;
pub type ndb_common_kind = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_builder {
    pub mem: cursor,
    pub note_cur: cursor,
    pub strings: cursor,
    pub str_indices: cursor,
    pub note: *mut ndb_note,
    pub current_tag: *mut ndb_tag,
}
#[test]
fn bindgen_test_layout_ndb_builder() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_builder> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_builder>(),
        112usize,
        concat!("Size of: ", stringify!(ndb_builder))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_builder>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_builder))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mem) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_builder),
            "::",
            stringify!(mem)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).note_cur) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_builder),
            "::",
            stringify!(note_cur)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).strings) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_builder),
            "::",
            stringify!(strings)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).str_indices) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_builder),
            "::",
            stringify!(str_indices)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).note) as usize - ptr as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_builder),
            "::",
            stringify!(note)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).current_tag) as usize - ptr as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_builder),
            "::",
            stringify!(current_tag)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_iterator {
    pub note: *mut ndb_note,
    pub tag: *mut ndb_tag,
    pub index: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_ndb_iterator() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_iterator> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_iterator>(),
        24usize,
        concat!("Size of: ", stringify!(ndb_iterator))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_iterator>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_iterator))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).note) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_iterator),
            "::",
            stringify!(note)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_iterator),
            "::",
            stringify!(tag)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_iterator),
            "::",
            stringify!(index)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_filter_string {
    pub string: *const ::std::os::raw::c_char,
    pub len: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_ndb_filter_string() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_filter_string> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_filter_string>(),
        16usize,
        concat!("Size of: ", stringify!(ndb_filter_string))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_filter_string>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_filter_string))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_filter_string),
            "::",
            stringify!(string)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_filter_string),
            "::",
            stringify!(len)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union ndb_filter_element {
    pub string: ndb_filter_string,
    pub id: *const ::std::os::raw::c_uchar,
    pub integer: u64,
}
#[test]
fn bindgen_test_layout_ndb_filter_element() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_filter_element> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_filter_element>(),
        16usize,
        concat!("Size of: ", stringify!(ndb_filter_element))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_filter_element>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_filter_element))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_filter_element),
            "::",
            stringify!(string)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_filter_element),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_filter_element),
            "::",
            stringify!(integer)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_filter_field {
    pub type_: ndb_filter_fieldtype,
    pub elem_type: ndb_generic_element_type,
    pub tag: ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_ndb_filter_field() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_filter_field> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_filter_field>(),
        12usize,
        concat!("Size of: ", stringify!(ndb_filter_field))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_filter_field>(),
        4usize,
        concat!("Alignment of ", stringify!(ndb_filter_field))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_filter_field),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).elem_type) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_filter_field),
            "::",
            stringify!(elem_type)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_filter_field),
            "::",
            stringify!(tag)
        )
    );
}
#[repr(C)]
#[derive(Debug)]
pub struct ndb_filter_elements {
    pub field: ndb_filter_field,
    pub count: ::std::os::raw::c_int,
    pub elements: __IncompleteArrayField<u64>,
}
#[test]
fn bindgen_test_layout_ndb_filter_elements() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_filter_elements> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_filter_elements>(),
        16usize,
        concat!("Size of: ", stringify!(ndb_filter_elements))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_filter_elements>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_filter_elements))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).field) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_filter_elements),
            "::",
            stringify!(field)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_filter_elements),
            "::",
            stringify!(count)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_filter_elements),
            "::",
            stringify!(elements)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_filter {
    pub elem_buf: cursor,
    pub data_buf: cursor,
    pub num_elements: ::std::os::raw::c_int,
    pub finalized: ::std::os::raw::c_int,
    pub current: ::std::os::raw::c_int,
    pub elements: [::std::os::raw::c_int; 7usize],
}
#[test]
fn bindgen_test_layout_ndb_filter() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_filter> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_filter>(),
        88usize,
        concat!("Size of: ", stringify!(ndb_filter))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_filter>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_filter))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).elem_buf) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_filter),
            "::",
            stringify!(elem_buf)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).data_buf) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_filter),
            "::",
            stringify!(data_buf)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).num_elements) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_filter),
            "::",
            stringify!(num_elements)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).finalized) as usize - ptr as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_filter),
            "::",
            stringify!(finalized)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).current) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_filter),
            "::",
            stringify!(current)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_filter),
            "::",
            stringify!(elements)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_config {
    pub flags: ::std::os::raw::c_int,
    pub ingester_threads: ::std::os::raw::c_int,
    pub mapsize: usize,
    pub filter_context: *mut ::std::os::raw::c_void,
    pub ingest_filter: ndb_ingest_filter_fn,
    pub sub_cb_ctx: *mut ::std::os::raw::c_void,
    pub sub_cb: ndb_sub_fn,
}
#[test]
fn bindgen_test_layout_ndb_config() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_config> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_config>(),
        48usize,
        concat!("Size of: ", stringify!(ndb_config))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_config>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_config))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_config),
            "::",
            stringify!(flags)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).ingester_threads) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_config),
            "::",
            stringify!(ingester_threads)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mapsize) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_config),
            "::",
            stringify!(mapsize)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).filter_context) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_config),
            "::",
            stringify!(filter_context)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).ingest_filter) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_config),
            "::",
            stringify!(ingest_filter)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).sub_cb_ctx) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_config),
            "::",
            stringify!(sub_cb_ctx)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).sub_cb) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_config),
            "::",
            stringify!(sub_cb)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_text_search_config {
    pub order: ndb_search_order,
    pub limit: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_ndb_text_search_config() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_text_search_config> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_text_search_config>(),
        8usize,
        concat!("Size of: ", stringify!(ndb_text_search_config))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_text_search_config>(),
        4usize,
        concat!("Alignment of ", stringify!(ndb_text_search_config))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).order) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_text_search_config),
            "::",
            stringify!(order)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_text_search_config),
            "::",
            stringify!(limit)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_stat_counts {
    pub key_size: usize,
    pub value_size: usize,
    pub count: usize,
}
#[test]
fn bindgen_test_layout_ndb_stat_counts() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_stat_counts> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_stat_counts>(),
        24usize,
        concat!("Size of: ", stringify!(ndb_stat_counts))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_stat_counts>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_stat_counts))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).key_size) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_stat_counts),
            "::",
            stringify!(key_size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).value_size) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_stat_counts),
            "::",
            stringify!(value_size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_stat_counts),
            "::",
            stringify!(count)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_stat {
    pub dbs: [ndb_stat_counts; 12usize],
    pub common_kinds: [ndb_stat_counts; 15usize],
    pub other_kinds: ndb_stat_counts,
}
#[test]
fn bindgen_test_layout_ndb_stat() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_stat> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_stat>(),
        672usize,
        concat!("Size of: ", stringify!(ndb_stat))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_stat>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_stat))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).dbs) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_stat),
            "::",
            stringify!(dbs)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).common_kinds) as usize - ptr as usize },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_stat),
            "::",
            stringify!(common_kinds)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).other_kinds) as usize - ptr as usize },
        648usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_stat),
            "::",
            stringify!(other_kinds)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_text_search_key {
    pub str_len: ::std::os::raw::c_int,
    pub str_: *const ::std::os::raw::c_char,
    pub timestamp: u64,
    pub note_id: u64,
    pub word_index: u64,
}
#[test]
fn bindgen_test_layout_ndb_text_search_key() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_text_search_key> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_text_search_key>(),
        40usize,
        concat!("Size of: ", stringify!(ndb_text_search_key))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_text_search_key>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_text_search_key))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).str_len) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_text_search_key),
            "::",
            stringify!(str_len)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_text_search_key),
            "::",
            stringify!(str_)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).timestamp) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_text_search_key),
            "::",
            stringify!(timestamp)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).note_id) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_text_search_key),
            "::",
            stringify!(note_id)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).word_index) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_text_search_key),
            "::",
            stringify!(word_index)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_text_search_result {
    pub key: ndb_text_search_key,
    pub prefix_chars: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_ndb_text_search_result() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_text_search_result> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_text_search_result>(),
        48usize,
        concat!("Size of: ", stringify!(ndb_text_search_result))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_text_search_result>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_text_search_result))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_text_search_result),
            "::",
            stringify!(key)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).prefix_chars) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_text_search_result),
            "::",
            stringify!(prefix_chars)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_text_search_results {
    pub results: [ndb_text_search_result; 128usize],
    pub num_results: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_ndb_text_search_results() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_text_search_results> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_text_search_results>(),
        6152usize,
        concat!("Size of: ", stringify!(ndb_text_search_results))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_text_search_results>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_text_search_results))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).results) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_text_search_results),
            "::",
            stringify!(results)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).num_results) as usize - ptr as usize },
        6144usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_text_search_results),
            "::",
            stringify!(num_results)
        )
    );
}
pub const ndb_block_type_BLOCK_HASHTAG: ndb_block_type = 1;
pub const ndb_block_type_BLOCK_TEXT: ndb_block_type = 2;
pub const ndb_block_type_BLOCK_MENTION_INDEX: ndb_block_type = 3;
pub const ndb_block_type_BLOCK_MENTION_BECH32: ndb_block_type = 4;
pub const ndb_block_type_BLOCK_URL: ndb_block_type = 5;
pub const ndb_block_type_BLOCK_INVOICE: ndb_block_type = 6;
pub type ndb_block_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_relays {
    pub relays: [ndb_str_block; 24usize],
    pub num_relays: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_ndb_relays() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_relays> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_relays>(),
        392usize,
        concat!("Size of: ", stringify!(ndb_relays))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_relays>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_relays))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).relays) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_relays),
            "::",
            stringify!(relays)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).num_relays) as usize - ptr as usize },
        384usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_relays),
            "::",
            stringify!(num_relays)
        )
    );
}
pub const nostr_bech32_type_NOSTR_BECH32_NOTE: nostr_bech32_type = 1;
pub const nostr_bech32_type_NOSTR_BECH32_NPUB: nostr_bech32_type = 2;
pub const nostr_bech32_type_NOSTR_BECH32_NPROFILE: nostr_bech32_type = 3;
pub const nostr_bech32_type_NOSTR_BECH32_NEVENT: nostr_bech32_type = 4;
pub const nostr_bech32_type_NOSTR_BECH32_NRELAY: nostr_bech32_type = 5;
pub const nostr_bech32_type_NOSTR_BECH32_NADDR: nostr_bech32_type = 6;
pub const nostr_bech32_type_NOSTR_BECH32_NSEC: nostr_bech32_type = 7;
pub type nostr_bech32_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct bech32_note {
    pub event_id: *const ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout_bech32_note() {
    const UNINIT: ::std::mem::MaybeUninit<bech32_note> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<bech32_note>(),
        8usize,
        concat!("Size of: ", stringify!(bech32_note))
    );
    assert_eq!(
        ::std::mem::align_of::<bech32_note>(),
        8usize,
        concat!("Alignment of ", stringify!(bech32_note))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).event_id) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(bech32_note),
            "::",
            stringify!(event_id)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct bech32_npub {
    pub pubkey: *const ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout_bech32_npub() {
    const UNINIT: ::std::mem::MaybeUninit<bech32_npub> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<bech32_npub>(),
        8usize,
        concat!("Size of: ", stringify!(bech32_npub))
    );
    assert_eq!(
        ::std::mem::align_of::<bech32_npub>(),
        8usize,
        concat!("Alignment of ", stringify!(bech32_npub))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(bech32_npub),
            "::",
            stringify!(pubkey)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct bech32_nsec {
    pub nsec: *const ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout_bech32_nsec() {
    const UNINIT: ::std::mem::MaybeUninit<bech32_nsec> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<bech32_nsec>(),
        8usize,
        concat!("Size of: ", stringify!(bech32_nsec))
    );
    assert_eq!(
        ::std::mem::align_of::<bech32_nsec>(),
        8usize,
        concat!("Alignment of ", stringify!(bech32_nsec))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).nsec) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(bech32_nsec),
            "::",
            stringify!(nsec)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct bech32_nevent {
    pub relays: ndb_relays,
    pub event_id: *const ::std::os::raw::c_uchar,
    pub pubkey: *const ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout_bech32_nevent() {
    const UNINIT: ::std::mem::MaybeUninit<bech32_nevent> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<bech32_nevent>(),
        408usize,
        concat!("Size of: ", stringify!(bech32_nevent))
    );
    assert_eq!(
        ::std::mem::align_of::<bech32_nevent>(),
        8usize,
        concat!("Alignment of ", stringify!(bech32_nevent))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).relays) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(bech32_nevent),
            "::",
            stringify!(relays)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).event_id) as usize - ptr as usize },
        392usize,
        concat!(
            "Offset of field: ",
            stringify!(bech32_nevent),
            "::",
            stringify!(event_id)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
        400usize,
        concat!(
            "Offset of field: ",
            stringify!(bech32_nevent),
            "::",
            stringify!(pubkey)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct bech32_nprofile {
    pub relays: ndb_relays,
    pub pubkey: *const ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout_bech32_nprofile() {
    const UNINIT: ::std::mem::MaybeUninit<bech32_nprofile> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<bech32_nprofile>(),
        400usize,
        concat!("Size of: ", stringify!(bech32_nprofile))
    );
    assert_eq!(
        ::std::mem::align_of::<bech32_nprofile>(),
        8usize,
        concat!("Alignment of ", stringify!(bech32_nprofile))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).relays) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(bech32_nprofile),
            "::",
            stringify!(relays)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
        392usize,
        concat!(
            "Offset of field: ",
            stringify!(bech32_nprofile),
            "::",
            stringify!(pubkey)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct bech32_naddr {
    pub relays: ndb_relays,
    pub identifier: ndb_str_block,
    pub pubkey: *const ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout_bech32_naddr() {
    const UNINIT: ::std::mem::MaybeUninit<bech32_naddr> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<bech32_naddr>(),
        416usize,
        concat!("Size of: ", stringify!(bech32_naddr))
    );
    assert_eq!(
        ::std::mem::align_of::<bech32_naddr>(),
        8usize,
        concat!("Alignment of ", stringify!(bech32_naddr))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).relays) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(bech32_naddr),
            "::",
            stringify!(relays)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).identifier) as usize - ptr as usize },
        392usize,
        concat!(
            "Offset of field: ",
            stringify!(bech32_naddr),
            "::",
            stringify!(identifier)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
        408usize,
        concat!(
            "Offset of field: ",
            stringify!(bech32_naddr),
            "::",
            stringify!(pubkey)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct bech32_nrelay {
    pub relay: ndb_str_block,
}
#[test]
fn bindgen_test_layout_bech32_nrelay() {
    const UNINIT: ::std::mem::MaybeUninit<bech32_nrelay> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<bech32_nrelay>(),
        16usize,
        concat!("Size of: ", stringify!(bech32_nrelay))
    );
    assert_eq!(
        ::std::mem::align_of::<bech32_nrelay>(),
        8usize,
        concat!("Alignment of ", stringify!(bech32_nrelay))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).relay) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(bech32_nrelay),
            "::",
            stringify!(relay)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct nostr_bech32 {
    pub type_: nostr_bech32_type,
    pub __bindgen_anon_1: nostr_bech32__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union nostr_bech32__bindgen_ty_1 {
    pub note: bech32_note,
    pub npub: bech32_npub,
    pub nsec: bech32_nsec,
    pub nevent: bech32_nevent,
    pub nprofile: bech32_nprofile,
    pub naddr: bech32_naddr,
    pub nrelay: bech32_nrelay,
}
#[test]
fn bindgen_test_layout_nostr_bech32__bindgen_ty_1() {
    const UNINIT: ::std::mem::MaybeUninit<nostr_bech32__bindgen_ty_1> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<nostr_bech32__bindgen_ty_1>(),
        416usize,
        concat!("Size of: ", stringify!(nostr_bech32__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<nostr_bech32__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(nostr_bech32__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).note) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nostr_bech32__bindgen_ty_1),
            "::",
            stringify!(note)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).npub) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nostr_bech32__bindgen_ty_1),
            "::",
            stringify!(npub)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).nsec) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nostr_bech32__bindgen_ty_1),
            "::",
            stringify!(nsec)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).nevent) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nostr_bech32__bindgen_ty_1),
            "::",
            stringify!(nevent)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).nprofile) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nostr_bech32__bindgen_ty_1),
            "::",
            stringify!(nprofile)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).naddr) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nostr_bech32__bindgen_ty_1),
            "::",
            stringify!(naddr)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).nrelay) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nostr_bech32__bindgen_ty_1),
            "::",
            stringify!(nrelay)
        )
    );
}
#[test]
fn bindgen_test_layout_nostr_bech32() {
    const UNINIT: ::std::mem::MaybeUninit<nostr_bech32> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<nostr_bech32>(),
        424usize,
        concat!("Size of: ", stringify!(nostr_bech32))
    );
    assert_eq!(
        ::std::mem::align_of::<nostr_bech32>(),
        8usize,
        concat!("Alignment of ", stringify!(nostr_bech32))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nostr_bech32),
            "::",
            stringify!(type_)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ndb_mention_bech32_block {
    pub str_: ndb_str_block,
    pub bech32: nostr_bech32,
}
#[test]
fn bindgen_test_layout_ndb_mention_bech32_block() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_mention_bech32_block> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_mention_bech32_block>(),
        440usize,
        concat!("Size of: ", stringify!(ndb_mention_bech32_block))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_mention_bech32_block>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_mention_bech32_block))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_mention_bech32_block),
            "::",
            stringify!(str_)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).bech32) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_mention_bech32_block),
            "::",
            stringify!(bech32)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_invoice {
    pub version: ::std::os::raw::c_uchar,
    pub amount: u64,
    pub timestamp: u64,
    pub expiry: u64,
    pub description: *mut ::std::os::raw::c_char,
    pub description_hash: *mut ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout_ndb_invoice() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_invoice> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_invoice>(),
        48usize,
        concat!("Size of: ", stringify!(ndb_invoice))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_invoice>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_invoice))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_invoice),
            "::",
            stringify!(version)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).amount) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_invoice),
            "::",
            stringify!(amount)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).timestamp) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_invoice),
            "::",
            stringify!(timestamp)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).expiry) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_invoice),
            "::",
            stringify!(expiry)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_invoice),
            "::",
            stringify!(description)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).description_hash) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_invoice),
            "::",
            stringify!(description_hash)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_invoice_block {
    pub invstr: ndb_str_block,
    pub invoice: ndb_invoice,
}
#[test]
fn bindgen_test_layout_ndb_invoice_block() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_invoice_block> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_invoice_block>(),
        64usize,
        concat!("Size of: ", stringify!(ndb_invoice_block))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_invoice_block>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_invoice_block))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).invstr) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_invoice_block),
            "::",
            stringify!(invstr)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).invoice) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_invoice_block),
            "::",
            stringify!(invoice)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ndb_block {
    pub type_: ndb_block_type,
    pub block: ndb_block__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union ndb_block__bindgen_ty_1 {
    pub str_: ndb_str_block,
    pub invoice: ndb_invoice_block,
    pub mention_bech32: ndb_mention_bech32_block,
    pub mention_index: u32,
}
#[test]
fn bindgen_test_layout_ndb_block__bindgen_ty_1() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_block__bindgen_ty_1> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_block__bindgen_ty_1>(),
        440usize,
        concat!("Size of: ", stringify!(ndb_block__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_block__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_block__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_block__bindgen_ty_1),
            "::",
            stringify!(str_)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).invoice) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_block__bindgen_ty_1),
            "::",
            stringify!(invoice)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mention_bech32) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_block__bindgen_ty_1),
            "::",
            stringify!(mention_bech32)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mention_index) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_block__bindgen_ty_1),
            "::",
            stringify!(mention_index)
        )
    );
}
#[test]
fn bindgen_test_layout_ndb_block() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_block> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_block>(),
        448usize,
        concat!("Size of: ", stringify!(ndb_block))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_block>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_block))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_block),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).block) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_block),
            "::",
            stringify!(block)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ndb_block_iterator {
    pub content: *const ::std::os::raw::c_char,
    pub blocks: *mut ndb_blocks,
    pub block: ndb_block,
    pub p: *mut ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout_ndb_block_iterator() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_block_iterator> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_block_iterator>(),
        472usize,
        concat!("Size of: ", stringify!(ndb_block_iterator))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_block_iterator>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_block_iterator))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).content) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_block_iterator),
            "::",
            stringify!(content)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).blocks) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_block_iterator),
            "::",
            stringify!(blocks)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).block) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_block_iterator),
            "::",
            stringify!(block)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize },
        464usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_block_iterator),
            "::",
            stringify!(p)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_query_result {
    pub note: *mut ndb_note,
    pub note_size: u64,
    pub note_id: u64,
}
#[test]
fn bindgen_test_layout_ndb_query_result() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_query_result> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_query_result>(),
        24usize,
        concat!("Size of: ", stringify!(ndb_query_result))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_query_result>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_query_result))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).note) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_query_result),
            "::",
            stringify!(note)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).note_size) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_query_result),
            "::",
            stringify!(note_size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).note_id) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_query_result),
            "::",
            stringify!(note_id)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ndb_query_results {
    pub cur: cursor,
}
#[test]
fn bindgen_test_layout_ndb_query_results() {
    const UNINIT: ::std::mem::MaybeUninit<ndb_query_results> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ndb_query_results>(),
        24usize,
        concat!("Size of: ", stringify!(ndb_query_results))
    );
    assert_eq!(
        ::std::mem::align_of::<ndb_query_results>(),
        8usize,
        concat!("Alignment of ", stringify!(ndb_query_results))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).cur) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ndb_query_results),
            "::",
            stringify!(cur)
        )
    );
}
extern "C" {
    pub fn ndb_default_config(arg1: *mut ndb_config);
}
extern "C" {
    pub fn ndb_config_set_ingest_threads(config: *mut ndb_config, threads: ::std::os::raw::c_int);
}
extern "C" {
    pub fn ndb_config_set_flags(config: *mut ndb_config, flags: ::std::os::raw::c_int);
}
extern "C" {
    pub fn ndb_config_set_mapsize(config: *mut ndb_config, mapsize: usize);
}
extern "C" {
    pub fn ndb_config_set_ingest_filter(
        config: *mut ndb_config,
        fn_: ndb_ingest_filter_fn,
        arg1: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn ndb_config_set_subscription_callback(
        config: *mut ndb_config,
        fn_: ndb_sub_fn,
        ctx: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn ndb_calculate_id(
        note: *mut ndb_note,
        buf: *mut ::std::os::raw::c_uchar,
        buflen: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_sign_id(
        keypair: *mut ndb_keypair,
        id: *mut ::std::os::raw::c_uchar,
        sig: *mut ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_create_keypair(key: *mut ndb_keypair) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_decode_key(
        secstr: *const ::std::os::raw::c_char,
        keypair: *mut ndb_keypair,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_note_verify(
        secp_ctx: *mut ::std::os::raw::c_void,
        pubkey: *mut ::std::os::raw::c_uchar,
        id: *mut ::std::os::raw::c_uchar,
        signature: *mut ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_init(
        ndb: *mut *mut ndb,
        dbdir: *const ::std::os::raw::c_char,
        arg1: *const ndb_config,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_db_version(ndb: *mut ndb) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_process_event(
        arg1: *mut ndb,
        json: *const ::std::os::raw::c_char,
        len: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_process_events(
        arg1: *mut ndb,
        ldjson: *const ::std::os::raw::c_char,
        len: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_process_client_event(
        arg1: *mut ndb,
        json: *const ::std::os::raw::c_char,
        len: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_process_client_events(
        arg1: *mut ndb,
        json: *const ::std::os::raw::c_char,
        len: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_begin_query(arg1: *mut ndb, arg2: *mut ndb_txn) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_search_profile(
        txn: *mut ndb_txn,
        search: *mut ndb_search,
        query: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_search_profile_next(search: *mut ndb_search) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_search_profile_end(search: *mut ndb_search);
}
extern "C" {
    pub fn ndb_end_query(arg1: *mut ndb_txn) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_write_last_profile_fetch(
        ndb: *mut ndb,
        pubkey: *const ::std::os::raw::c_uchar,
        fetched_at: u64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_read_last_profile_fetch(
        txn: *mut ndb_txn,
        pubkey: *const ::std::os::raw::c_uchar,
    ) -> u64;
}
extern "C" {
    pub fn ndb_get_profile_by_pubkey(
        txn: *mut ndb_txn,
        pubkey: *const ::std::os::raw::c_uchar,
        len: *mut usize,
        primkey: *mut u64,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn ndb_get_profile_by_key(
        txn: *mut ndb_txn,
        key: u64,
        len: *mut usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn ndb_get_notekey_by_id(txn: *mut ndb_txn, id: *const ::std::os::raw::c_uchar) -> u64;
}
extern "C" {
    pub fn ndb_get_profilekey_by_pubkey(
        txn: *mut ndb_txn,
        id: *const ::std::os::raw::c_uchar,
    ) -> u64;
}
extern "C" {
    pub fn ndb_get_note_by_id(
        txn: *mut ndb_txn,
        id: *const ::std::os::raw::c_uchar,
        len: *mut usize,
        primkey: *mut u64,
    ) -> *mut ndb_note;
}
extern "C" {
    pub fn ndb_get_note_by_key(txn: *mut ndb_txn, key: u64, len: *mut usize) -> *mut ndb_note;
}
extern "C" {
    pub fn ndb_get_note_meta(
        txn: *mut ndb_txn,
        id: *const ::std::os::raw::c_uchar,
        len: *mut usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn ndb_destroy(arg1: *mut ndb);
}
extern "C" {
    pub fn ndb_parse_json_note(
        arg1: *mut ndb_json_parser,
        arg2: *mut *mut ndb_note,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_client_event_from_json(
        json: *const ::std::os::raw::c_char,
        len: ::std::os::raw::c_int,
        fce: *mut ndb_fce,
        buf: *mut ::std::os::raw::c_uchar,
        bufsize: ::std::os::raw::c_int,
        cb: *mut ndb_id_cb,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_ws_event_from_json(
        json: *const ::std::os::raw::c_char,
        len: ::std::os::raw::c_int,
        tce: *mut ndb_tce,
        buf: *mut ::std::os::raw::c_uchar,
        bufsize: ::std::os::raw::c_int,
        arg1: *mut ndb_id_cb,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_note_from_json(
        json: *const ::std::os::raw::c_char,
        len: ::std::os::raw::c_int,
        arg1: *mut *mut ndb_note,
        buf: *mut ::std::os::raw::c_uchar,
        buflen: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_builder_init(
        builder: *mut ndb_builder,
        buf: *mut ::std::os::raw::c_uchar,
        bufsize: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_builder_finalize(
        builder: *mut ndb_builder,
        note: *mut *mut ndb_note,
        privkey: *mut ndb_keypair,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_builder_set_content(
        builder: *mut ndb_builder,
        content: *const ::std::os::raw::c_char,
        len: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_builder_set_created_at(builder: *mut ndb_builder, created_at: u64);
}
extern "C" {
    pub fn ndb_builder_set_sig(builder: *mut ndb_builder, sig: *mut ::std::os::raw::c_uchar);
}
extern "C" {
    pub fn ndb_builder_set_pubkey(builder: *mut ndb_builder, pubkey: *mut ::std::os::raw::c_uchar);
}
extern "C" {
    pub fn ndb_builder_set_id(builder: *mut ndb_builder, id: *mut ::std::os::raw::c_uchar);
}
extern "C" {
    pub fn ndb_builder_set_kind(builder: *mut ndb_builder, kind: u32);
}
extern "C" {
    pub fn ndb_builder_new_tag(builder: *mut ndb_builder) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_builder_push_tag_str(
        builder: *mut ndb_builder,
        str_: *const ::std::os::raw::c_char,
        len: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_filter_init(arg1: *mut ndb_filter) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_filter_add_id_element(
        arg1: *mut ndb_filter,
        id: *const ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_filter_add_int_element(arg1: *mut ndb_filter, integer: u64)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_filter_add_str_element(
        arg1: *mut ndb_filter,
        str_: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_filter_eq(arg1: *const ndb_filter, arg2: *const ndb_filter)
        -> ::std::os::raw::c_int;
}
extern "C" {
    #[doc = " is `a` a subset of `b`"]
    pub fn ndb_filter_is_subset_of(
        a: *const ndb_filter,
        b: *const ndb_filter,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_filter_from_json(
        arg1: *const ::std::os::raw::c_char,
        len: ::std::os::raw::c_int,
        filter: *mut ndb_filter,
        buf: *mut ::std::os::raw::c_uchar,
        bufsize: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_filter_get_id_element(
        arg1: *const ndb_filter,
        arg2: *const ndb_filter_elements,
        index: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn ndb_filter_get_string_element(
        arg1: *const ndb_filter,
        arg2: *const ndb_filter_elements,
        index: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn ndb_filter_get_int_element(
        arg1: *const ndb_filter_elements,
        index: ::std::os::raw::c_int,
    ) -> u64;
}
extern "C" {
    pub fn ndb_filter_get_int_element_ptr(
        arg1: *mut ndb_filter_elements,
        index: ::std::os::raw::c_int,
    ) -> *mut u64;
}
extern "C" {
    pub fn ndb_filter_current_element(arg1: *const ndb_filter) -> *mut ndb_filter_elements;
}
extern "C" {
    pub fn ndb_filter_get_elements(
        arg1: *const ndb_filter,
        arg2: ::std::os::raw::c_int,
    ) -> *mut ndb_filter_elements;
}
extern "C" {
    pub fn ndb_filter_start_field(
        arg1: *mut ndb_filter,
        arg2: ndb_filter_fieldtype,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_filter_start_tag_field(
        arg1: *mut ndb_filter,
        tag: ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_filter_matches(arg1: *mut ndb_filter, arg2: *mut ndb_note) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_filter_clone(dst: *mut ndb_filter, src: *mut ndb_filter) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_filter_end(arg1: *mut ndb_filter) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_filter_end_field(arg1: *mut ndb_filter);
}
extern "C" {
    pub fn ndb_filter_destroy(arg1: *mut ndb_filter);
}
extern "C" {
    pub fn ndb_filter_json(
        arg1: *const ndb_filter,
        buf: *mut ::std::os::raw::c_char,
        buflen: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_subscribe(
        arg1: *mut ndb,
        arg2: *mut ndb_filter,
        num_filters: ::std::os::raw::c_int,
    ) -> u64;
}
extern "C" {
    pub fn ndb_wait_for_notes(
        arg1: *mut ndb,
        subid: u64,
        note_ids: *mut u64,
        note_id_capacity: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_poll_for_notes(
        arg1: *mut ndb,
        subid: u64,
        note_ids: *mut u64,
        note_id_capacity: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_unsubscribe(arg1: *mut ndb, subid: u64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_num_subscriptions(arg1: *mut ndb) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_subscription_filters(
        arg1: *mut ndb,
        subid: u64,
        filters: *mut ::std::os::raw::c_int,
    ) -> *mut ndb_filter;
}
extern "C" {
    pub fn ndb_text_search(
        txn: *mut ndb_txn,
        query: *const ::std::os::raw::c_char,
        arg1: *mut ndb_text_search_results,
        arg2: *mut ndb_text_search_config,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_default_text_search_config(arg1: *mut ndb_text_search_config);
}
extern "C" {
    pub fn ndb_text_search_config_set_order(
        arg1: *mut ndb_text_search_config,
        arg2: ndb_search_order,
    );
}
extern "C" {
    pub fn ndb_text_search_config_set_limit(
        arg1: *mut ndb_text_search_config,
        limit: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn ndb_query(
        txn: *mut ndb_txn,
        filters: *mut ndb_filter,
        num_filters: ::std::os::raw::c_int,
        results: *mut ndb_query_result,
        result_capacity: ::std::os::raw::c_int,
        count: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_stat(ndb: *mut ndb, stat: *mut ndb_stat) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_stat_counts_init(counts: *mut ndb_stat_counts);
}
extern "C" {
    pub fn ndb_note_content(note: *mut ndb_note) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn ndb_note_str(note: *mut ndb_note, pstr: *mut ndb_packed_str) -> ndb_str;
}
extern "C" {
    pub fn ndb_note_content_length(note: *mut ndb_note) -> u32;
}
extern "C" {
    pub fn ndb_note_created_at(note: *mut ndb_note) -> u32;
}
extern "C" {
    pub fn ndb_note_kind(note: *mut ndb_note) -> u32;
}
extern "C" {
    pub fn ndb_note_id(note: *mut ndb_note) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn ndb_note_pubkey(note: *mut ndb_note) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn ndb_note_sig(note: *mut ndb_note) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _ndb_note_set_kind(note: *mut ndb_note, kind: u32);
}
extern "C" {
    pub fn ndb_note_tags(note: *mut ndb_note) -> *mut ndb_tags;
}
extern "C" {
    pub fn ndb_str_len(str_: *mut ndb_str) -> ::std::os::raw::c_int;
}
extern "C" {
    #[doc = " write the note as json to a buffer"]
    pub fn ndb_note_json(
        arg1: *mut ndb_note,
        buf: *mut ::std::os::raw::c_char,
        buflen: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_tags_iterate_start(note: *mut ndb_note, iter: *mut ndb_iterator);
}
extern "C" {
    pub fn ndb_tags_count(arg1: *mut ndb_tags) -> u16;
}
extern "C" {
    pub fn ndb_tag_count(arg1: *mut ndb_tag) -> u16;
}
extern "C" {
    pub fn ndb_tags_iterate_next(iter: *mut ndb_iterator) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_iter_tag_str(iter: *mut ndb_iterator, ind: ::std::os::raw::c_int) -> ndb_str;
}
extern "C" {
    pub fn ndb_tag_str(
        note: *mut ndb_note,
        tag: *mut ndb_tag,
        ind: ::std::os::raw::c_int,
    ) -> ndb_str;
}
extern "C" {
    pub fn ndb_db_name(db: ndb_dbs) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn ndb_kind_name(ck: ndb_common_kind) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn ndb_kind_to_common_kind(kind: ::std::os::raw::c_int) -> ndb_common_kind;
}
extern "C" {
    pub fn ndb_parse_content(
        buf: *mut ::std::os::raw::c_uchar,
        buf_size: ::std::os::raw::c_int,
        content: *const ::std::os::raw::c_char,
        content_len: ::std::os::raw::c_int,
        blocks_p: *mut *mut ndb_blocks,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_get_block_type(block: *mut ndb_block) -> ndb_block_type;
}
extern "C" {
    pub fn ndb_blocks_flags(block: *mut ndb_blocks) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ndb_blocks_total_size(blocks: *mut ndb_blocks) -> usize;
}
extern "C" {
    pub fn ndb_blocks_word_count(blocks: *mut ndb_blocks) -> ::std::os::raw::c_int;
}
extern "C" {
    #[doc = " Free blocks if they are owned, safe to call on unowned blocks as well."]
    pub fn ndb_blocks_free(blocks: *mut ndb_blocks);
}
extern "C" {
    pub fn ndb_get_blocks_by_key(
        ndb: *mut ndb,
        txn: *mut ndb_txn,
        note_key: u64,
    ) -> *mut ndb_blocks;
}
extern "C" {
    pub fn ndb_blocks_iterate_start(
        arg1: *const ::std::os::raw::c_char,
        arg2: *mut ndb_blocks,
        arg3: *mut ndb_block_iterator,
    );
}
extern "C" {
    pub fn ndb_blocks_iterate_next(arg1: *mut ndb_block_iterator) -> *mut ndb_block;
}
extern "C" {
    pub fn ndb_block_str(arg1: *mut ndb_block) -> *mut ndb_str_block;
}
extern "C" {
    pub fn ndb_str_block_ptr(arg1: *mut ndb_str_block) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn ndb_str_block_len(arg1: *mut ndb_str_block) -> u32;
}
extern "C" {
    pub fn ndb_bech32_block(block: *mut ndb_block) -> *mut nostr_bech32;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __crt_locale_data {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __crt_multibyte_data {
    pub _address: u8,
}
pub type __builtin_va_list = *mut ::std::os::raw::c_char;
