pub struct BootConfig<'a> {
pub node_name: Option<&'a str>,
pub locator: Option<&'a str>,
pub domain_id: Option<u32>,
pub namespace: Option<&'a str>,
pub rmw: Option<&'a str>,
}Expand description
Session-identity subset a caller supplies to ExecutorConfig::resolve.
None on a field means “not specified — fall through to the next
precedence level”. The precedence model (A) resolved by
ExecutorConfig::resolve is:
env rung (a Some field on the [`EnvRung`] the caller supplies)
> baked (a Some field here)
> compiled defaultFields are resolved independently: an env locator and a baked
node_name can both apply in the same call.
Note: mode (session mode) is not configurable through BootConfig.
Session mode comes from the env rung, defaulting to SessionMode::Client.
Fields§
§node_name: Option<&'a str>Node name override. Maps to ExecutorConfig::node_name.
locator: Option<&'a str>Middleware locator override. Maps to ExecutorConfig::locator.
domain_id: Option<u32>ROS 2 domain ID override. Maps to ExecutorConfig::domain_id.
namespace: Option<&'a str>Node namespace override. Maps to ExecutorConfig::namespace.
rmw: Option<&'a str>RMW backend selector. Maps to ExecutorConfig::rmw, the name
nros_rmw_cffi::resolve_backend looks up.
Issue 1050 defect (3) — this rung did not exist. Every other field of
ExecutorConfig resolved env > baked > compiled default; rmw
resolved from the environment ALONE, so $NROS_RMW was the only way in
the tree to name a backend. An image that knows perfectly well which
backend it wants — a PX4 module declaring BACKENDS uorb, a C entry
built against one RMW, any embedded target with no environment to read —
could not say so, and got whichever backend registered first.
The environment still wins, because a deployment overriding a build is the whole point of precedence model A. What changed is that there is now something for it to override.
Implementations§
Source§impl<'a> BootConfig<'a>
impl<'a> BootConfig<'a>
Sourcepub fn from_baked(baked: &'a BakedBootConfig) -> BootConfig<'a>
pub fn from_baked(baked: &'a BakedBootConfig) -> BootConfig<'a>
Read a baked config into the plain-field BootConfig the resolver consumes.
Returns all-None (→ resolver uses compiled defaults) if magic/version
don’t match — defensive against a corrupt or zero-initialised section.
Each Option is Some iff its set_flags bit is set; string values are
the bytes up to the first NUL (or full buffer if no NUL). Invalid UTF-8 in
a set field is treated as unset for that field.
Trait Implementations§
Source§impl<'a> Clone for BootConfig<'a>
impl<'a> Clone for BootConfig<'a>
Source§fn clone(&self) -> BootConfig<'a>
fn clone(&self) -> BootConfig<'a>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more