When headers are scanned, the types used in a template should be cached. This can be used automatically fill in the template_params in create-gen.
For example (ctre pro),
CoreTalonFX.hpp has a function StatusSignalValue<units::angle::turn_t> &GetPosition();
From this, we know that StatusSignalValue needs a units::angle::turn_t template param.
Then, SignalStatusValue.hpp has a function SignalMeasurement<T> GetDataCopy() const {...}
From this, we can propogate all of SignalStatusValue's template_params including units::angle::turn_t to SignalMeasurement.
This would require all headers to be scanned before yaml files are written.
When headers are scanned, the types used in a template should be cached. This can be used automatically fill in the template_params in create-gen.
For example (ctre pro),
CoreTalonFX.hpphas a functionStatusSignalValue<units::angle::turn_t> &GetPosition();From this, we know that
StatusSignalValueneeds aunits::angle::turn_ttemplate param.Then,
SignalStatusValue.hpphas a functionSignalMeasurement<T> GetDataCopy() const {...}From this, we can propogate all of
SignalStatusValue's template_params includingunits::angle::turn_ttoSignalMeasurement.This would require all headers to be scanned before yaml files are written.