//! `mxaccess-nmx` — `INmxService2` client + raw NMX session façade. //! //! M3 stream B landed: the [`client`] module ports the raw opnum surface //! of `src/MxNativeClient/ManagedNmxService2Client.cs` (the 9 //! `INmxService2` procedures over `mxaccess_rpc::transport`). The //! auto-resolving COM-activation factory and the high-level //! `Write*`/`Advise*` wrappers are deferred — see the module-level docs //! for what's deliberately out of scope for this iteration. //! //! Opnums (verified against `src/MxNativeClient/NmxComContracts.cs:55-73`, //! and on the wire — sequential because `INmxService2 : INmxService` continues //! the same vtable; see `design/40-protocol-invariants.md`): //! - `3` RegisterEngine //! - `4` UnRegisterEngine //! - `5` Connect //! - `6` TransferData //! - `7` AddSubscriberEngine //! - `8` RemoveSubscriberEngine //! - `9` SetHeartbeatSendInterval //! - `10` RegisterEngine2 //! - `11` GetPartnerVersion #![forbid(unsafe_code)] pub mod client; pub use client::{NmxClient, NmxClientError, WriteValue};