pub fn expand_name(
source: &str,
node_name: &str,
namespace: &str,
) -> Result<String<nros_node::::names::ResolvedName::{constant#0}>, ()>Expand description
Phase 305 W3 (issue 0255) — the ONE name-resolution seam: ROS 2 source-name
expansion (~/relative → FQN, ns=/ collapse) + launch remap substitution
(exact-FQN match, first rule wins; no wildcards). Implemented in
nros_node::names so both the Rust ExecutorSink and the C-ABI
executor-side remap table share one lowering; re-exported here next to
SourceNameKind as the source-metadata-level entry point.
Expand a source-level ROS name to its fully-qualified form (ROS 2 name
expansion rules):
/absolute/name→ unchanged.~/~/rest(private) →/<ns>/<node>//<ns>/<node>/rest(ns == "/"collapses:/<node>/rest).relative/name→/<ns>/relative/name(ns == "/"collapses:/relative/name).
namespace may be given with or without a leading /; empty means root.
Errors on: empty source, a private name with an empty node_name, or a
result exceeding MAX_RESOLVED_NAME_LEN.