2023-07-14 17:30:58 +02:00
|
|
|
package generic
|
|
|
|
|
|
|
|
import (
|
|
|
|
"log"
|
|
|
|
|
|
|
|
Logging "github.com/ibm/fp-go/logging"
|
|
|
|
)
|
|
|
|
|
|
|
|
func Logger[GA ~func() any, A any](loggers ...*log.Logger) func(string) func(A) GA {
|
|
|
|
_, right := Logging.LoggingCallbacks(loggers...)
|
|
|
|
return func(prefix string) func(A) GA {
|
|
|
|
return func(a A) GA {
|
|
|
|
return FromImpure[GA](func() {
|
|
|
|
right("%s: %v", prefix, a)
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-07-15 23:27:45 +02:00
|
|
|
func Logf[GA ~func() any, A any](prefix string) func(A) GA {
|
|
|
|
return func(a A) GA {
|
|
|
|
return FromImpure[GA](func() {
|
|
|
|
log.Printf(prefix, a)
|
|
|
|
})
|
2023-07-14 17:30:58 +02:00
|
|
|
}
|
|
|
|
}
|