selector adds a select like case to cog execution
The import path for the package is gopkg.in/cogger/selector.v1.
To install it, run:
go get gopkg.in/cogger/stash.v1
// main.go
package main
import (
"gopkg.in/cogger/selector.v1"
"golang.org/x/net/context"
"gopkg.in/cogger/cogger.v1/wait"
"gopkg.in/cogger/cogger.v1/cogs"
)
func main() {
ctx := context.Background()
sel := selector.New()
sel = sel.Case(func(ctx context.Context)bool{
//Case 1
//test for something
return false
},cogs.Simple(ctx, func()error{
//do something
return nil
}))
sel = sel.Case(func(ctx context.Context)bool{
//Case 2
//test for something
return false
},cogs.Simple(ctx, func()error{
//do something
return nil
}))
sel = sel.Case(func(ctx context.Context)bool{
//Case 3
//test for something
return true
},cogs.Simple(ctx, func()error{
//do something
return nil
}))
sel = sel.Default(cogs.Simple(ctx, func()error{
return nil
}))
errs := wait.Resolve(ctx, sel)
}