#[repr(C)]
pub struct handler_bridge_vt {
Show 36 fields pub constructor: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut handlerton, arg3: *mut MEM_ROOT, arg4: *mut TABLE_SHARE)>, pub destructor: Option<unsafe extern "C" fn(arg1: *mut handler_bridge)>, pub index_type: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: uint) -> *const c_char>, pub table_flags: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> ulonglong>, pub index_flags: Option<unsafe extern "C" fn(arg1: *const handler_bridge, arg2: uint, arg3: uint, arg4: bool) -> ulong>, pub max_supported_record_length: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> uint>, pub max_supported_keys: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> uint>, pub max_supported_key_parts: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> uint>, pub max_supported_key_length: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> uint>, pub scan_time: Option<unsafe extern "C" fn(arg1: *mut handler_bridge) -> IO_AND_CPU_COST>, pub keyread_time: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: uint, arg3: ulong, arg4: ha_rows, arg5: ulonglong) -> IO_AND_CPU_COST>, pub rnd_pos_time: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: ha_rows) -> IO_AND_CPU_COST>, pub open: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const c_char, arg3: c_int, arg4: uint) -> c_int>, pub close: Option<unsafe extern "C" fn(arg1: *mut handler_bridge) -> c_int>, pub write_row: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const uchar) -> c_int>, pub update_row: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const uchar, arg3: *const uchar) -> c_int>, pub delete_row: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const uchar) -> c_int>, pub index_read_map: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar, arg3: *const uchar, arg4: key_part_map, arg5: Type) -> c_int>, pub index_next: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>, pub index_prev: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>, pub index_first: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>, pub index_last: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>, pub rnd_init: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: bool) -> c_int>, pub rnd_end: Option<unsafe extern "C" fn(arg1: *mut handler_bridge) -> c_int>, pub rnd_next: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>, pub rnd_pos: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar, arg3: *mut uchar) -> c_int>, pub position: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const uchar)>, pub info: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: uint) -> c_int>, pub extra: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: Type) -> c_int>, pub external_lock: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut THD, arg3: c_int) -> c_int>, pub delete_all_rows: Option<unsafe extern "C" fn(arg1: *mut handler_bridge) -> c_int>, pub records_in_range: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: uint, arg3: *const key_range, arg4: *const key_range, arg5: *mut page_range) -> ha_rows>, pub delete_table: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const c_char) -> c_int>, pub create: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const c_char, arg3: *mut TABLE, arg4: *mut HA_CREATE_INFO) -> c_int>, pub check_if_supported_inplace_alter: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut TABLE, arg3: *mut Alter_inplace_info) -> Type>, pub store_lock: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut THD, arg3: *mut *mut THR_LOCK_DATA, arg4: Type) -> *mut *mut THR_LOCK_DATA>,
}
Expand description

A C representation of the handler class.

For now all function pointers must be nonnull. We could change this to check for null then call the parent function if so at some point.

Fields§

§constructor: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut handlerton, arg3: *mut MEM_ROOT, arg4: *mut TABLE_SHARE)>§destructor: Option<unsafe extern "C" fn(arg1: *mut handler_bridge)>§index_type: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: uint) -> *const c_char>§table_flags: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> ulonglong>§index_flags: Option<unsafe extern "C" fn(arg1: *const handler_bridge, arg2: uint, arg3: uint, arg4: bool) -> ulong>§max_supported_record_length: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> uint>§max_supported_keys: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> uint>§max_supported_key_parts: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> uint>§max_supported_key_length: Option<unsafe extern "C" fn(arg1: *const handler_bridge) -> uint>§scan_time: Option<unsafe extern "C" fn(arg1: *mut handler_bridge) -> IO_AND_CPU_COST>§keyread_time: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: uint, arg3: ulong, arg4: ha_rows, arg5: ulonglong) -> IO_AND_CPU_COST>§rnd_pos_time: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: ha_rows) -> IO_AND_CPU_COST>§open: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const c_char, arg3: c_int, arg4: uint) -> c_int>§close: Option<unsafe extern "C" fn(arg1: *mut handler_bridge) -> c_int>§write_row: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const uchar) -> c_int>§update_row: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const uchar, arg3: *const uchar) -> c_int>§delete_row: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const uchar) -> c_int>§index_read_map: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar, arg3: *const uchar, arg4: key_part_map, arg5: Type) -> c_int>§index_next: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>§index_prev: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>§index_first: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>§index_last: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>§rnd_init: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: bool) -> c_int>§rnd_end: Option<unsafe extern "C" fn(arg1: *mut handler_bridge) -> c_int>§rnd_next: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar) -> c_int>§rnd_pos: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut uchar, arg3: *mut uchar) -> c_int>§position: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const uchar)>§info: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: uint) -> c_int>§extra: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: Type) -> c_int>§external_lock: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut THD, arg3: c_int) -> c_int>§delete_all_rows: Option<unsafe extern "C" fn(arg1: *mut handler_bridge) -> c_int>§records_in_range: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: uint, arg3: *const key_range, arg4: *const key_range, arg5: *mut page_range) -> ha_rows>§delete_table: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const c_char) -> c_int>§create: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *const c_char, arg3: *mut TABLE, arg4: *mut HA_CREATE_INFO) -> c_int>§check_if_supported_inplace_alter: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut TABLE, arg3: *mut Alter_inplace_info) -> Type>§store_lock: Option<unsafe extern "C" fn(arg1: *mut handler_bridge, arg2: *mut THD, arg3: *mut *mut THR_LOCK_DATA, arg4: Type) -> *mut *mut THR_LOCK_DATA>

Trait Implementations§

source§

impl Debug for handler_bridge_vt

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.