Skip to content

Instantly share code, notes, and snippets.

@dipeshdulal
Created August 18, 2020 10:09
Show Gist options
  • Save dipeshdulal/e31618ee2b12eebb9b567758b76afde2 to your computer and use it in GitHub Desktop.
Save dipeshdulal/e31618ee2b12eebb9b567758b76afde2 to your computer and use it in GitHub Desktop.
Finite State Machine Final Code
package main
import (
"fmt"
"github.com/dipeshdulal/statemachine"
)
func main(){
machine := statemachine.Machine{
ID: "machine-1",
Initial: "on",
States: statemachine.StateMap{
"on": statemachine.MachineState{
On: statemachine.TransitionMap{
"TOGGLE": statemachine.MachineTransition{
To: "off",
},
},
},
"off": statemachine.MachineState{
On: statemachine.TransitionMap{
"TOGGLE": statemachine.MachineTransition{
To: "on",
},
},
},
},
}
output := machine.Transition("TOGGLE")
fmt.Println(output)
output := machine.Transition("TOGGLE")
fmt.Println(output)
output := machine.Transition("TOGGLE")
fmt.Println(output)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment