public:
void postCreate() override
{
ex_param.reset(new sparta::Parameter<uint32_t>("ex_param", 0, "Example parameter with limited number of valid values (0, 1, 2, or 3)", ps));
ex_param->addDependentValidationCallback(&validateParam_, "example param constraint");
}
private:
std::unique_ptr<sparta::Parameter<uint32_t>> vlen_;
static bool validateParam_(uint32_t & param_val, const sparta::TreeNode*)
{
const std::vector<uint32_t> valid_param_values{0, 1, 2, 3};
return std::find(valid_param_values.begin(), valid_param_values.end(), param_val) != valid_param_values.end();
};