#![allow(unsafe_code)]
use super::report::report_i32;
use crate::panic_guard::FfiBoundary;
use crate::runtime::EngineContext;
use crate::sys;
#[doc(hidden)]
#[unsafe(no_mangle)]
pub unsafe extern "C" fn rust__handler__assign_to_keycache(
ctx: *mut EngineContext,
thd: *const sys::THD,
check_opt: *const sys::HaCheckOpt,
out: *mut i32,
) -> bool {
FfiBoundary::run_default(false, || {
let engine = unsafe { &mut *ctx }.engine_mut();
let (thd, check_opt) = unsafe { (thd.as_ref(), check_opt.as_ref()) };
report_i32(out, engine.assign_to_keycache(thd, check_opt))
})
}
#[doc(hidden)]
#[unsafe(no_mangle)]
pub unsafe extern "C" fn rust__handler__preload_keys(
ctx: *mut EngineContext,
thd: *const sys::THD,
check_opt: *const sys::HaCheckOpt,
out: *mut i32,
) -> bool {
FfiBoundary::run_default(false, || {
let engine = unsafe { &mut *ctx }.engine_mut();
let (thd, check_opt) = unsafe { (thd.as_ref(), check_opt.as_ref()) };
report_i32(out, engine.preload_keys(thd, check_opt))
})
}
#[doc(hidden)]
#[unsafe(no_mangle)]
pub unsafe extern "C" fn rust__handler__disable_indexes(
ctx: *mut EngineContext,
mode: u32,
out: *mut i32,
) -> bool {
FfiBoundary::run_default(false, || {
report_i32(out, unsafe { &mut *ctx }.engine_mut().disable_indexes(mode))
})
}
#[doc(hidden)]
#[unsafe(no_mangle)]
pub unsafe extern "C" fn rust__handler__enable_indexes(
ctx: *mut EngineContext,
mode: u32,
out: *mut i32,
) -> bool {
FfiBoundary::run_default(false, || {
report_i32(out, unsafe { &mut *ctx }.engine_mut().enable_indexes(mode))
})
}
#[doc(hidden)]
#[unsafe(no_mangle)]
pub unsafe extern "C" fn rust__handler__discard_or_import_tablespace(
ctx: *mut EngineContext,
discard: bool,
table_def: *const sys::DdTable,
out: *mut i32,
) -> bool {
FfiBoundary::run_default(false, || {
let engine = unsafe { &mut *ctx }.engine_mut();
let value = engine.discard_or_import_tablespace(discard, unsafe { table_def.as_ref() });
report_i32(out, value)
})
}