main.go 718 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package main
  2. import (
  3. "errors"
  4. "fmt"
  5. "hexasoftware/x/sequencer/seq"
  6. "log"
  7. )
  8. type Xpto struct {
  9. ID string
  10. }
  11. func GenXpto(i int) (*Xpto, error) {
  12. log.Println("Generating xpto")
  13. return &Xpto{fmt.Sprintf("ID:%d", i)}, nil
  14. }
  15. func AnotherRandomFunc() error {
  16. return errors.New("I have a error")
  17. }
  18. func NextXpto(id string) error {
  19. log.Println("The id was:", id)
  20. return nil
  21. }
  22. func main() {
  23. s := seq.New()
  24. log.Println("Adding GenXPto")
  25. val := &Xpto{}
  26. s.Add("Generate Xpto", GenXpto, 10).Grab(&val)
  27. s.Add("Consume xpto", func() error {
  28. return NextXpto(val.ID)
  29. })
  30. s.Add(NextXpto, seq.EP(0))
  31. err := s.Exec("abc")
  32. log.Println("Val:", val)
  33. if err != nil {
  34. log.Println("Error on sequence", err)
  35. }
  36. }