Skip to main content

Module traits

Module traits 

Source
Expand description

Transport abstraction traits.

Defines the backend-agnostic interface that transport implementations (zenoh-pico, XRCE-DDS) must satisfy. The core trait hierarchy is:

Modules§

qos_override_policy
policy codes for QoSOverrideCode.
qos_override_role
role codes for QoSOverrideCode.

Structs§

ActionInfo
Action information for action client/server
GraphEndpointInfo
One discovered endpoint on a topic — phase-381 W3, the Rust view of rmw_topic_endpoint_info_t.
QoSOverride
Phase 211.H — one per-topic QoS override, lowered from a ROS 2 qos_overrides.<topic>.<role>.<policy> launch parameter by the planner and baked into a &'static [QoSOverride] table by the entry codegen. The node folds the matching entries into the entity’s QoSProfile at create_publisher / create_subscription time (setup-time, single linear scan, no alloc), before the backend-compat validate_against — so an override the active RMW can’t honour still errors loudly, never a silent downgrade.
QoSPolicyMask
Bitmask of QoS policies a backend can honour. See Session::supported_qos_policies.
QoSProfile
Full DDS-shaped QoS profile. Matches the field set of upstream rmw_qos_profile_t.
QoSSystemDefaults
What ONE backend resolves the SYSTEM_DEFAULT sentinel to.
RmwConfig
Middleware-agnostic session configuration.
ServiceInfo
Service information for service client/server
ServiceRequest
Service request from a client
TopicInfo
Topic information for pub/sub
TransportConfig
Transport session configuration

Enums§

GraphEntityKind
Which entity kind a *_by_node graph query keeps — phase-381 W3.
LocatorProtocol
Locator transport protocol
QoSDurabilityPolicy
QoS durability policy
QoSHistoryPolicy
QoS history policy
QoSLivelinessPolicy
QoS liveliness policy. Matches DDS LIVELINESS semantics.
QoSOverrideRole
Phase 211.H — which side of a topic a QoSOverride targets. Mirrors the <role> segment of a ROS 2 qos_overrides.<topic>.<role>.<policy> launch parameter.
QoSOverrideValue
Phase 211.H — a single policy value a QoSOverride sets. A typed enum (not a string) so the codegen that bakes these from the plan catches an unknown policy / mistyped value at generation time rather than silently no-op-ing at runtime.
QoSReliabilityPolicy
QoS reliability policy
SessionMode
Session mode
TransportError
Transport error types.

Constants§

DEPTH_SYSTEM_DEFAULT
The depth sentinel — “the caller did not state a queue depth”.
DURATION_INFINITE_MS
Phase-301 (issue 0241) — explicit “infinite” spelling for the u32 millisecond QoS duration fields (deadline_ms, lifespan_ms, liveliness_lease_ms). Semantically identical to 0 (unset / no-check) at every check site; exists so a caller can distinguish “default” from “deliberately infinite”. Mirrors the C header’s NROS_RMW_DURATION_INFINITE_MS.

Traits§

ClientTrait
Service client trait for sending requests.
Publisher
Publisher trait for sending messages.
Rmw
Factory trait for compile-time middleware selection.
ServiceTrait
Service server trait for handling requests.
Session
Transport session trait — the per-process anchor an RMW backend gives to the executor.
Subscription
Subscription trait for receiving messages.
Transport
Transport backend trait (legacy).

Functions§

decode_qos_override
Decode one QoSOverrideCode into a typed QoSOverride.
decode_qos_override_parts
decode_qos_override over loose parts — for the FFI paths, which read the fields out of a #[repr(C)] struct rather than a tuple.
decode_qos_override_role
Decode a role code. None for an unrecognised one.
decode_qos_override_value
Decode a (policy, value) code pair. None for an unrecognised policy or an out-of-range enum value.
duration_to_qos_ms
Phase-301 (issue 0241) — lower a core::time::Duration into a u32 millisecond QoS field. Boundary contract:
locator_protocol
Parse the protocol from a locator string
validate_locator
Validate a locator string format.

Type Aliases§

QoSOverrideCode
Issue 0303 — the wire form a baked QoS override travels in: (topic, role, policy, value), all primitives.