samp-sdk 0.9.2

Bindings for C SA:MP SDK
use super::types::{AMX, AMX_NATIVE_INFO};
use std::ffi::c_void;

pub type AmxNative = extern "C" fn(*mut AMX, params: *mut i32) -> i32;
pub type AmxCallback =
    extern "C" fn(*mut AMX, index: i32, result: *mut i32, params: *mut i32) -> i32;
pub type AmxDebug = extern "C" fn(*mut AMX) -> i32;

pub type Align16 = extern "C" fn(*mut u16) -> *mut u16;
pub type Align32 = extern "C" fn(*mut u32) -> *mut u32;
pub type Allot = extern "C" fn(*mut AMX, i32, *mut i32, *mut i32) -> i32;
pub type Callback = extern "C" fn(*mut AMX, i32, *mut i32, *mut i32) -> i32;
pub type Cleanup = extern "C" fn(*mut AMX) -> i32;
pub type Clone = extern "C" fn(*mut AMX, *mut AMX, *mut c_void) -> i32;
pub type Exec = extern "C" fn(*mut AMX, *mut i32, i32) -> i32;
pub type FindNative = extern "C" fn(*mut AMX, *const i8, *mut i32) -> i32;
pub type FindPublic = extern "C" fn(*mut AMX, *const i8, *mut i32) -> i32;
pub type FindPubVar = extern "C" fn(*mut AMX, *const i8, *mut i32) -> i32;
pub type FindTagId = extern "C" fn(*mut AMX, i32, *mut i8) -> i32;
pub type Flags = extern "C" fn(*mut AMX, *mut u16) -> i32;
pub type GetAddr = extern "C" fn(*mut AMX, i32, *mut *mut i32) -> i32;
pub type GetNative = extern "C" fn(*mut AMX, i32, *mut i8) -> i32;
pub type GetPublic = extern "C" fn(*mut AMX, i32, *mut i8) -> i32;
pub type GetPubVar = extern "C" fn(*mut AMX, i32, *mut i8, *mut i32) -> i32;
pub type GetString = extern "C" fn(*mut u8, *const i32, i32, usize) -> i32;
pub type GetTag = extern "C" fn(*mut AMX, i32, *mut i8, *mut i32) -> i32;
pub type GetUserData = extern "C" fn(*mut AMX, i64, *mut *mut c_void) -> i32;
pub type Init = extern "C" fn(*mut AMX, *mut c_void) -> i32;
pub type InitJIT = extern "C" fn(*mut AMX, *mut c_void, *mut c_void) -> i32;
pub type MemInfo = extern "C" fn(*mut AMX, *mut i32, *mut i32, *mut i32) -> i32;
pub type NameLength = extern "C" fn(*mut AMX, *mut i32) -> i32;
pub type NativeInfo = extern "C" fn(*const i8, AmxNative) -> *mut AMX_NATIVE_INFO;
pub type NumNatives = extern "C" fn(*mut AMX, *mut i32) -> i32;
pub type NumPublics = extern "C" fn(*mut AMX, *mut i32) -> i32;
pub type NumPubVars = extern "C" fn(*mut AMX, *mut i32) -> i32;
pub type NumTags = extern "C" fn(*mut AMX, *mut i32) -> i32;
pub type Push = extern "C" fn(*mut AMX, i32) -> i32;
pub type PushArray = extern "C" fn(*mut AMX, *mut i32, *mut *mut i32, *const i32, i32) -> i32;
pub type PushString = extern "C" fn(*mut AMX, *mut i32, *mut *mut i32, *const i8, i32, i32) -> i32;
pub type RaiseError = extern "C" fn(*mut AMX, i32) -> i32;
pub type Register = extern "C" fn(*mut AMX, *const AMX_NATIVE_INFO, i32) -> i32;
pub type Release = extern "C" fn(*mut AMX, i32) -> i32;
pub type SetCallback = extern "C" fn(*mut AMX, AmxCallback) -> i32;
pub type SetDebugHook = extern "C" fn(*mut AMX, AmxDebug) -> i32;
pub type SetString = extern "C" fn(*mut i32, *const i8, i32, i32, usize) -> i32;
pub type SetUserData = extern "C" fn(*mut AMX, i64, *mut c_void) -> i32;
pub type StrLen = extern "C" fn(*const i32, *mut i32) -> i32;
pub type UTF8Check = extern "C" fn(*const i8, *mut i32) -> i32;
pub type UTF8Get = extern "C" fn(*const i8, *mut *const i8, *mut i32) -> i32;
pub type UTF8Len = extern "C" fn(*const i32, *mut i32) -> i32;
pub type UTF8Put = extern "C" fn(*mut i8, *mut *mut i8, i32, i32) -> i32;

pub type Logprintf = extern "C" fn(*const i8, ...);