struct State {
};
{{ GENERATED_CODE }}
void evaluate(Context ctx) {
Number count = getValue<output_OUT>(ctx);
Number Limit = getValue<input_Limit>(ctx);
if (isInputDirty<input_RST>(ctx))
count = 0;
else if (isInputDirty<input_INC>(ctx))
count += getValue<input_STEP>(ctx);
if(count>=Limit){
emitValue<output_DONE>(ctx, 1);
count = 0;
}
else {
emitValue<output_DONE>(ctx, 0);
}
emitValue<output_OUT>(ctx, count);
}