Replace raw node input indices with compile-time parameter symbols (#4387)

* Remove the dead InputAccessor traits and the uncallable test helper built on them

* Replace raw node input indices with macro-generated parameter symbols across the editor

* Audit dynamic input index usage, converting to parameter symbols and named input position constants

* Abstract the remaining input index plumbing behind ParameterRef APIs and accessors

* Build SetInputValue messages as struct literals to keep message enums impl-free

* Delete the typed parameter markers in favor of explicit-output test introspection

* Wire the interpolation control path input per chain node type

* Return no input when a parameter symbol is read against the wrong node's parameter view
This commit is contained in:
Keavon Chambers
2026-07-28 11:17:30 -07:00
committed by Dennis Kobert
parent 7d25f84210
commit 81cb0515f5
49 changed files with 1266 additions and 1130 deletions

View File

@@ -70,3 +70,23 @@ pub trait NodeInputDecleration {
fn identifier() -> ProtoNodeIdentifier;
type Result;
}
/// Master spells this trait `NodeParameter`; our node macro emits `NodeInputDecleration`.
pub use NodeInputDecleration as NodeParameter;
/// A runtime reference to one parameter of one proto node, for heterogeneous tables and runtime-chosen parameters.
/// Convert a symbol with `.into()`; unlike a raw index, the node identifier and index always stay paired.
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct ParameterRef {
pub node_identifier: ProtoNodeIdentifier,
pub input_index: usize,
}
impl<P: NodeParameter> From<P> for ParameterRef {
fn from(_: P) -> Self {
ParameterRef {
node_identifier: P::identifier(),
input_index: P::INDEX,
}
}
}