/* automatically generated by rust-bindgen 0.69.4 */ pub const MYSQL_SERVER_VERSION: &[u8; 7] = b"5.7.42\0"; pub const MYSQL_BASE_VERSION: &[u8; 11] = b"mysqld-5.7\0"; pub const MYSQL_SERVER_SUFFIX_DEF: &[u8; 18] = b"-0ubuntu0.18.04.1\0"; pub const MYSQL_VERSION_ID: u32 = 50742; pub const MYSQL_PORT: u32 = 3306; pub const MYSQL_PORT_DEFAULT: u32 = 0; pub const MYSQL_UNIX_ADDR: &[u8; 28] = b"/var/run/mysqld/mysqld.sock\0"; pub const MYSQL_CONFIG_NAME: &[u8; 3] = b"my\0"; pub const MYSQL_COMPILATION_COMMENT: &[u8; 9] = b"(Ubuntu)\0"; pub const MYSQL_AUTODETECT_CHARSET_NAME: &[u8; 5] = b"auto\0"; pub const MYSQL_ERRMSG_SIZE: u32 = 512; pub const MYSQL_STMT_HEADER: u32 = 4; pub const MYSQL_LONG_DATA_HEADER: u32 = 6; pub const MYSQL_CLIENT_reserved1: u32 = 0; pub const MYSQL_CLIENT_reserved2: u32 = 1; pub const MYSQL_CLIENT_AUTHENTICATION_PLUGIN: u32 = 2; pub const MYSQL_CLIENT_TRACE_PLUGIN: u32 = 3; pub const MYSQL_CLIENT_AUTHENTICATION_PLUGIN_INTERFACE_VERSION: u32 = 256; pub const MYSQL_CLIENT_TRACE_PLUGIN_INTERFACE_VERSION: u32 = 256; pub const MYSQL_CLIENT_MAX_PLUGINS: u32 = 4; pub const MYSQL_USERNAME_LENGTH: u32 = 96; pub const MYSQL_NO_DATA: u32 = 100; pub const MYSQL_DATA_TRUNCATED: u32 = 101; pub type my_bool = ::std::os::raw::c_char; pub type my_socket = ::std::os::raw::c_int; #[repr(u32)] #[non_exhaustive] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum enum_field_types { MYSQL_TYPE_DECIMAL = 0, MYSQL_TYPE_TINY = 1, MYSQL_TYPE_SHORT = 2, MYSQL_TYPE_LONG = 3, MYSQL_TYPE_FLOAT = 4, MYSQL_TYPE_DOUBLE = 5, MYSQL_TYPE_NULL = 6, MYSQL_TYPE_TIMESTAMP = 7, MYSQL_TYPE_LONGLONG = 8, MYSQL_TYPE_INT24 = 9, MYSQL_TYPE_DATE = 10, MYSQL_TYPE_TIME = 11, MYSQL_TYPE_DATETIME = 12, MYSQL_TYPE_YEAR = 13, MYSQL_TYPE_NEWDATE = 14, MYSQL_TYPE_VARCHAR = 15, MYSQL_TYPE_BIT = 16, MYSQL_TYPE_TIMESTAMP2 = 17, MYSQL_TYPE_DATETIME2 = 18, MYSQL_TYPE_TIME2 = 19, MYSQL_TYPE_JSON = 245, MYSQL_TYPE_NEWDECIMAL = 246, MYSQL_TYPE_ENUM = 247, MYSQL_TYPE_SET = 248, MYSQL_TYPE_TINY_BLOB = 249, MYSQL_TYPE_MEDIUM_BLOB = 250, MYSQL_TYPE_LONG_BLOB = 251, MYSQL_TYPE_BLOB = 252, MYSQL_TYPE_VAR_STRING = 253, MYSQL_TYPE_STRING = 254, MYSQL_TYPE_GEOMETRY = 255, } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_vio { _unused: [u8; 0], } pub type Vio = st_vio; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_net { pub vio: *mut Vio, pub buff: *mut ::std::os::raw::c_uchar, pub buff_end: *mut ::std::os::raw::c_uchar, pub write_pos: *mut ::std::os::raw::c_uchar, pub read_pos: *mut ::std::os::raw::c_uchar, pub fd: my_socket, pub remain_in_buf: ::std::os::raw::c_ulong, pub length: ::std::os::raw::c_ulong, pub buf_length: ::std::os::raw::c_ulong, pub where_b: ::std::os::raw::c_ulong, pub max_packet: ::std::os::raw::c_ulong, pub max_packet_size: ::std::os::raw::c_ulong, pub pkt_nr: ::std::os::raw::c_uint, pub compress_pkt_nr: ::std::os::raw::c_uint, pub write_timeout: ::std::os::raw::c_uint, pub read_timeout: ::std::os::raw::c_uint, pub retry_count: ::std::os::raw::c_uint, pub fcntl: ::std::os::raw::c_int, pub return_status: *mut ::std::os::raw::c_uint, pub reading_or_writing: ::std::os::raw::c_uchar, pub save_char: ::std::os::raw::c_char, pub unused1: my_bool, pub unused2: my_bool, pub compress: my_bool, pub unused3: my_bool, pub unused: *mut ::std::os::raw::c_uchar, pub last_errno: ::std::os::raw::c_uint, pub error: ::std::os::raw::c_uchar, pub unused4: my_bool, pub unused5: my_bool, pub last_error: [::std::os::raw::c_char; 512usize], pub sqlstate: [::std::os::raw::c_char; 6usize], pub extension: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout_st_net() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 680usize, concat!("Size of: ", stringify!(st_net)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(st_net)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).vio) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(vio) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).buff) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(buff) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).buff_end) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(buff_end) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).write_pos) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(write_pos) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).read_pos) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(read_pos) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).fd) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(fd) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).remain_in_buf) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(remain_in_buf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 56usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(length) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).buf_length) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(buf_length) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).where_b) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(where_b) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).max_packet) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(max_packet) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).max_packet_size) as usize - ptr as usize }, 88usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(max_packet_size) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pkt_nr) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(pkt_nr) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).compress_pkt_nr) as usize - ptr as usize }, 100usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(compress_pkt_nr) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).write_timeout) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(write_timeout) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).read_timeout) as usize - ptr as usize }, 108usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(read_timeout) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).retry_count) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(retry_count) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).fcntl) as usize - ptr as usize }, 116usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(fcntl) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).return_status) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(return_status) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).reading_or_writing) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(reading_or_writing) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).save_char) as usize - ptr as usize }, 129usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(save_char) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unused1) as usize - ptr as usize }, 130usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(unused1) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unused2) as usize - ptr as usize }, 131usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(unused2) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).compress) as usize - ptr as usize }, 132usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(compress) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unused3) as usize - ptr as usize }, 133usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(unused3) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unused) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(unused) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).last_errno) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(last_errno) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).error) as usize - ptr as usize }, 148usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(error) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unused4) as usize - ptr as usize }, 149usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(unused4) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unused5) as usize - ptr as usize }, 150usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(unused5) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).last_error) as usize - ptr as usize }, 151usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(last_error) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).sqlstate) as usize - ptr as usize }, 663usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(sqlstate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).extension) as usize - ptr as usize }, 672usize, concat!( "Offset of field: ", stringify!(st_net), "::", stringify!(extension) ) ); } pub type NET = st_net; #[repr(u32)] #[non_exhaustive] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum mysql_enum_shutdown_level { SHUTDOWN_DEFAULT = 0, SHUTDOWN_WAIT_CONNECTIONS = 1, SHUTDOWN_WAIT_TRANSACTIONS = 2, SHUTDOWN_WAIT_UPDATES = 8, SHUTDOWN_WAIT_ALL_BUFFERS = 16, SHUTDOWN_WAIT_CRITICAL_BUFFERS = 17, KILL_QUERY = 254, KILL_CONNECTION = 255, } #[repr(u32)] #[non_exhaustive] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum enum_mysql_set_option { MYSQL_OPTION_MULTI_STATEMENTS_ON = 0, MYSQL_OPTION_MULTI_STATEMENTS_OFF = 1, } #[repr(u32)] #[non_exhaustive] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum enum_session_state_type { SESSION_TRACK_SYSTEM_VARIABLES = 0, SESSION_TRACK_SCHEMA = 1, SESSION_TRACK_STATE_CHANGE = 2, SESSION_TRACK_GTIDS = 3, SESSION_TRACK_TRANSACTION_CHARACTERISTICS = 4, SESSION_TRACK_TRANSACTION_STATE = 5, } extern "C" { pub fn mysql_errno_to_sqlstate( mysql_errno: ::std::os::raw::c_uint, ) -> *const ::std::os::raw::c_char; } #[repr(i32)] #[non_exhaustive] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum enum_mysql_timestamp_type { MYSQL_TIMESTAMP_NONE = -2, MYSQL_TIMESTAMP_ERROR = -1, MYSQL_TIMESTAMP_DATE = 0, MYSQL_TIMESTAMP_DATETIME = 1, MYSQL_TIMESTAMP_TIME = 2, } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_mysql_time { pub year: ::std::os::raw::c_uint, pub month: ::std::os::raw::c_uint, pub day: ::std::os::raw::c_uint, pub hour: ::std::os::raw::c_uint, pub minute: ::std::os::raw::c_uint, pub second: ::std::os::raw::c_uint, pub second_part: ::std::os::raw::c_ulong, pub neg: my_bool, pub time_type: enum_mysql_timestamp_type, } #[test] fn bindgen_test_layout_st_mysql_time() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 40usize, concat!("Size of: ", stringify!(st_mysql_time)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(st_mysql_time)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).year) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_mysql_time), "::", stringify!(year) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).month) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(st_mysql_time), "::", stringify!(month) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).day) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(st_mysql_time), "::", stringify!(day) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hour) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(st_mysql_time), "::", stringify!(hour) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).minute) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(st_mysql_time), "::", stringify!(minute) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).second) as usize - ptr as usize }, 20usize, concat!( "Offset of field: ", stringify!(st_mysql_time), "::", stringify!(second) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).second_part) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(st_mysql_time), "::", stringify!(second_part) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).neg) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(st_mysql_time), "::", stringify!(neg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).time_type) as usize - ptr as usize }, 36usize, concat!( "Offset of field: ", stringify!(st_mysql_time), "::", stringify!(time_type) ) ); } pub type MYSQL_TIME = st_mysql_time; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_list { pub prev: *mut st_list, pub next: *mut st_list, pub data: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout_st_list() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(st_list)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(st_list)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_list), "::", stringify!(prev) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(st_list), "::", stringify!(next) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(st_list), "::", stringify!(data) ) ); } pub type LIST = st_list; pub type __gnuc_va_list = __builtin_va_list; pub type va_list = __gnuc_va_list; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_mysql_client_plugin { pub type_: ::std::os::raw::c_int, pub interface_version: ::std::os::raw::c_uint, pub name: *const ::std::os::raw::c_char, pub author: *const ::std::os::raw::c_char, pub desc: *const ::std::os::raw::c_char, pub version: [::std::os::raw::c_uint; 3usize], pub license: *const ::std::os::raw::c_char, pub mysql_api: *mut ::std::os::raw::c_void, pub init: ::std::option::Option< unsafe extern "C" fn( arg1: *mut ::std::os::raw::c_char, arg2: usize, arg3: ::std::os::raw::c_int, arg4: *mut __va_list_tag, ) -> ::std::os::raw::c_int, >, pub deinit: ::std::option::Option ::std::os::raw::c_int>, pub options: ::std::option::Option< unsafe extern "C" fn( option: *const ::std::os::raw::c_char, arg1: *const ::std::os::raw::c_void, ) -> ::std::os::raw::c_int, >, } #[test] fn bindgen_test_layout_st_mysql_client_plugin() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 88usize, concat!("Size of: ", stringify!(st_mysql_client_plugin)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(st_mysql_client_plugin)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_mysql_client_plugin), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).interface_version) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(st_mysql_client_plugin), "::", stringify!(interface_version) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(st_mysql_client_plugin), "::", stringify!(name) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).author) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(st_mysql_client_plugin), "::", stringify!(author) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).desc) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(st_mysql_client_plugin), "::", stringify!(desc) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(st_mysql_client_plugin), "::", stringify!(version) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).license) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(st_mysql_client_plugin), "::", stringify!(license) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mysql_api) as usize - ptr as usize }, 56usize, concat!( "Offset of field: ", stringify!(st_mysql_client_plugin), "::", stringify!(mysql_api) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(st_mysql_client_plugin), "::", stringify!(init) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).deinit) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(st_mysql_client_plugin), "::", stringify!(deinit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(st_mysql_client_plugin), "::", stringify!(options) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_plugin_vio_info { pub protocol: st_plugin_vio_info__bindgen_ty_1, pub socket: ::std::os::raw::c_int, } pub const st_plugin_vio_info_MYSQL_VIO_INVALID: st_plugin_vio_info__bindgen_ty_1 = st_plugin_vio_info__bindgen_ty_1::MYSQL_VIO_INVALID; pub const st_plugin_vio_info_MYSQL_VIO_TCP: st_plugin_vio_info__bindgen_ty_1 = st_plugin_vio_info__bindgen_ty_1::MYSQL_VIO_TCP; pub const st_plugin_vio_info_MYSQL_VIO_SOCKET: st_plugin_vio_info__bindgen_ty_1 = st_plugin_vio_info__bindgen_ty_1::MYSQL_VIO_SOCKET; pub const st_plugin_vio_info_MYSQL_VIO_PIPE: st_plugin_vio_info__bindgen_ty_1 = st_plugin_vio_info__bindgen_ty_1::MYSQL_VIO_PIPE; pub const st_plugin_vio_info_MYSQL_VIO_MEMORY: st_plugin_vio_info__bindgen_ty_1 = st_plugin_vio_info__bindgen_ty_1::MYSQL_VIO_MEMORY; #[repr(u32)] #[non_exhaustive] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum st_plugin_vio_info__bindgen_ty_1 { MYSQL_VIO_INVALID = 0, MYSQL_VIO_TCP = 1, MYSQL_VIO_SOCKET = 2, MYSQL_VIO_PIPE = 3, MYSQL_VIO_MEMORY = 4, } #[test] fn bindgen_test_layout_st_plugin_vio_info() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, concat!("Size of: ", stringify!(st_plugin_vio_info)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(st_plugin_vio_info)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).protocol) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_plugin_vio_info), "::", stringify!(protocol) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).socket) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(st_plugin_vio_info), "::", stringify!(socket) ) ); } pub type MYSQL_PLUGIN_VIO_INFO = st_plugin_vio_info; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_plugin_vio { pub read_packet: ::std::option::Option< unsafe extern "C" fn( vio: *mut st_plugin_vio, buf: *mut *mut ::std::os::raw::c_uchar, ) -> ::std::os::raw::c_int, >, pub write_packet: ::std::option::Option< unsafe extern "C" fn( vio: *mut st_plugin_vio, packet: *const ::std::os::raw::c_uchar, packet_len: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int, >, pub info: ::std::option::Option< unsafe extern "C" fn(vio: *mut st_plugin_vio, info: *mut st_plugin_vio_info), >, } #[test] fn bindgen_test_layout_st_plugin_vio() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(st_plugin_vio)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(st_plugin_vio)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).read_packet) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_plugin_vio), "::", stringify!(read_packet) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).write_packet) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(st_plugin_vio), "::", stringify!(write_packet) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).info) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(st_plugin_vio), "::", stringify!(info) ) ); } pub type MYSQL_PLUGIN_VIO = st_plugin_vio; extern "C" { pub fn mysql_load_plugin( mysql: *mut st_mysql, name: *const ::std::os::raw::c_char, type_: ::std::os::raw::c_int, argc: ::std::os::raw::c_int, ... ) -> *mut st_mysql_client_plugin; } extern "C" { pub fn mysql_load_plugin_v( mysql: *mut st_mysql, name: *const ::std::os::raw::c_char, type_: ::std::os::raw::c_int, argc: ::std::os::raw::c_int, args: *mut __va_list_tag, ) -> *mut st_mysql_client_plugin; } extern "C" { pub fn mysql_client_find_plugin( mysql: *mut st_mysql, name: *const ::std::os::raw::c_char, type_: ::std::os::raw::c_int, ) -> *mut st_mysql_client_plugin; } extern "C" { pub fn mysql_client_register_plugin( mysql: *mut st_mysql, plugin: *mut st_mysql_client_plugin, ) -> *mut st_mysql_client_plugin; } extern "C" { pub fn mysql_plugin_options( plugin: *mut st_mysql_client_plugin, option: *const ::std::os::raw::c_char, value: *const ::std::os::raw::c_void, ) -> ::std::os::raw::c_int; } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_mysql_field { pub name: *mut ::std::os::raw::c_char, pub org_name: *mut ::std::os::raw::c_char, pub table: *mut ::std::os::raw::c_char, pub org_table: *mut ::std::os::raw::c_char, pub db: *mut ::std::os::raw::c_char, pub catalog: *mut ::std::os::raw::c_char, pub def: *mut ::std::os::raw::c_char, pub length: ::std::os::raw::c_ulong, pub max_length: ::std::os::raw::c_ulong, pub name_length: ::std::os::raw::c_uint, pub org_name_length: ::std::os::raw::c_uint, pub table_length: ::std::os::raw::c_uint, pub org_table_length: ::std::os::raw::c_uint, pub db_length: ::std::os::raw::c_uint, pub catalog_length: ::std::os::raw::c_uint, pub def_length: ::std::os::raw::c_uint, pub flags: ::std::os::raw::c_uint, pub decimals: ::std::os::raw::c_uint, pub charsetnr: ::std::os::raw::c_uint, pub type_: enum_field_types, pub extension: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout_st_mysql_field() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 128usize, concat!("Size of: ", stringify!(st_mysql_field)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(st_mysql_field)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(name) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).org_name) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(org_name) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).table) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(table) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).org_table) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(org_table) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).db) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(db) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).catalog) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(catalog) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).def) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(def) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 56usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(length) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).max_length) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(max_length) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).name_length) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(name_length) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).org_name_length) as usize - ptr as usize }, 76usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(org_name_length) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).table_length) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(table_length) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).org_table_length) as usize - ptr as usize }, 84usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(org_table_length) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).db_length) as usize - ptr as usize }, 88usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(db_length) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).catalog_length) as usize - ptr as usize }, 92usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(catalog_length) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).def_length) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(def_length) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 100usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).decimals) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(decimals) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).charsetnr) as usize - ptr as usize }, 108usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(charsetnr) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).extension) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(st_mysql_field), "::", stringify!(extension) ) ); } pub type MYSQL_FIELD = st_mysql_field; pub type MYSQL_ROW = *mut *mut ::std::os::raw::c_char; pub type MYSQL_FIELD_OFFSET = ::std::os::raw::c_uint; pub type my_ulonglong = ::std::os::raw::c_ulonglong; pub type PSI_memory_key = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_used_mem { pub next: *mut st_used_mem, pub left: ::std::os::raw::c_uint, pub size: ::std::os::raw::c_uint, } #[test] fn bindgen_test_layout_st_used_mem() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(st_used_mem)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(st_used_mem)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_used_mem), "::", stringify!(next) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(st_used_mem), "::", stringify!(left) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(st_used_mem), "::", stringify!(size) ) ); } pub type USED_MEM = st_used_mem; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_mem_root { pub free: *mut USED_MEM, pub used: *mut USED_MEM, pub pre_alloc: *mut USED_MEM, pub min_malloc: usize, pub block_size: usize, pub block_num: ::std::os::raw::c_uint, pub first_block_usage: ::std::os::raw::c_uint, pub max_capacity: usize, pub allocated_size: usize, pub error_for_capacity_exceeded: my_bool, pub error_handler: ::std::option::Option, pub m_psi_key: PSI_memory_key, } #[test] fn bindgen_test_layout_st_mem_root() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 88usize, concat!("Size of: ", stringify!(st_mem_root)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(st_mem_root)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_mem_root), "::", stringify!(free) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(st_mem_root), "::", stringify!(used) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pre_alloc) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(st_mem_root), "::", stringify!(pre_alloc) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).min_malloc) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(st_mem_root), "::", stringify!(min_malloc) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).block_size) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(st_mem_root), "::", stringify!(block_size) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).block_num) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(st_mem_root), "::", stringify!(block_num) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).first_block_usage) as usize - ptr as usize }, 44usize, concat!( "Offset of field: ", stringify!(st_mem_root), "::", stringify!(first_block_usage) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).max_capacity) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(st_mem_root), "::", stringify!(max_capacity) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).allocated_size) as usize - ptr as usize }, 56usize, concat!( "Offset of field: ", stringify!(st_mem_root), "::", stringify!(allocated_size) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).error_for_capacity_exceeded) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(st_mem_root), "::", stringify!(error_for_capacity_exceeded) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).error_handler) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(st_mem_root), "::", stringify!(error_handler) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).m_psi_key) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(st_mem_root), "::", stringify!(m_psi_key) ) ); } pub type MEM_ROOT = st_mem_root; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_mysql_rows { pub next: *mut st_mysql_rows, pub data: MYSQL_ROW, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_st_mysql_rows() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(st_mysql_rows)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(st_mysql_rows)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_mysql_rows), "::", stringify!(next) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(st_mysql_rows), "::", stringify!(data) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(st_mysql_rows), "::", stringify!(length) ) ); } pub type MYSQL_ROWS = st_mysql_rows; pub type MYSQL_ROW_OFFSET = *mut MYSQL_ROWS; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct embedded_query_result { _unused: [u8; 0], } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_mysql_data { pub data: *mut MYSQL_ROWS, pub embedded_info: *mut embedded_query_result, pub alloc: MEM_ROOT, pub rows: my_ulonglong, pub fields: ::std::os::raw::c_uint, pub extension: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout_st_mysql_data() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 128usize, concat!("Size of: ", stringify!(st_mysql_data)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(st_mysql_data)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_mysql_data), "::", stringify!(data) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).embedded_info) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(st_mysql_data), "::", stringify!(embedded_info) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(st_mysql_data), "::", stringify!(alloc) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).rows) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(st_mysql_data), "::", stringify!(rows) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).fields) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(st_mysql_data), "::", stringify!(fields) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).extension) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(st_mysql_data), "::", stringify!(extension) ) ); } pub type MYSQL_DATA = st_mysql_data; #[repr(u32)] #[non_exhaustive] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum mysql_option { MYSQL_OPT_CONNECT_TIMEOUT = 0, MYSQL_OPT_COMPRESS = 1, MYSQL_OPT_NAMED_PIPE = 2, MYSQL_INIT_COMMAND = 3, MYSQL_READ_DEFAULT_FILE = 4, MYSQL_READ_DEFAULT_GROUP = 5, MYSQL_SET_CHARSET_DIR = 6, MYSQL_SET_CHARSET_NAME = 7, MYSQL_OPT_LOCAL_INFILE = 8, MYSQL_OPT_PROTOCOL = 9, MYSQL_SHARED_MEMORY_BASE_NAME = 10, MYSQL_OPT_READ_TIMEOUT = 11, MYSQL_OPT_WRITE_TIMEOUT = 12, MYSQL_OPT_USE_RESULT = 13, MYSQL_OPT_USE_REMOTE_CONNECTION = 14, MYSQL_OPT_USE_EMBEDDED_CONNECTION = 15, MYSQL_OPT_GUESS_CONNECTION = 16, MYSQL_SET_CLIENT_IP = 17, MYSQL_SECURE_AUTH = 18, MYSQL_REPORT_DATA_TRUNCATION = 19, MYSQL_OPT_RECONNECT = 20, MYSQL_OPT_SSL_VERIFY_SERVER_CERT = 21, MYSQL_PLUGIN_DIR = 22, MYSQL_DEFAULT_AUTH = 23, MYSQL_OPT_BIND = 24, MYSQL_OPT_SSL_KEY = 25, MYSQL_OPT_SSL_CERT = 26, MYSQL_OPT_SSL_CA = 27, MYSQL_OPT_SSL_CAPATH = 28, MYSQL_OPT_SSL_CIPHER = 29, MYSQL_OPT_SSL_CRL = 30, MYSQL_OPT_SSL_CRLPATH = 31, MYSQL_OPT_CONNECT_ATTR_RESET = 32, MYSQL_OPT_CONNECT_ATTR_ADD = 33, MYSQL_OPT_CONNECT_ATTR_DELETE = 34, MYSQL_SERVER_PUBLIC_KEY = 35, MYSQL_ENABLE_CLEARTEXT_PLUGIN = 36, MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS = 37, MYSQL_OPT_SSL_ENFORCE = 38, MYSQL_OPT_MAX_ALLOWED_PACKET = 39, MYSQL_OPT_NET_BUFFER_LENGTH = 40, MYSQL_OPT_TLS_VERSION = 41, MYSQL_OPT_SSL_MODE = 42, MYSQL_OPT_GET_SERVER_PUBLIC_KEY = 43, } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_mysql_options_extention { _unused: [u8; 0], } #[repr(C)] #[derive(Copy, Clone)] pub struct st_mysql_options { pub connect_timeout: ::std::os::raw::c_uint, pub read_timeout: ::std::os::raw::c_uint, pub write_timeout: ::std::os::raw::c_uint, pub port: ::std::os::raw::c_uint, pub protocol: ::std::os::raw::c_uint, pub client_flag: ::std::os::raw::c_ulong, pub host: *mut ::std::os::raw::c_char, pub user: *mut ::std::os::raw::c_char, pub password: *mut ::std::os::raw::c_char, pub unix_socket: *mut ::std::os::raw::c_char, pub db: *mut ::std::os::raw::c_char, pub init_commands: *mut st_dynamic_array, pub my_cnf_file: *mut ::std::os::raw::c_char, pub my_cnf_group: *mut ::std::os::raw::c_char, pub charset_dir: *mut ::std::os::raw::c_char, pub charset_name: *mut ::std::os::raw::c_char, pub ssl_key: *mut ::std::os::raw::c_char, pub ssl_cert: *mut ::std::os::raw::c_char, pub ssl_ca: *mut ::std::os::raw::c_char, pub ssl_capath: *mut ::std::os::raw::c_char, pub ssl_cipher: *mut ::std::os::raw::c_char, pub shared_memory_base_name: *mut ::std::os::raw::c_char, pub max_allowed_packet: ::std::os::raw::c_ulong, pub use_ssl: my_bool, pub compress: my_bool, pub named_pipe: my_bool, pub unused1: my_bool, pub unused2: my_bool, pub unused3: my_bool, pub unused4: my_bool, pub methods_to_use: mysql_option, pub ci: st_mysql_options__bindgen_ty_1, pub unused5: my_bool, pub report_data_truncation: my_bool, pub local_infile_init: ::std::option::Option< unsafe extern "C" fn( arg1: *mut *mut ::std::os::raw::c_void, arg2: *const ::std::os::raw::c_char, arg3: *mut ::std::os::raw::c_void, ) -> ::std::os::raw::c_int, >, pub local_infile_read: ::std::option::Option< unsafe extern "C" fn( arg1: *mut ::std::os::raw::c_void, arg2: *mut ::std::os::raw::c_char, arg3: ::std::os::raw::c_uint, ) -> ::std::os::raw::c_int, >, pub local_infile_end: ::std::option::Option, pub local_infile_error: ::std::option::Option< unsafe extern "C" fn( arg1: *mut ::std::os::raw::c_void, arg2: *mut ::std::os::raw::c_char, arg3: ::std::os::raw::c_uint, ) -> ::std::os::raw::c_int, >, pub local_infile_userdata: *mut ::std::os::raw::c_void, pub extension: *mut st_mysql_options_extention, } #[repr(C)] #[derive(Copy, Clone)] pub union st_mysql_options__bindgen_ty_1 { pub client_ip: *mut ::std::os::raw::c_char, pub bind_address: *mut ::std::os::raw::c_char, } #[test] fn bindgen_test_layout_st_mysql_options__bindgen_ty_1() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, concat!("Size of: ", stringify!(st_mysql_options__bindgen_ty_1)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(st_mysql_options__bindgen_ty_1)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).client_ip) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_mysql_options__bindgen_ty_1), "::", stringify!(client_ip) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).bind_address) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_mysql_options__bindgen_ty_1), "::", stringify!(bind_address) ) ); } #[test] fn bindgen_test_layout_st_mysql_options() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 248usize, concat!("Size of: ", stringify!(st_mysql_options)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(st_mysql_options)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).connect_timeout) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(connect_timeout) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).read_timeout) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(read_timeout) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).write_timeout) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(write_timeout) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(port) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).protocol) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(protocol) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).client_flag) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(client_flag) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).host) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(host) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).user) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(user) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).password) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(password) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unix_socket) as usize - ptr as usize }, 56usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(unix_socket) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).db) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(db) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).init_commands) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(init_commands) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).my_cnf_file) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(my_cnf_file) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).my_cnf_group) as usize - ptr as usize }, 88usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(my_cnf_group) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).charset_dir) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(charset_dir) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).charset_name) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(charset_name) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ssl_key) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(ssl_key) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ssl_cert) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(ssl_cert) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ssl_ca) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(ssl_ca) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ssl_capath) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(ssl_capath) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ssl_cipher) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(ssl_cipher) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).shared_memory_base_name) as usize - ptr as usize }, 152usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(shared_memory_base_name) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).max_allowed_packet) as usize - ptr as usize }, 160usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(max_allowed_packet) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).use_ssl) as usize - ptr as usize }, 168usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(use_ssl) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).compress) as usize - ptr as usize }, 169usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(compress) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).named_pipe) as usize - ptr as usize }, 170usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(named_pipe) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unused1) as usize - ptr as usize }, 171usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(unused1) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unused2) as usize - ptr as usize }, 172usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(unused2) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unused3) as usize - ptr as usize }, 173usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(unused3) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unused4) as usize - ptr as usize }, 174usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(unused4) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).methods_to_use) as usize - ptr as usize }, 176usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(methods_to_use) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ci) as usize - ptr as usize }, 184usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(ci) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unused5) as usize - ptr as usize }, 192usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(unused5) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).report_data_truncation) as usize - ptr as usize }, 193usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(report_data_truncation) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).local_infile_init) as usize - ptr as usize }, 200usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(local_infile_init) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).local_infile_read) as usize - ptr as usize }, 208usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(local_infile_read) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).local_infile_end) as usize - ptr as usize }, 216usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(local_infile_end) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).local_infile_error) as usize - ptr as usize }, 224usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(local_infile_error) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).local_infile_userdata) as usize - ptr as usize }, 232usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(local_infile_userdata) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).extension) as usize - ptr as usize }, 240usize, concat!( "Offset of field: ", stringify!(st_mysql_options), "::", stringify!(extension) ) ); } #[repr(u32)] #[non_exhaustive] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum mysql_status { MYSQL_STATUS_READY = 0, MYSQL_STATUS_GET_RESULT = 1, MYSQL_STATUS_USE_RESULT = 2, MYSQL_STATUS_STATEMENT_GET_RESULT = 3, } #[repr(u32)] #[non_exhaustive] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum mysql_protocol_type { MYSQL_PROTOCOL_DEFAULT = 0, MYSQL_PROTOCOL_TCP = 1, MYSQL_PROTOCOL_SOCKET = 2, MYSQL_PROTOCOL_PIPE = 3, MYSQL_PROTOCOL_MEMORY = 4, } #[repr(u32)] #[non_exhaustive] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum mysql_ssl_mode { SSL_MODE_DISABLED = 1, SSL_MODE_PREFERRED = 2, SSL_MODE_REQUIRED = 3, SSL_MODE_VERIFY_CA = 4, SSL_MODE_VERIFY_IDENTITY = 5, } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct character_set { pub number: ::std::os::raw::c_uint, pub state: ::std::os::raw::c_uint, pub csname: *const ::std::os::raw::c_char, pub name: *const ::std::os::raw::c_char, pub comment: *const ::std::os::raw::c_char, pub dir: *const ::std::os::raw::c_char, pub mbminlen: ::std::os::raw::c_uint, pub mbmaxlen: ::std::os::raw::c_uint, } #[test] fn bindgen_test_layout_character_set() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 48usize, concat!("Size of: ", stringify!(character_set)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(character_set)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).number) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(character_set), "::", stringify!(number) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(character_set), "::", stringify!(state) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).csname) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(character_set), "::", stringify!(csname) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(character_set), "::", stringify!(name) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).comment) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(character_set), "::", stringify!(comment) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).dir) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(character_set), "::", stringify!(dir) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mbminlen) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(character_set), "::", stringify!(mbminlen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mbmaxlen) as usize - ptr as usize }, 44usize, concat!( "Offset of field: ", stringify!(character_set), "::", stringify!(mbmaxlen) ) ); } pub type MY_CHARSET_INFO = character_set; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_mysql_methods { _unused: [u8; 0], } #[repr(C)] #[derive(Copy, Clone)] pub struct st_mysql { pub net: NET, pub connector_fd: *mut ::std::os::raw::c_uchar, pub host: *mut ::std::os::raw::c_char, pub user: *mut ::std::os::raw::c_char, pub passwd: *mut ::std::os::raw::c_char, pub unix_socket: *mut ::std::os::raw::c_char, pub server_version: *mut ::std::os::raw::c_char, pub host_info: *mut ::std::os::raw::c_char, pub info: *mut ::std::os::raw::c_char, pub db: *mut ::std::os::raw::c_char, pub charset: *mut charset_info_st, pub fields: *mut MYSQL_FIELD, pub field_alloc: MEM_ROOT, pub affected_rows: my_ulonglong, pub insert_id: my_ulonglong, pub extra_info: my_ulonglong, pub thread_id: ::std::os::raw::c_ulong, pub packet_length: ::std::os::raw::c_ulong, pub port: ::std::os::raw::c_uint, pub client_flag: ::std::os::raw::c_ulong, pub server_capabilities: ::std::os::raw::c_ulong, pub protocol_version: ::std::os::raw::c_uint, pub field_count: ::std::os::raw::c_uint, pub server_status: ::std::os::raw::c_uint, pub server_language: ::std::os::raw::c_uint, pub warning_count: ::std::os::raw::c_uint, pub options: st_mysql_options, pub status: mysql_status, pub free_me: my_bool, pub reconnect: my_bool, pub scramble: [::std::os::raw::c_char; 21usize], pub unused1: my_bool, pub unused2: *mut ::std::os::raw::c_void, pub unused3: *mut ::std::os::raw::c_void, pub unused4: *mut ::std::os::raw::c_void, pub unused5: *mut ::std::os::raw::c_void, pub stmts: *mut LIST, pub methods: *const st_mysql_methods, pub thd: *mut ::std::os::raw::c_void, pub unbuffered_fetch_owner: *mut my_bool, pub info_buffer: *mut ::std::os::raw::c_char, pub extension: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout_st_mysql() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 1304usize, concat!("Size of: ", stringify!(st_mysql)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(st_mysql)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).net) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(net) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).connector_fd) as usize - ptr as usize }, 680usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(connector_fd) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).host) as usize - ptr as usize }, 688usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(host) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).user) as usize - ptr as usize }, 696usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(user) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).passwd) as usize - ptr as usize }, 704usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(passwd) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unix_socket) as usize - ptr as usize }, 712usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(unix_socket) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).server_version) as usize - ptr as usize }, 720usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(server_version) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).host_info) as usize - ptr as usize }, 728usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(host_info) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).info) as usize - ptr as usize }, 736usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(info) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).db) as usize - ptr as usize }, 744usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(db) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).charset) as usize - ptr as usize }, 752usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(charset) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).fields) as usize - ptr as usize }, 760usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(fields) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).field_alloc) as usize - ptr as usize }, 768usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(field_alloc) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).affected_rows) as usize - ptr as usize }, 856usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(affected_rows) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).insert_id) as usize - ptr as usize }, 864usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(insert_id) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).extra_info) as usize - ptr as usize }, 872usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(extra_info) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).thread_id) as usize - ptr as usize }, 880usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(thread_id) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).packet_length) as usize - ptr as usize }, 888usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(packet_length) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, 896usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(port) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).client_flag) as usize - ptr as usize }, 904usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(client_flag) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).server_capabilities) as usize - ptr as usize }, 912usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(server_capabilities) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).protocol_version) as usize - ptr as usize }, 920usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(protocol_version) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).field_count) as usize - ptr as usize }, 924usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(field_count) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).server_status) as usize - ptr as usize }, 928usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(server_status) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).server_language) as usize - ptr as usize }, 932usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(server_language) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).warning_count) as usize - ptr as usize }, 936usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(warning_count) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize }, 944usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(options) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, 1192usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(status) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).free_me) as usize - ptr as usize }, 1196usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(free_me) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).reconnect) as usize - ptr as usize }, 1197usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(reconnect) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).scramble) as usize - ptr as usize }, 1198usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(scramble) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unused1) as usize - ptr as usize }, 1219usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(unused1) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unused2) as usize - ptr as usize }, 1224usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(unused2) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unused3) as usize - ptr as usize }, 1232usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(unused3) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unused4) as usize - ptr as usize }, 1240usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(unused4) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unused5) as usize - ptr as usize }, 1248usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(unused5) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).stmts) as usize - ptr as usize }, 1256usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(stmts) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).methods) as usize - ptr as usize }, 1264usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(methods) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).thd) as usize - ptr as usize }, 1272usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(thd) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unbuffered_fetch_owner) as usize - ptr as usize }, 1280usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(unbuffered_fetch_owner) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).info_buffer) as usize - ptr as usize }, 1288usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(info_buffer) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).extension) as usize - ptr as usize }, 1296usize, concat!( "Offset of field: ", stringify!(st_mysql), "::", stringify!(extension) ) ); } pub type MYSQL = st_mysql; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_mysql_res { pub row_count: my_ulonglong, pub fields: *mut MYSQL_FIELD, pub data: *mut MYSQL_DATA, pub data_cursor: *mut MYSQL_ROWS, pub lengths: *mut ::std::os::raw::c_ulong, pub handle: *mut MYSQL, pub methods: *const st_mysql_methods, pub row: MYSQL_ROW, pub current_row: MYSQL_ROW, pub field_alloc: MEM_ROOT, pub field_count: ::std::os::raw::c_uint, pub current_field: ::std::os::raw::c_uint, pub eof: my_bool, pub unbuffered_fetch_cancelled: my_bool, pub extension: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout_st_mysql_res() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 184usize, concat!("Size of: ", stringify!(st_mysql_res)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(st_mysql_res)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).row_count) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_mysql_res), "::", stringify!(row_count) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).fields) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(st_mysql_res), "::", stringify!(fields) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(st_mysql_res), "::", stringify!(data) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).data_cursor) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(st_mysql_res), "::", stringify!(data_cursor) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).lengths) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(st_mysql_res), "::", stringify!(lengths) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(st_mysql_res), "::", stringify!(handle) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).methods) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(st_mysql_res), "::", stringify!(methods) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).row) as usize - ptr as usize }, 56usize, concat!( "Offset of field: ", stringify!(st_mysql_res), "::", stringify!(row) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).current_row) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(st_mysql_res), "::", stringify!(current_row) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).field_alloc) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(st_mysql_res), "::", stringify!(field_alloc) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).field_count) as usize - ptr as usize }, 160usize, concat!( "Offset of field: ", stringify!(st_mysql_res), "::", stringify!(field_count) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).current_field) as usize - ptr as usize }, 164usize, concat!( "Offset of field: ", stringify!(st_mysql_res), "::", stringify!(current_field) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).eof) as usize - ptr as usize }, 168usize, concat!( "Offset of field: ", stringify!(st_mysql_res), "::", stringify!(eof) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unbuffered_fetch_cancelled) as usize - ptr as usize }, 169usize, concat!( "Offset of field: ", stringify!(st_mysql_res), "::", stringify!(unbuffered_fetch_cancelled) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).extension) as usize - ptr as usize }, 176usize, concat!( "Offset of field: ", stringify!(st_mysql_res), "::", stringify!(extension) ) ); } pub type MYSQL_RES = st_mysql_res; extern "C" { pub fn mysql_server_init( argc: ::std::os::raw::c_int, argv: *mut *mut ::std::os::raw::c_char, groups: *mut *mut ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_server_end(); } extern "C" { pub fn mysql_thread_init() -> my_bool; } extern "C" { pub fn mysql_thread_end(); } extern "C" { pub fn mysql_num_rows(res: *mut MYSQL_RES) -> my_ulonglong; } extern "C" { pub fn mysql_num_fields(res: *mut MYSQL_RES) -> ::std::os::raw::c_uint; } extern "C" { pub fn mysql_eof(res: *mut MYSQL_RES) -> my_bool; } extern "C" { pub fn mysql_fetch_field_direct( res: *mut MYSQL_RES, fieldnr: ::std::os::raw::c_uint, ) -> *mut MYSQL_FIELD; } extern "C" { pub fn mysql_fetch_fields(res: *mut MYSQL_RES) -> *mut MYSQL_FIELD; } extern "C" { pub fn mysql_row_tell(res: *mut MYSQL_RES) -> MYSQL_ROW_OFFSET; } extern "C" { pub fn mysql_field_tell(res: *mut MYSQL_RES) -> MYSQL_FIELD_OFFSET; } extern "C" { pub fn mysql_field_count(mysql: *mut MYSQL) -> ::std::os::raw::c_uint; } extern "C" { pub fn mysql_affected_rows(mysql: *mut MYSQL) -> my_ulonglong; } extern "C" { pub fn mysql_insert_id(mysql: *mut MYSQL) -> my_ulonglong; } extern "C" { pub fn mysql_errno(mysql: *mut MYSQL) -> ::std::os::raw::c_uint; } extern "C" { pub fn mysql_error(mysql: *mut MYSQL) -> *const ::std::os::raw::c_char; } extern "C" { pub fn mysql_sqlstate(mysql: *mut MYSQL) -> *const ::std::os::raw::c_char; } extern "C" { pub fn mysql_warning_count(mysql: *mut MYSQL) -> ::std::os::raw::c_uint; } extern "C" { pub fn mysql_info(mysql: *mut MYSQL) -> *const ::std::os::raw::c_char; } extern "C" { pub fn mysql_thread_id(mysql: *mut MYSQL) -> ::std::os::raw::c_ulong; } extern "C" { pub fn mysql_character_set_name(mysql: *mut MYSQL) -> *const ::std::os::raw::c_char; } extern "C" { pub fn mysql_set_character_set( mysql: *mut MYSQL, csname: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_init(mysql: *mut MYSQL) -> *mut MYSQL; } extern "C" { pub fn mysql_ssl_set( mysql: *mut MYSQL, key: *const ::std::os::raw::c_char, cert: *const ::std::os::raw::c_char, ca: *const ::std::os::raw::c_char, capath: *const ::std::os::raw::c_char, cipher: *const ::std::os::raw::c_char, ) -> my_bool; } extern "C" { pub fn mysql_get_ssl_cipher(mysql: *mut MYSQL) -> *const ::std::os::raw::c_char; } extern "C" { pub fn mysql_change_user( mysql: *mut MYSQL, user: *const ::std::os::raw::c_char, passwd: *const ::std::os::raw::c_char, db: *const ::std::os::raw::c_char, ) -> my_bool; } extern "C" { pub fn mysql_real_connect( mysql: *mut MYSQL, host: *const ::std::os::raw::c_char, user: *const ::std::os::raw::c_char, passwd: *const ::std::os::raw::c_char, db: *const ::std::os::raw::c_char, port: ::std::os::raw::c_uint, unix_socket: *const ::std::os::raw::c_char, clientflag: ::std::os::raw::c_ulong, ) -> *mut MYSQL; } extern "C" { pub fn mysql_select_db( mysql: *mut MYSQL, db: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_query( mysql: *mut MYSQL, q: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_send_query( mysql: *mut MYSQL, q: *const ::std::os::raw::c_char, length: ::std::os::raw::c_ulong, ) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_real_query( mysql: *mut MYSQL, q: *const ::std::os::raw::c_char, length: ::std::os::raw::c_ulong, ) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_store_result(mysql: *mut MYSQL) -> *mut MYSQL_RES; } extern "C" { pub fn mysql_use_result(mysql: *mut MYSQL) -> *mut MYSQL_RES; } extern "C" { pub fn mysql_get_character_set_info(mysql: *mut MYSQL, charset: *mut MY_CHARSET_INFO); } extern "C" { pub fn mysql_session_track_get_first( mysql: *mut MYSQL, type_: enum_session_state_type, data: *mut *const ::std::os::raw::c_char, length: *mut usize, ) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_session_track_get_next( mysql: *mut MYSQL, type_: enum_session_state_type, data: *mut *const ::std::os::raw::c_char, length: *mut usize, ) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_set_local_infile_handler( mysql: *mut MYSQL, local_infile_init: ::std::option::Option< unsafe extern "C" fn( arg1: *mut *mut ::std::os::raw::c_void, arg2: *const ::std::os::raw::c_char, arg3: *mut ::std::os::raw::c_void, ) -> ::std::os::raw::c_int, >, local_infile_read: ::std::option::Option< unsafe extern "C" fn( arg1: *mut ::std::os::raw::c_void, arg2: *mut ::std::os::raw::c_char, arg3: ::std::os::raw::c_uint, ) -> ::std::os::raw::c_int, >, local_infile_end: ::std::option::Option< unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void), >, local_infile_error: ::std::option::Option< unsafe extern "C" fn( arg1: *mut ::std::os::raw::c_void, arg2: *mut ::std::os::raw::c_char, arg3: ::std::os::raw::c_uint, ) -> ::std::os::raw::c_int, >, arg1: *mut ::std::os::raw::c_void, ); } extern "C" { pub fn mysql_set_local_infile_default(mysql: *mut MYSQL); } extern "C" { pub fn mysql_shutdown( mysql: *mut MYSQL, shutdown_level: mysql_enum_shutdown_level, ) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_dump_debug_info(mysql: *mut MYSQL) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_refresh( mysql: *mut MYSQL, refresh_options: ::std::os::raw::c_uint, ) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_kill(mysql: *mut MYSQL, pid: ::std::os::raw::c_ulong) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_set_server_option( mysql: *mut MYSQL, option: enum_mysql_set_option, ) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_ping(mysql: *mut MYSQL) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_stat(mysql: *mut MYSQL) -> *const ::std::os::raw::c_char; } extern "C" { pub fn mysql_get_server_info(mysql: *mut MYSQL) -> *const ::std::os::raw::c_char; } extern "C" { pub fn mysql_get_client_info() -> *const ::std::os::raw::c_char; } extern "C" { pub fn mysql_get_client_version() -> ::std::os::raw::c_ulong; } extern "C" { pub fn mysql_get_host_info(mysql: *mut MYSQL) -> *const ::std::os::raw::c_char; } extern "C" { pub fn mysql_get_server_version(mysql: *mut MYSQL) -> ::std::os::raw::c_ulong; } extern "C" { pub fn mysql_get_proto_info(mysql: *mut MYSQL) -> ::std::os::raw::c_uint; } extern "C" { pub fn mysql_list_dbs(mysql: *mut MYSQL, wild: *const ::std::os::raw::c_char) -> *mut MYSQL_RES; } extern "C" { pub fn mysql_list_tables( mysql: *mut MYSQL, wild: *const ::std::os::raw::c_char, ) -> *mut MYSQL_RES; } extern "C" { pub fn mysql_list_processes(mysql: *mut MYSQL) -> *mut MYSQL_RES; } extern "C" { pub fn mysql_options( mysql: *mut MYSQL, option: mysql_option, arg: *const ::std::os::raw::c_void, ) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_options4( mysql: *mut MYSQL, option: mysql_option, arg1: *const ::std::os::raw::c_void, arg2: *const ::std::os::raw::c_void, ) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_get_option( mysql: *mut MYSQL, option: mysql_option, arg: *const ::std::os::raw::c_void, ) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_free_result(result: *mut MYSQL_RES); } extern "C" { pub fn mysql_data_seek(result: *mut MYSQL_RES, offset: my_ulonglong); } extern "C" { pub fn mysql_row_seek(result: *mut MYSQL_RES, offset: MYSQL_ROW_OFFSET) -> MYSQL_ROW_OFFSET; } extern "C" { pub fn mysql_field_seek( result: *mut MYSQL_RES, offset: MYSQL_FIELD_OFFSET, ) -> MYSQL_FIELD_OFFSET; } extern "C" { pub fn mysql_fetch_row(result: *mut MYSQL_RES) -> MYSQL_ROW; } extern "C" { pub fn mysql_fetch_lengths(result: *mut MYSQL_RES) -> *mut ::std::os::raw::c_ulong; } extern "C" { pub fn mysql_fetch_field(result: *mut MYSQL_RES) -> *mut MYSQL_FIELD; } extern "C" { pub fn mysql_list_fields( mysql: *mut MYSQL, table: *const ::std::os::raw::c_char, wild: *const ::std::os::raw::c_char, ) -> *mut MYSQL_RES; } extern "C" { pub fn mysql_escape_string( to: *mut ::std::os::raw::c_char, from: *const ::std::os::raw::c_char, from_length: ::std::os::raw::c_ulong, ) -> ::std::os::raw::c_ulong; } extern "C" { pub fn mysql_hex_string( to: *mut ::std::os::raw::c_char, from: *const ::std::os::raw::c_char, from_length: ::std::os::raw::c_ulong, ) -> ::std::os::raw::c_ulong; } extern "C" { pub fn mysql_real_escape_string( mysql: *mut MYSQL, to: *mut ::std::os::raw::c_char, from: *const ::std::os::raw::c_char, length: ::std::os::raw::c_ulong, ) -> ::std::os::raw::c_ulong; } extern "C" { pub fn mysql_real_escape_string_quote( mysql: *mut MYSQL, to: *mut ::std::os::raw::c_char, from: *const ::std::os::raw::c_char, length: ::std::os::raw::c_ulong, quote: ::std::os::raw::c_char, ) -> ::std::os::raw::c_ulong; } extern "C" { pub fn mysql_debug(debug: *const ::std::os::raw::c_char); } extern "C" { pub fn mysql_thread_safe() -> ::std::os::raw::c_uint; } extern "C" { pub fn mysql_embedded() -> my_bool; } extern "C" { pub fn mysql_read_query_result(mysql: *mut MYSQL) -> my_bool; } extern "C" { pub fn mysql_reset_connection(mysql: *mut MYSQL) -> ::std::os::raw::c_int; } #[repr(u32)] #[non_exhaustive] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum enum_mysql_stmt_state { MYSQL_STMT_INIT_DONE = 1, MYSQL_STMT_PREPARE_DONE = 2, MYSQL_STMT_EXECUTE_DONE = 3, MYSQL_STMT_FETCH_DONE = 4, } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_mysql_bind { pub length: *mut ::std::os::raw::c_ulong, pub is_null: *mut my_bool, pub buffer: *mut ::std::os::raw::c_void, pub error: *mut my_bool, pub row_ptr: *mut ::std::os::raw::c_uchar, pub store_param_func: ::std::option::Option, pub fetch_result: ::std::option::Option< unsafe extern "C" fn( arg1: *mut st_mysql_bind, arg2: *mut MYSQL_FIELD, row: *mut *mut ::std::os::raw::c_uchar, ), >, pub skip_result: ::std::option::Option< unsafe extern "C" fn( arg1: *mut st_mysql_bind, arg2: *mut MYSQL_FIELD, row: *mut *mut ::std::os::raw::c_uchar, ), >, pub buffer_length: ::std::os::raw::c_ulong, pub offset: ::std::os::raw::c_ulong, pub length_value: ::std::os::raw::c_ulong, pub param_number: ::std::os::raw::c_uint, pub pack_length: ::std::os::raw::c_uint, pub buffer_type: enum_field_types, pub error_value: my_bool, pub is_unsigned: my_bool, pub long_data_used: my_bool, pub is_null_value: my_bool, pub extension: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout_st_mysql_bind() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 112usize, concat!("Size of: ", stringify!(st_mysql_bind)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(st_mysql_bind)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(length) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).is_null) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(is_null) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(buffer) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).error) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(error) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).row_ptr) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(row_ptr) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).store_param_func) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(store_param_func) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).fetch_result) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(fetch_result) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).skip_result) as usize - ptr as usize }, 56usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(skip_result) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).buffer_length) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(buffer_length) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(offset) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length_value) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(length_value) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).param_number) as usize - ptr as usize }, 88usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(param_number) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pack_length) as usize - ptr as usize }, 92usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(pack_length) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).buffer_type) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(buffer_type) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).error_value) as usize - ptr as usize }, 100usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(error_value) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).is_unsigned) as usize - ptr as usize }, 101usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(is_unsigned) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).long_data_used) as usize - ptr as usize }, 102usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(long_data_used) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).is_null_value) as usize - ptr as usize }, 103usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(is_null_value) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).extension) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(st_mysql_bind), "::", stringify!(extension) ) ); } pub type MYSQL_BIND = st_mysql_bind; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_mysql_stmt_extension { _unused: [u8; 0], } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_mysql_stmt { pub mem_root: MEM_ROOT, pub list: LIST, pub mysql: *mut MYSQL, pub params: *mut MYSQL_BIND, pub bind: *mut MYSQL_BIND, pub fields: *mut MYSQL_FIELD, pub result: MYSQL_DATA, pub data_cursor: *mut MYSQL_ROWS, pub read_row_func: ::std::option::Option< unsafe extern "C" fn( stmt: *mut st_mysql_stmt, row: *mut *mut ::std::os::raw::c_uchar, ) -> ::std::os::raw::c_int, >, pub affected_rows: my_ulonglong, pub insert_id: my_ulonglong, pub stmt_id: ::std::os::raw::c_ulong, pub flags: ::std::os::raw::c_ulong, pub prefetch_rows: ::std::os::raw::c_ulong, pub server_status: ::std::os::raw::c_uint, pub last_errno: ::std::os::raw::c_uint, pub param_count: ::std::os::raw::c_uint, pub field_count: ::std::os::raw::c_uint, pub state: enum_mysql_stmt_state, pub last_error: [::std::os::raw::c_char; 512usize], pub sqlstate: [::std::os::raw::c_char; 6usize], pub send_types_to_server: my_bool, pub bind_param_done: my_bool, pub bind_result_done: ::std::os::raw::c_uchar, pub unbuffered_fetch_cancelled: my_bool, pub update_max_length: my_bool, pub extension: *mut st_mysql_stmt_extension, } #[test] fn bindgen_test_layout_st_mysql_stmt() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 880usize, concat!("Size of: ", stringify!(st_mysql_stmt)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(st_mysql_stmt)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mem_root) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(mem_root) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).list) as usize - ptr as usize }, 88usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(list) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mysql) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(mysql) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).params) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(params) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).bind) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(bind) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).fields) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(fields) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).result) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(result) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).data_cursor) as usize - ptr as usize }, 272usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(data_cursor) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).read_row_func) as usize - ptr as usize }, 280usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(read_row_func) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).affected_rows) as usize - ptr as usize }, 288usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(affected_rows) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).insert_id) as usize - ptr as usize }, 296usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(insert_id) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).stmt_id) as usize - ptr as usize }, 304usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(stmt_id) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 312usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).prefetch_rows) as usize - ptr as usize }, 320usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(prefetch_rows) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).server_status) as usize - ptr as usize }, 328usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(server_status) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).last_errno) as usize - ptr as usize }, 332usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(last_errno) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).param_count) as usize - ptr as usize }, 336usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(param_count) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).field_count) as usize - ptr as usize }, 340usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(field_count) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, 344usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(state) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).last_error) as usize - ptr as usize }, 348usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(last_error) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).sqlstate) as usize - ptr as usize }, 860usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(sqlstate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).send_types_to_server) as usize - ptr as usize }, 866usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(send_types_to_server) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).bind_param_done) as usize - ptr as usize }, 867usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(bind_param_done) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).bind_result_done) as usize - ptr as usize }, 868usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(bind_result_done) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).unbuffered_fetch_cancelled) as usize - ptr as usize }, 869usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(unbuffered_fetch_cancelled) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).update_max_length) as usize - ptr as usize }, 870usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(update_max_length) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).extension) as usize - ptr as usize }, 872usize, concat!( "Offset of field: ", stringify!(st_mysql_stmt), "::", stringify!(extension) ) ); } pub type MYSQL_STMT = st_mysql_stmt; #[repr(u32)] #[non_exhaustive] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum enum_stmt_attr_type { STMT_ATTR_UPDATE_MAX_LENGTH = 0, STMT_ATTR_CURSOR_TYPE = 1, STMT_ATTR_PREFETCH_ROWS = 2, } extern "C" { pub fn mysql_stmt_init(mysql: *mut MYSQL) -> *mut MYSQL_STMT; } extern "C" { pub fn mysql_stmt_prepare( stmt: *mut MYSQL_STMT, query: *const ::std::os::raw::c_char, length: ::std::os::raw::c_ulong, ) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_stmt_execute(stmt: *mut MYSQL_STMT) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_stmt_fetch(stmt: *mut MYSQL_STMT) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_stmt_fetch_column( stmt: *mut MYSQL_STMT, bind_arg: *mut MYSQL_BIND, column: ::std::os::raw::c_uint, offset: ::std::os::raw::c_ulong, ) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_stmt_store_result(stmt: *mut MYSQL_STMT) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_stmt_param_count(stmt: *mut MYSQL_STMT) -> ::std::os::raw::c_ulong; } extern "C" { pub fn mysql_stmt_attr_set( stmt: *mut MYSQL_STMT, attr_type: enum_stmt_attr_type, attr: *const ::std::os::raw::c_void, ) -> my_bool; } extern "C" { pub fn mysql_stmt_attr_get( stmt: *mut MYSQL_STMT, attr_type: enum_stmt_attr_type, attr: *mut ::std::os::raw::c_void, ) -> my_bool; } extern "C" { pub fn mysql_stmt_bind_param(stmt: *mut MYSQL_STMT, bnd: *mut MYSQL_BIND) -> my_bool; } extern "C" { pub fn mysql_stmt_bind_result(stmt: *mut MYSQL_STMT, bnd: *mut MYSQL_BIND) -> my_bool; } extern "C" { pub fn mysql_stmt_close(stmt: *mut MYSQL_STMT) -> my_bool; } extern "C" { pub fn mysql_stmt_reset(stmt: *mut MYSQL_STMT) -> my_bool; } extern "C" { pub fn mysql_stmt_free_result(stmt: *mut MYSQL_STMT) -> my_bool; } extern "C" { pub fn mysql_stmt_send_long_data( stmt: *mut MYSQL_STMT, param_number: ::std::os::raw::c_uint, data: *const ::std::os::raw::c_char, length: ::std::os::raw::c_ulong, ) -> my_bool; } extern "C" { pub fn mysql_stmt_result_metadata(stmt: *mut MYSQL_STMT) -> *mut MYSQL_RES; } extern "C" { pub fn mysql_stmt_param_metadata(stmt: *mut MYSQL_STMT) -> *mut MYSQL_RES; } extern "C" { pub fn mysql_stmt_errno(stmt: *mut MYSQL_STMT) -> ::std::os::raw::c_uint; } extern "C" { pub fn mysql_stmt_error(stmt: *mut MYSQL_STMT) -> *const ::std::os::raw::c_char; } extern "C" { pub fn mysql_stmt_sqlstate(stmt: *mut MYSQL_STMT) -> *const ::std::os::raw::c_char; } extern "C" { pub fn mysql_stmt_row_seek(stmt: *mut MYSQL_STMT, offset: MYSQL_ROW_OFFSET) -> MYSQL_ROW_OFFSET; } extern "C" { pub fn mysql_stmt_row_tell(stmt: *mut MYSQL_STMT) -> MYSQL_ROW_OFFSET; } extern "C" { pub fn mysql_stmt_data_seek(stmt: *mut MYSQL_STMT, offset: my_ulonglong); } extern "C" { pub fn mysql_stmt_num_rows(stmt: *mut MYSQL_STMT) -> my_ulonglong; } extern "C" { pub fn mysql_stmt_affected_rows(stmt: *mut MYSQL_STMT) -> my_ulonglong; } extern "C" { pub fn mysql_stmt_insert_id(stmt: *mut MYSQL_STMT) -> my_ulonglong; } extern "C" { pub fn mysql_stmt_field_count(stmt: *mut MYSQL_STMT) -> ::std::os::raw::c_uint; } extern "C" { pub fn mysql_commit(mysql: *mut MYSQL) -> my_bool; } extern "C" { pub fn mysql_rollback(mysql: *mut MYSQL) -> my_bool; } extern "C" { pub fn mysql_autocommit(mysql: *mut MYSQL, auto_mode: my_bool) -> my_bool; } extern "C" { pub fn mysql_more_results(mysql: *mut MYSQL) -> my_bool; } extern "C" { pub fn mysql_next_result(mysql: *mut MYSQL) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_stmt_next_result(stmt: *mut MYSQL_STMT) -> ::std::os::raw::c_int; } extern "C" { pub fn mysql_close(sock: *mut MYSQL); } pub type __builtin_va_list = [__va_list_tag; 1usize]; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct __va_list_tag { pub gp_offset: ::std::os::raw::c_uint, pub fp_offset: ::std::os::raw::c_uint, pub overflow_arg_area: *mut ::std::os::raw::c_void, pub reg_save_area: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout___va_list_tag() { const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<__va_list_tag>(), 24usize, concat!("Size of: ", stringify!(__va_list_tag)) ); assert_eq!( ::std::mem::align_of::<__va_list_tag>(), 8usize, concat!("Alignment of ", stringify!(__va_list_tag)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(__va_list_tag), "::", stringify!(gp_offset) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(__va_list_tag), "::", stringify!(fp_offset) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(__va_list_tag), "::", stringify!(overflow_arg_area) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(__va_list_tag), "::", stringify!(reg_save_area) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct st_dynamic_array { pub _address: u8, } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct charset_info_st { pub _address: u8, }