refactor(tracing)!: return helper struct for RunTraced

This commit is contained in:
DevMiner 2024-07-28 17:03:48 +02:00
parent 2848989a6a
commit fe66be7e2a

View file

@ -82,10 +82,14 @@ func WithOtelTracer(tracer trace.Tracer) ConfigureSpanStartFunc {
}
}
type TracedFunc[T any] func(context.Context, string, ...any) T
type TracedFunc[T any] func(context.Context, string, ...any) TracedFuncResult[T]
type TracedFuncResult[T any] struct {
Result T
Err error
}
func RunTraced[T any](t *Telemetry, op string, fn func(context.Context, ...any) T) TracedFunc[T] {
return func(ctx context.Context, name string, args ...any) T {
func RunTraced[T any](t *Telemetry, op string, fn func(context.Context, ...any) TracedFuncResult[T]) TracedFunc[T] {
return func(ctx context.Context, name string, args ...any) TracedFuncResult[T] {
span := t.StartSpan(ctx, op, name)
defer span.End()
ctx = span.Context()