Skip to content

✨ feat: add a new bs.fsm module #480

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 17 commits into
base: master
Choose a base branch
from

Conversation

theogiraudet
Copy link
Contributor

Description

Related Issues

Additional Notes

Tasks to complete before merging

  • I agree to release my contribution under the MPL v2 License.
  • My pull request is associated with an existing issue.
  • I have updated the changelog to reflect my contribution.
  • If this pull request adds or modifies a feature:
    • I have documented my changes in the /docs folder.
    • I have updated the metadata of the feature. See feature metadata.
    • I have thoroughly tested my changes. See testing guidelines.

@theogiraudet
Copy link
Contributor Author

@aksiome if you want to give a first feedback on the API.
I already implemented most of the code, we can currently use FSM and you have an example with bs.fsm:test if you want to try.
I also have more ideas I want to realize:

  • Currently, final states are mandatory but this is not the case for every FSMs. I want to propose two different types of FSM: simple FSM (without final states) and acceptors (with final states). I don't know if this is better to define two different features for that, or the same one with a mandatory parameter "type".
  • I plan a "hook" transition type, but I think this is something we have to discuss since we wanted to implement such system for other modules.
  • I don't know if this is better to have splitted creation/starting as in the current state (features start and new) or to merge those two. The advantages to have them splitted is we can reuse a same definition for several instances, without having to reexecute the validation. But this is also a bit more compilated for users I suppose.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant