pub enum NodeDeclError {
Metadata(NodeMetadataError),
MissingExport,
Runtime,
ExecutorFull,
UnknownPublisher,
ParameterRejected,
CellRegistryFull,
}Expand description
Node declaration error.
Variants§
Metadata(NodeMetadataError)
Metadata recorder rejected the declaration.
MissingExport
Host/runtime discovery could not find nros::node! export.
Runtime
Generated runtime rejected the declaration.
ExecutorFull
The executor’s fixed callback-entry table is full — a timer /
subscription / service / action could not claim a slot (issue 0095).
Carries the capacity cause through the NodeError → NodeDeclError
collapse so the register seam can name NROS_EXECUTOR_MAX_CBS.
UnknownPublisher
A publish named an entity this component has no publisher for — the LOOKUP failed, nothing was ever handed to the transport.
issue 0736 — split out of Self::Runtime, which the publish path
returned for BOTH “the transport rejected the sample” and “there is no
such publisher”: lookup_publisher(...).unwrap_or(Err(Runtime)). Those
are different bugs in different layers with different fixes, and from a
serial console they were the same line. Exactly the conflation #572
removed one level out, where discarding the result made “the timer never
fired” and “every publish failed” the same observation.
ParameterRejected
The parameter store refused a declaration and the name is still absent:
the store is full, or it rejected the value. A name already declared is
NOT this — the store answers false for that too, but the parameter is
there.
Split out of Self::Runtime for the reason Self::UnknownPublisher
was (issue 0736): a refused parameter and a rejected transport handle are
different faults with different fixes, and one opaque variant made them
the same line on a serial console.
CellRegistryFull
A component CELL registry is full – the class creates more entities of one kind (publishers, service servers/clients, action servers/clients) than its registry holds.
issue 1130 – split out of Self::Runtime BEFORE that capacity became
derivable. phase-412’s rule: a derived count is safe only where
exhaustion NAMES the knob, and a bare “component runtime rejected
declaration” named nothing. The capacity is the class’s ENTITY_BOUNDS
when it states one, else NROS_RUNTIME_MAX_CELL_ENTITIES.
Implementations§
Trait Implementations§
Source§impl Clone for NodeDeclError
impl Clone for NodeDeclError
Source§fn clone(&self) -> NodeDeclError
fn clone(&self) -> NodeDeclError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more