/* automatically generated by rust-bindgen 0.55.1 */

pub const _STDINT_H: u32 = 1;
pub const _FEATURES_H: u32 = 1;
pub const __USE_ANSI: u32 = 1;
pub const _BSD_SOURCE: u32 = 1;
pub const _SVID_SOURCE: u32 = 1;
pub const __USE_ISOC11: u32 = 1;
pub const __USE_ISOC99: u32 = 1;
pub const __USE_ISOC95: u32 = 1;
pub const _POSIX_SOURCE: u32 = 1;
pub const _POSIX_C_SOURCE: u32 = 200809;
pub const __USE_POSIX_IMPLICITLY: u32 = 1;
pub const __USE_POSIX: u32 = 1;
pub const __USE_POSIX2: u32 = 1;
pub const __USE_POSIX199309: u32 = 1;
pub const __USE_POSIX199506: u32 = 1;
pub const __USE_XOPEN2K: u32 = 1;
pub const __USE_XOPEN2K8: u32 = 1;
pub const _ATFILE_SOURCE: u32 = 1;
pub const __USE_MISC: u32 = 1;
pub const __USE_BSD: u32 = 1;
pub const __USE_SVID: u32 = 1;
pub const __USE_ATFILE: u32 = 1;
pub const __USE_FORTIFY_LEVEL: u32 = 0;
pub const _STDC_PREDEF_H: u32 = 1;
pub const __STDC_IEC_559__: u32 = 1;
pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
pub const __STDC_ISO_10646__: u32 = 201103;
pub const __STDC_NO_THREADS__: u32 = 1;
pub const __GNU_LIBRARY__: u32 = 6;
pub const __GLIBC__: u32 = 2;
pub const __GLIBC_MINOR__: u32 = 17;
pub const __GLIBC_HAVE_LONG_LONG: u32 = 1;
pub const _SYS_CDEFS_H: u32 = 1;
pub const __WORDSIZE: u32 = 64;
pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
pub const __SYSCALL_WORDSIZE: u32 = 64;
pub const _BITS_WCHAR_H: u32 = 1;
pub const __WCHAR_MIN: i32 = -2147483648;
pub const __WCHAR_MAX: u32 = 2147483647;
pub const INT8_MIN: i32 = -128;
pub const INT16_MIN: i32 = -32768;
pub const INT32_MIN: i32 = -2147483648;
pub const INT8_MAX: u32 = 127;
pub const INT16_MAX: u32 = 32767;
pub const INT32_MAX: u32 = 2147483647;
pub const UINT8_MAX: u32 = 255;
pub const UINT16_MAX: u32 = 65535;
pub const UINT32_MAX: u32 = 4294967295;
pub const INT_LEAST8_MIN: i32 = -128;
pub const INT_LEAST16_MIN: i32 = -32768;
pub const INT_LEAST32_MIN: i32 = -2147483648;
pub const INT_LEAST8_MAX: u32 = 127;
pub const INT_LEAST16_MAX: u32 = 32767;
pub const INT_LEAST32_MAX: u32 = 2147483647;
pub const UINT_LEAST8_MAX: u32 = 255;
pub const UINT_LEAST16_MAX: u32 = 65535;
pub const UINT_LEAST32_MAX: u32 = 4294967295;
pub const INT_FAST8_MIN: i32 = -128;
pub const INT_FAST16_MIN: i64 = -9223372036854775808;
pub const INT_FAST32_MIN: i64 = -9223372036854775808;
pub const INT_FAST8_MAX: u32 = 127;
pub const INT_FAST16_MAX: u64 = 9223372036854775807;
pub const INT_FAST32_MAX: u64 = 9223372036854775807;
pub const UINT_FAST8_MAX: u32 = 255;
pub const UINT_FAST16_MAX: i32 = -1;
pub const UINT_FAST32_MAX: i32 = -1;
pub const INTPTR_MIN: i64 = -9223372036854775808;
pub const INTPTR_MAX: u64 = 9223372036854775807;
pub const UINTPTR_MAX: i32 = -1;
pub const PTRDIFF_MIN: i64 = -9223372036854775808;
pub const PTRDIFF_MAX: u64 = 9223372036854775807;
pub const SIG_ATOMIC_MIN: i32 = -2147483648;
pub const SIG_ATOMIC_MAX: u32 = 2147483647;
pub const SIZE_MAX: i32 = -1;
pub const WCHAR_MIN: i32 = -2147483648;
pub const WCHAR_MAX: u32 = 2147483647;
pub const WINT_MIN: u32 = 0;
pub const WINT_MAX: u32 = 4294967295;
pub const TSDB_DATA_TYPE_NULL: u32 = 0;
pub const TSDB_DATA_TYPE_BOOL: u32 = 1;
pub const TSDB_DATA_TYPE_TINYINT: u32 = 2;
pub const TSDB_DATA_TYPE_SMALLINT: u32 = 3;
pub const TSDB_DATA_TYPE_INT: u32 = 4;
pub const TSDB_DATA_TYPE_BIGINT: u32 = 5;
pub const TSDB_DATA_TYPE_FLOAT: u32 = 6;
pub const TSDB_DATA_TYPE_DOUBLE: u32 = 7;
pub const TSDB_DATA_TYPE_BINARY: u32 = 8;
pub const TSDB_DATA_TYPE_TIMESTAMP: u32 = 9;
pub const TSDB_DATA_TYPE_NCHAR: u32 = 10;
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_long;
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_ulong;
pub type int_fast8_t = ::std::os::raw::c_schar;
pub type int_fast16_t = ::std::os::raw::c_long;
pub type int_fast32_t = ::std::os::raw::c_long;
pub type int_fast64_t = ::std::os::raw::c_long;
pub type uint_fast8_t = ::std::os::raw::c_uchar;
pub type uint_fast16_t = ::std::os::raw::c_ulong;
pub type uint_fast32_t = ::std::os::raw::c_ulong;
pub type uint_fast64_t = ::std::os::raw::c_ulong;
pub type intmax_t = ::std::os::raw::c_long;
pub type uintmax_t = ::std::os::raw::c_ulong;
pub type TAOS = ::std::os::raw::c_void;
pub type TAOS_ROW = *mut *mut ::std::os::raw::c_void;
pub type TAOS_RES = ::std::os::raw::c_void;
pub type TAOS_SUB = ::std::os::raw::c_void;
pub type TAOS_STREAM = ::std::os::raw::c_void;
pub type TAOS_STMT = ::std::os::raw::c_void;
pub const TSDB_OPTION_TSDB_OPTION_LOCALE: TSDB_OPTION = 0;
pub const TSDB_OPTION_TSDB_OPTION_CHARSET: TSDB_OPTION = 1;
pub const TSDB_OPTION_TSDB_OPTION_TIMEZONE: TSDB_OPTION = 2;
pub const TSDB_OPTION_TSDB_OPTION_CONFIGDIR: TSDB_OPTION = 3;
pub const TSDB_OPTION_TSDB_OPTION_SHELL_ACTIVITY_TIMER: TSDB_OPTION = 4;
pub const TSDB_OPTION_TSDB_MAX_OPTIONS: TSDB_OPTION = 5;
pub type TSDB_OPTION = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct taosField {
    pub name: [::std::os::raw::c_char; 65usize],
    pub type_: u8,
    pub bytes: i16,
}
#[test]
fn bindgen_test_layout_taosField() {
    assert_eq!(
        ::std::mem::size_of::<taosField>(),
        68usize,
        concat!("Size of: ", stringify!(taosField))
    );
    assert_eq!(
        ::std::mem::align_of::<taosField>(),
        2usize,
        concat!("Alignment of ", stringify!(taosField))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<taosField>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(taosField),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<taosField>())).type_ as *const _ as usize },
        65usize,
        concat!(
            "Offset of field: ",
            stringify!(taosField),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<taosField>())).bytes as *const _ as usize },
        66usize,
        concat!(
            "Offset of field: ",
            stringify!(taosField),
            "::",
            stringify!(bytes)
        )
    );
}
pub type TAOS_FIELD = taosField;
extern "C" {
    pub fn taos_init();
}
extern "C" {
    pub fn taos_cleanup();
}
extern "C" {
    pub fn taos_options(
        option: TSDB_OPTION,
        arg: *const ::std::os::raw::c_void,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn taos_connect(
        ip: *const ::std::os::raw::c_char,
        user: *const ::std::os::raw::c_char,
        pass: *const ::std::os::raw::c_char,
        db: *const ::std::os::raw::c_char,
        port: u16,
    ) -> *mut TAOS;
}
extern "C" {
    pub fn taos_close(taos: *mut TAOS);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TAOS_BIND {
    pub buffer_type: ::std::os::raw::c_int,
    pub buffer: *mut ::std::os::raw::c_void,
    pub buffer_length: usize,
    pub length: *mut usize,
    pub is_null: *mut ::std::os::raw::c_int,
    pub is_unsigned: ::std::os::raw::c_int,
    pub error: *mut ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_TAOS_BIND() {
    assert_eq!(
        ::std::mem::size_of::<TAOS_BIND>(),
        56usize,
        concat!("Size of: ", stringify!(TAOS_BIND))
    );
    assert_eq!(
        ::std::mem::align_of::<TAOS_BIND>(),
        8usize,
        concat!("Alignment of ", stringify!(TAOS_BIND))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TAOS_BIND>())).buffer_type as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TAOS_BIND),
            "::",
            stringify!(buffer_type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TAOS_BIND>())).buffer as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(TAOS_BIND),
            "::",
            stringify!(buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TAOS_BIND>())).buffer_length as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(TAOS_BIND),
            "::",
            stringify!(buffer_length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TAOS_BIND>())).length as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(TAOS_BIND),
            "::",
            stringify!(length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TAOS_BIND>())).is_null as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(TAOS_BIND),
            "::",
            stringify!(is_null)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TAOS_BIND>())).is_unsigned as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(TAOS_BIND),
            "::",
            stringify!(is_unsigned)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TAOS_BIND>())).error as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(TAOS_BIND),
            "::",
            stringify!(error)
        )
    );
}
extern "C" {
    pub fn taos_stmt_init(taos: *mut TAOS) -> *mut TAOS_STMT;
}
extern "C" {
    pub fn taos_stmt_prepare(
        stmt: *mut TAOS_STMT,
        sql: *const ::std::os::raw::c_char,
        length: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn taos_stmt_bind_param(
        stmt: *mut TAOS_STMT,
        bind: *mut TAOS_BIND,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn taos_stmt_add_batch(stmt: *mut TAOS_STMT) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn taos_stmt_execute(stmt: *mut TAOS_STMT) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn taos_stmt_use_result(stmt: *mut TAOS_STMT) -> *mut TAOS_RES;
}
extern "C" {
    pub fn taos_stmt_close(stmt: *mut TAOS_STMT) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn taos_query(taos: *mut TAOS, sql: *const ::std::os::raw::c_char) -> *mut TAOS_RES;
}
extern "C" {
    pub fn taos_fetch_row(res: *mut TAOS_RES) -> TAOS_ROW;
}
extern "C" {
    pub fn taos_result_precision(res: *mut TAOS_RES) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn taos_free_result(res: *mut TAOS_RES);
}
extern "C" {
    pub fn taos_field_count(tres: *mut TAOS_RES) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn taos_num_fields(res: *mut TAOS_RES) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn taos_affected_rows(res: *mut TAOS_RES) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn taos_fetch_fields(res: *mut TAOS_RES) -> *mut TAOS_FIELD;
}
extern "C" {
    pub fn taos_select_db(
        taos: *mut TAOS,
        db: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn taos_print_row(
        str_: *mut ::std::os::raw::c_char,
        row: TAOS_ROW,
        fields: *mut TAOS_FIELD,
        num_fields: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn taos_stop_query(res: *mut TAOS_RES);
}
extern "C" {
    pub fn taos_fetch_block(res: *mut TAOS_RES, rows: *mut TAOS_ROW) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn taos_validate_sql(
        taos: *mut TAOS,
        sql: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn taos_fetch_lengths(res: *mut TAOS_RES) -> *mut ::std::os::raw::c_int;
}
extern "C" {
    pub fn taos_get_server_info(taos: *mut TAOS) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn taos_get_client_info() -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn taos_errstr(tres: *mut TAOS_RES) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn taos_errno(tres: *mut TAOS_RES) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn taos_query_a(
        taos: *mut TAOS,
        sql: *const ::std::os::raw::c_char,
        fp: ::std::option::Option<
            unsafe extern "C" fn(
                param: *mut ::std::os::raw::c_void,
                arg1: *mut TAOS_RES,
                code: ::std::os::raw::c_int,
            ),
        >,
        param: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn taos_fetch_rows_a(
        res: *mut TAOS_RES,
        fp: ::std::option::Option<
            unsafe extern "C" fn(
                param: *mut ::std::os::raw::c_void,
                arg1: *mut TAOS_RES,
                numOfRows: ::std::os::raw::c_int,
            ),
        >,
        param: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn taos_fetch_row_a(
        res: *mut TAOS_RES,
        fp: ::std::option::Option<
            unsafe extern "C" fn(
                param: *mut ::std::os::raw::c_void,
                arg1: *mut TAOS_RES,
                row: TAOS_ROW,
            ),
        >,
        param: *mut ::std::os::raw::c_void,
    );
}
pub type TAOS_SUBSCRIBE_CALLBACK = ::std::option::Option<
    unsafe extern "C" fn(
        tsub: *mut TAOS_SUB,
        res: *mut TAOS_RES,
        param: *mut ::std::os::raw::c_void,
        code: ::std::os::raw::c_int,
    ),
>;
extern "C" {
    pub fn taos_subscribe(
        taos: *mut TAOS,
        restart: ::std::os::raw::c_int,
        topic: *const ::std::os::raw::c_char,
        sql: *const ::std::os::raw::c_char,
        fp: TAOS_SUBSCRIBE_CALLBACK,
        param: *mut ::std::os::raw::c_void,
        interval: ::std::os::raw::c_int,
    ) -> *mut TAOS_SUB;
}
extern "C" {
    pub fn taos_consume(tsub: *mut TAOS_SUB) -> *mut TAOS_RES;
}
extern "C" {
    pub fn taos_unsubscribe(tsub: *mut TAOS_SUB, keepProgress: ::std::os::raw::c_int);
}
extern "C" {
    pub fn taos_load_table_info(
        taos: *mut TAOS,
        tableNameList: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
