package torrent import ( "github.com/looplab/fsm" ) func NewFileState() *fsm.FSM { return fsm.NewFSM( "ok", fsm.Events{ {Name: "break", Src: []string{"ok"}, Dst: "broken"}, {Name: "repair", Src: []string{"broken"}, Dst: "under_repair"}, {Name: "repair_done", Src: []string{"under_repair"}, Dst: "ok"}, {Name: "delete", Src: []string{"ok", "broken", "under_repair"}, Dst: "deleted"}, }, fsm.Callbacks{}, ) } func NewTorrentState() *fsm.FSM { return fsm.NewFSM( "ok", fsm.Events{ {Name: "break", Src: []string{"ok"}, Dst: "broken"}, {Name: "repair", Src: []string{"broken"}, Dst: "under_repair"}, {Name: "repair_done", Src: []string{"under_repair"}, Dst: "ok"}, {Name: "delete", Src: []string{"ok", "broken", "under_repair"}, Dst: "deleted"}, }, fsm.Callbacks{}, ) }