Skip to main content

expand_name

Function expand_name 

Source
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.