-
Notifications
You must be signed in to change notification settings - Fork 2
/
options.go
31 lines (23 loc) · 990 Bytes
/
options.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package pipeline
import (
"context"
"github.com/thalesfsp/etler/v2/task"
)
//////
// Consts, vars and types.
//////
// Func allows to specify message's options.
type Func[ProcessedData, ConvertedOut any] func(p IPipeline[ProcessedData, ConvertedOut]) IPipeline[ProcessedData, ConvertedOut]
// OnFinished is the function that is called when a processor finishes its
// execution.
type OnFinished[ProcessedData, ConvertedOut any] func(ctx context.Context, p IPipeline[ProcessedData, ConvertedOut], processedData task.Task[ProcessedData, ConvertedOut], convertedOut task.Task[ProcessedData, ConvertedOut])
//////
// Built-ProcessedData options.
//////
// WithOnFinished sets the OnFinished function.
func WithOnFinished[ProcessedData, ConvertedOut any](onFinished OnFinished[ProcessedData, ConvertedOut]) Func[ProcessedData, ConvertedOut] {
return func(p IPipeline[ProcessedData, ConvertedOut]) IPipeline[ProcessedData, ConvertedOut] {
p.SetOnFinished(onFinished)
return p
}
}