12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package main
- import (
- "errors"
- "fmt"
- "dev.hexasoftware.com/x/seq"
- "dev.hexasoftware.com/hxs/prettylog"
- )
- type Xpto struct {
- ID string
- }
- func GenXpto(i int) (*Xpto, error) {
- return &Xpto{fmt.Sprintf("ID:%d", i)}, nil
- }
- func AnotherRandomFunc() error {
- return errors.New("I have a error")
- }
- func NextXpto(id string) error {
- return nil
- }
- func MyFunc() func(...interface{}) error {
- s := seq.NewSeq()
- return s.Exec
- }
- func main() {
- prettylog.Global()
- t := seq.NewTasker()
- s := t.Define("RUN")
- val := &Xpto{}
- s.Add("GenXpto", GenXpto, 10).Grab(&val)
- s.Add("NextXpto", func() error { return NextXpto(val.ID) })
- s.Add("NextXpto2", func(p *Xpto) error { return NextXpto(p.ID) }, seq.RetFrom(0, 0))
- s.Add("Again", NextXpto, seq.ExecParam(0))
- t.Exec("RUN", "abc")
- s2 := seq.NewSeq()
- s2.Add("Generate Xpto",
- func(s *seq.Context) error {
- xpto, err := GenXpto(10)
- s.Set("xpto", xpto)
- return err
- })
- s2.Add("Consume xpto",
- func(s *seq.Context) error {
- var v *Xpto = s.Get("xpto").(*Xpto)
- return NextXpto(v.ID)
- })
- s2.Exec()
- }
|