1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package main
- import (
- "errors"
- "fmt"
- "log"
- "dev.hexasoftware.com/x/seq"
- "dev.hexasoftware.com/hxs/prettylog"
- )
- type Xpto struct {
- ID string
- }
- func GenXpto(i int) (*Xpto, error) {
- log.Println("Generating xpto")
- return &Xpto{fmt.Sprintf("ID:%d", i)}, nil
- }
- func AnotherRandomFunc() error {
- return errors.New("I have a error")
- }
- func NextXpto(id string) error {
- log.Println("The id was:", id)
- return nil
- }
- func main() {
- prettylog.Global()
- s := seq.New()
- log.Println("Adding GenXPto")
- val := &Xpto{}
- s.Add(GenXpto, 10).Grab(&val)
- s.Add(func() error { return NextXpto(val.ID) })
- s.Add(func(p *Xpto) error { return NextXpto(p.ID) }, seq.SeqReturn(0, 0))
- s.Add(NextXpto, seq.ExecParam(0))
- s.Exec("abc")
- s2 := seq.New()
- 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()
- }
|