//! Shared FFI plumbing for the C-ABI modules that marshal C strings across the
//! bridge (store, ads, gamekit).
//!
//! Every native module follows the same contract: `@_cdecl` Swift entry points
//! called from Rust, results read back as polled state or a drained event queue
//! — never callbacks into Rust, because re-entrancy against winit's event loop
//! is not safe. The string getters return pointers to Swift-owned buffers valid
//! only until the next regenerating call, so callers copy immediately via
//! [`read_cstr`].
use ;
/// Copy a backend-owned C string into an owned `String`. Null → empty.
// Used by StoreKit on iOS and by ads on every target; genuinely unused only in
// a gamekit-only build.
pub unsafe