rust-samp-sdk 3.3.0

Low-level FFI bindings for the SA-MP AMX virtual machine and open.mp native component ABI. Used internally by `rust-samp`; depend on it directly only if you need raw access without the higher-level macros and lifecycle.
Documentation
//! Low-level layer of the `rust-samp` toolkit.
//!
//! This crate concentrates two independent sets of bindings:
//!
//! - **AMX**: pointers, cell types, function table and error codes of the
//!   Pawn VM used by SA-MP (modules [`raw`], [`amx`], [`cell`], [`args`],
//!   [`error`], [`exports`], [`consts`]).
//! - **Open Multiplayer**: vtables, binary layout of `IComponent` and typed wrappers
//!   of the native server interfaces (module [`omp`], active while the
//!   `samp-only` feature is not enabled).
//!
//! The interface of this crate works on raw pointers and is `unsafe`-friendly.
//! To write plugins, use the `samp` crate (workspace root) — it re-exports
//! this SDK and adds the plugin life cycle and native registration via
//! proc macros (`#[native]`, `initialize_plugin!`, `#[derive(SampPlugin)]`).

pub mod amx;
pub mod args;
pub mod cell;
pub mod consts;
#[cfg(feature = "debug")]
pub mod debug;
#[cfg(feature = "encoding")]
pub mod encoding;
pub mod error;
pub mod exports;
#[doc(hidden)]
pub mod macros;
// The open.mp component ABI on Windows uses the `thiscall` calling convention,
// which only exists on 32-bit x86 — the target SA-MP/open.mp servers actually
// run on. Compiling it for 64-bit MSVC fails (E0570: unsupported ABI), so the
// module is skipped there. This lets host-side tooling (e.g. a DAP adapter that
// only needs `samp::debug`) build for `x86_64-pc-windows-msvc`.
#[cfg(all(
    not(feature = "samp-only"),
    not(all(windows, target_env = "msvc", target_pointer_width = "64"))
))]
pub mod omp;
pub mod raw;
#[cfg(test)]
mod tests;