pub trait Rmw {
type Session: Session;
type Error: Debug;
// Required method
fn open(self, config: &RmwConfig<'_>) -> Result<Self::Session, Self::Error>;
}Expand description
Factory trait for compile-time middleware selection.
Embedded crates select a backend via feature flag:
#[cfg(feature = "rmw-cffi")]
type DefaultRmw = nros_rmw_cffi::CffiRmw;Each backend provides its own Rmw implementation that bridges
from the middleware-agnostic RmwConfig to backend-specific
initialization.
Phase 84.E2: open consumes self. Backends carry their own
configuration (agent addresses, serial ports, TLS CA slots)
inside the factory value and hand that over to the session at
open time. All in-repo backends also implement
Default; most callers spell this as
BackendRmw::default().open(&config).
Required Associated Types§
Required Methods§
Sourcefn open(self, config: &RmwConfig<'_>) -> Result<Self::Session, Self::Error>
fn open(self, config: &RmwConfig<'_>) -> Result<Self::Session, Self::Error>
Open a new middleware session with the given configuration.
The backend maps RmwConfig fields to its own connection
parameters (e.g., zenoh locator and session mode, XRCE-DDS
agent address). Any backend-specific pre-open state stored
on self (e.g. configured agent IP / port) is moved into the
returned Session.