diff --git a/README.md b/README.md index e9a147f..8450b9f 100644 --- a/README.md +++ b/README.md @@ -53,11 +53,8 @@ Each task is a function that returns a slice of items and an error: ```go p := polipo.NewPolipo[TaskResult]() -p.AddTask(func () ([]TaskResult, error) { - return []TaskResult{ - {ID: 1, Name: "Task1"}, - {ID: 2, Name: "Task2"}, - }, nil +err := p.AddTask(func () (TaskResult, error) { + return TaskResult{ID: 1, Name: "Task1"}, nil }) ``` @@ -104,19 +101,17 @@ func main() { ctx := context.TODO() p := polipo.NewPolipo[TaskResult]() - p.AddTask(func() ([]TaskResult, error) { - return []TaskResult{ - {ID: 1, Name: "Task1"}, - {ID: 2, Name: "Task2"}, - }, nil - }) - - p.AddTask(func() ([]TaskResult, error) { - return []TaskResult{ - {ID: 3, Name: "Task3"}, - {ID: 4, Name: "Task4"}, - }, nil - }) + if err := p.AddTask(func() (TaskResult, error) { + return TaskResult{ID: 1, Name: "Task1"}, nil + }); err != nil { + panic("could not add task") // don't panic in production code + } + + if err := p.AddTask(func() (TaskResult, error) { + return TaskResult{ID: 2, Name: "Task2"}, nil + }); err != nil { + panic("could not add task") + } results, err := p.Do(ctx) if err != nil { diff --git a/examples/main.go b/examples/main.go index c1f2403..6e57737 100644 --- a/examples/main.go +++ b/examples/main.go @@ -9,35 +9,45 @@ import ( ) type TaskResult struct { - FishName string + Fishes []string } func main() { p := polipo.NewPolipo[TaskResult]() - p.AddTask(func() ([]TaskResult, error) { - return []TaskResult{ - {FishName: "Salmon"}, - {FishName: "Tuna"}, - {FishName: "Trout"}, - {FishName: "Cod"}, + if err := p.AddTask(func() (TaskResult, error) { + return TaskResult{ + Fishes: []string{ + "Salmon", + "Tuna", + "Trout", + "Cod", + }, }, nil - }) - - p.AddTask(func() ([]TaskResult, error) { - return nil, nil - }) - - p.AddTask(func() ([]TaskResult, error) { - return []TaskResult{ - {FishName: "Swordfish"}, - {FishName: "Marlin"}, - {FishName: "Barracuda"}, - {FishName: "Mahi Mahi"}, - {FishName: "Wahoo"}, - {FishName: "Kingfish"}, + }); err != nil { + panic(err) // this is just an example, don't panic in production + } + + if err := p.AddTask(func() (TaskResult, error) { + return TaskResult{}, nil + }); err != nil { + panic(err) + } + + if err := p.AddTask(func() (TaskResult, error) { + return TaskResult{ + Fishes: []string{ + "Swordfish", + "Marlin", + "Barracuda", + "Mahi Mahi", + "Wahoo", + "Kingfish", + }, }, nil - }) + }); err != nil { + panic(err) + } ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) defer cancel()