simple.go 538 B

1234567891011121314151617181920212223242526272829303132333435
  1. package main
  2. import (
  3. "context"
  4. "fmt"
  5. "github.com/looplab/fsm"
  6. )
  7. func main() {
  8. fsm := fsm.NewFSM(
  9. "closed",
  10. fsm.Events{
  11. {Name: "open", Src: []string{"closed"}, Dst: "open"},
  12. {Name: "close", Src: []string{"open"}, Dst: "closed"},
  13. },
  14. fsm.Callbacks{},
  15. )
  16. fmt.Println(fsm.Current())
  17. err := fsm.Event(context.Background(), "open")
  18. if err != nil {
  19. fmt.Println(err)
  20. }
  21. fmt.Println(fsm.Current())
  22. err = fsm.Event(context.Background(), "close")
  23. if err != nil {
  24. fmt.Println(err)
  25. }
  26. fmt.Println(fsm.Current())
  27. }