Peter Kurfer
2d97beaf70
- rename it to GenericSink - add tests - update dependencies - improve test step to always get a report - add NoOpSink for tests
33 lines
635 B
Go
33 lines
635 B
Go
package sink
|
|
|
|
import (
|
|
"gitlab.com/inetmock/inetmock/pkg/audit"
|
|
)
|
|
|
|
func NewNoOpSink(name string) audit.Sink {
|
|
return NewGenericSink(name, func(_ audit.Event) {})
|
|
}
|
|
|
|
func NewGenericSink(name string, consumer func(ev audit.Event)) audit.Sink {
|
|
return &genericSink{
|
|
name: name,
|
|
consumer: consumer,
|
|
}
|
|
}
|
|
|
|
type genericSink struct {
|
|
name string
|
|
consumer func(ev audit.Event)
|
|
}
|
|
|
|
func (g genericSink) Name() string {
|
|
return g.name
|
|
}
|
|
|
|
func (g genericSink) OnSubscribe(evs <-chan audit.Event) {
|
|
go func(consumer func(ev audit.Event), evs <-chan audit.Event) {
|
|
for ev := range evs {
|
|
consumer(ev)
|
|
}
|
|
}(g.consumer, evs)
|
|
}
|