Expand description
Raw FFI surface for the EuroScope plugin SDK.
This crate owns the C++ glue shim (src/shim/, compiled by build.rs) and
exposes its flat extern "C" entry points to Rust. It is deliberately
unsafe and untyped — the safe, idiomatic API lives in the euroscope
crate, which is what application plugins should depend on.
§The two halves of the boundary
es_*(moduleffi): wrappers the shim provides, i.e. Rust -> ES calls. One module per EuroScope class, re-exported flat here.rust_*(seecallbacks): callbacks the shim expects Rust to provide, i.e. ES -> Rust.euroscope::register_plugin!emits#[no_mangle]definitions for these; the signatures are documented there.
Re-exports§
pub use ffi::*;
Modules§
- callbacks
- Reference documentation for the
rust_*symbols the shim imports. These are defined byeuroscope::register_plugin!in the finalcdylib. - ffi
extern "C"declarations for the shim’ses_*wrappers, one module per EuroScope class. Everything is re-exported flat, so callers useeuroscope_sys::es_flightplan_callsign(..)regardless of module.
Type Aliases§
- EsHandle
- An opaque pointer to an EuroScope handle object (
CFlightPlan,CPlugIn,CController, …). Only valid for as long as EuroScope says — usually the callback that produced it. The safeeuroscopecrate encodes those rules. - Flight
Plan Ptr - Opaque pointer to a live
CFlightPlan. - Plugin
Ptr - Opaque pointer to the shim’s
CPlugIninstance.